* Simplify content for repo

* Update contributing guide

* Update roadmap

* Remove mention of dual targeted samples

* Update Documentation/developer-guide.md

Co-Authored-By: richlander <rlander@microsoft.com>
This commit is contained in:
Rich Lander 2018-12-04 00:00:17 -08:00 коммит произвёл GitHub
Родитель c8184619f0
Коммит 3700f8d09c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
6 изменённых файлов: 65 добавлений и 77 удалений

Просмотреть файл

@ -1,46 +1,24 @@
# Contributing Guide # Contributing Guide
The primary focus of .NET Core 3.0 release is to achieve parity with WPF for .NET Framework. The primary focus of .NET Core 3.0 release for WPF is to achieve parity with .NET Framework. Priority will be given to changes that align with that goal. See the [roadmap](../roadmap.md) to understand project goals.
Since we're currently still porting parts of WPF codebase (incl. tests) to GitHub (see [Status](../README.md#port-status) for details),
we're not ready to handle non-trivial or larger contributions beyond parity fixes yet.
We plan to accept these kind of contributions during 3.0 release: We need the most help with the following types of changes:
* Low-risk changes, which are easy to review (e.g. typos, comment changes, documentation improvements, etc.).
* Test fixes, test improvements and new tests increasing code coverage. * Test fixes, test improvements and new tests increasing code coverage.
* Infrastructure fixes and improvements, which are aligned with achieving our goal to ship high quality .NET Core 3.0 release. * Bug fixes that specifically target partity between .NET Core and .NET Framework.
* Bug fixes for differences between WPF for .NET Core and .NET Framework.
If you have a **larger change** falling into any of these categories, we recommend to **check with our team members** prior to creating a PR. Please [file an issue](https://github.com/dotnet/wpf/issues) for any larger change you would like to propose.
We recommend to first create a [new issue](https://github.com/dotnet/wpf/issues), where you can describe your intent and help us understand the change you plan to contribute.
**WARNING:** Expect that we may reject or postpone PRs which do not align with our primary focus (parity with WPF for .NET Framework), See [Developer Guide](developer-guide.md) to learn how to develop changes for this repo.
or which could introduce unnecessary risk (e.g. in code which is historically sensitive, or is not well covered by tests).
Such PRs may be closed and reconsidered later after we ship .NET Core 3.0.
This project follows the general [.NET Core Contribution Guidelines](https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/contributing.md). The contribution bar from the general contribution guidelines is copied below.
## Contribution "Bar"
## Developer Guide Project maintainers will consider changes that improve the product or fix know bugs (please file issues to make bugs "known").
Before you start, please review [WPF contributing doc](TODO) and **[.NET Core contributing doc](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/contributing.md)** for coding style and PR gotchas. Maintainers will not merge changes that have narrowly-defined benefits due to compatibility risk or complexity added to the product. We may revert changes if they are found to be breaking.
* Per-machine setup: [Machine setup](#machine-setup) and [Fork and clone repo](https://github.com/dotnet/corefx/wiki/Checking-out-the-code-repository) Most .NET Core components are cross-platform and we appreciate contributions that either improve their feature set in a given environment or that add support for a new environment. We will typically not accept contributions that implement support for an OS-specific technolology on another operating system. For example, we do not intend to create an implementation of the Windows registry for Linux or an implementation of the macOS keychain for Windows. We also do not intend to accept contributions that provide cross-platform implementations for Windows Forms or WPF.
* [Build and run tests](#build-and-run-tests)
* [git commands and workflow](https://github.com/dotnet/corefx/wiki/git-reference) - for newbies on GitHub
* Pick issue: [up-for-grabs](https://github.com/dotnet/wpf/issues?q=is%3Aopen+is%3Aissue+label%3Aup-for-grabs) or [easy](https://github.com/dotnet/wpf/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3Aeasy)
* [Coding guidelines](https://github.com/dotnet/corefx/tree/master/Documentation#coding-guidelines)
### Machine Setup Contributions must also satisfy the other published guidelines defined in this document.
TODO
### Build and run tests
#### To build
In the root of your repo, run `build.cmd` (or `build.cmd -verbose` for logs).
#### To run tests
In the root of your repo, run `test.cmd` or open the solution file `src\Microsoft.DotNet.Wpf\test\DRT\DrtXaml.sln` ("DRT" is an internal name used for unit tests).
* Note that this will test the version of `System.Xaml.dll` currently installed in your shared framework; if you rebuild `System.Xaml.dll` and want to test your changes, you will need to replace the current DLL with your own (be sure to make a backup first).

Просмотреть файл

@ -0,0 +1,33 @@
# Developer Guide
The following document describes the setup and workflow that is recommended for working on the WPF project. It assumes that you have read the [contributing doc](contributing-guide.md).
The [Issue Guide](issue-guide.md) describes our approach to using GitHub issues.
## Machine Setup
Follow the [Building CoreFX on Windows](https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md) instructions.
WPF requires the following workloads and components be selected when installing Visual Studio:
* Required Workloads:
* .NET Desktop Development
* Desktop development with C++
* Required Individual Components:
* C++/CLI support
* Windows 10 SDK
## Workflow
We use the following workflow for building and testing features and fixes.
You first need to [Fork](https://github.com/dotnet/corefx/wiki/Checking-out-the-code-repository#fork-the-repository) and [Clone](https://github.com/dotnet/corefx/wiki/Checking-out-the-code-repository#clone-the-repository) this WinForms repository. This is a one-time task.
-- add more content here --
## More Information
* [git commands and workflow](https://github.com/dotnet/corefx/wiki/git-reference)
* [Coding guidelines](https://github.com/dotnet/corefx/tree/master/Documentation#coding-guidelines)
* [up-for-grabs WPF issues](https://github.com/dotnet/wpf/issues?q=is%3Aopen+is%3Aissue+label%3Aup-for-grabs)
* [easy WPF issues](https://github.com/dotnet/wpf/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3Aeasy)

Просмотреть файл

@ -1,13 +1,13 @@
# Getting started with WPF for .NET Core # Getting started with WPF for .NET Core
This document describes the experience of using WPF on .NET Core. The [Developer Guide](developer-guide.md) describes how to develop features and fixes for WPF.
## Installation ## Installation
Choose one of these options: Choose one of these options:
1. Official public preview [.NET Core 3.0 SDK Preview 1](https://www.microsoft.com/net/download), or 1. [.NET Core 3.0 SDK Preview 1 (recommended)](https://www.microsoft.com/net/download)
2. [Daily build](https://aka.ms/netcore3sdk) (for more installer options see [dotnet/code-sdk repo](https://github.com/dotnet/core-sdk)). 2. [.NET Core 3.0 daily build (latest changes, but less stable)](https://github.com/dotnet/core/blob/master/daily-builds.md)
## Creating new applications ## Creating new applications
@ -21,26 +21,22 @@ cd MyWPFApp
dotnet run dotnet run
``` ```
## WPF documentation
For WPF reference documentation (types, properties, methods, etc.) see the [.NET API Browser](https://docs.microsoft.com/en-us/dotnet/api/?view=netcore-3.0). <!-- note that this URL doesn't exist yet - I assume 3.0 will go live at the announce? -->
For conceptual documentation (architecture, how-tos, etc.) most of the [documentation for WPF for .NET Framework](https://docs.microsoft.com/en-us/visualstudio/designers/getting-started-with-wpf?view=vs-2017) applies equally well to WPF for .NET Core 3. The main differences are around project structure and lack of Designer support.
## Samples ## Samples
Check out the [WPF for .NET Core 3 samples](https://github.com/dotnet/samples/tree/master/wpf) for HelloWorld example. The existing [WPF for .NET Framework samples](https://github.com/Microsoft/WPF-Samples) have also been updated to dual-target .NET Framework and .NET Core 3. Check out the [WPF for .NET Core 3 samples](https://github.com/dotnet/samples/tree/master/wpf) for HelloWorld example. The existing [WPF for .NET Framework samples](https://github.com/Microsoft/WPF-Samples) have also been updated to dual-target .NET Framework and .NET Core 3.
## Documentation
For WPF API documentation, see the [.NET API Browser](https://docs.microsoft.com/en-us/dotnet/api/?view=netcore-3.0).
For conceptual documentation (architecture, how-tos, etc.) most of the [documentation for WPF for .NET Framework](https://docs.microsoft.com/en-us/visualstudio/designers/getting-started-with-wpf?view=vs-2017) applies equally well to WPF for .NET Core 3. The main differences are around project structure and lack of Designer support.
## Known issues ## Known issues
* WPF Applications crash with `System.TypeLoadException` when the Visual C++ Redistributable for Visual Studio 2017 is not installed. The latest version of VC++ redistributable can be obtained from [the Visual C++ downloads page](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads). This dependency will be removed prior to .NET Core 3.0 final release. * WPF Applications crash with `System.TypeLoadException` when the Visual C++ Redistributable for Visual Studio 2017 is not installed. The latest version of VC++ redistributable can be obtained from [the Visual C++ downloads page](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads). This dependency will be removed prior to .NET Core 3.0 final release.
* This is tracked by [#37](https://github.com/dotnet/wpf/issues/37). * This is tracked by [#37](https://github.com/dotnet/wpf/issues/37).
## Missing features ## Missing features
* In this initial preview, WPF for .NET Core doesn't support the XAML Designer. If you want to use the XAML Designer, you will need to do that in the context of a .NET Framework project, e.g. by linking your .NET Core source files into a .NET Framework project. * In this initial preview, WPF for .NET Core doesn't support the XAML Designer. If you want to use the XAML Designer, you will need to do that in the context of a .NET Framework project, e.g. by linking your .NET Core source files into a .NET Framework project.

Просмотреть файл

@ -6,8 +6,6 @@ It may be as simple as a small product or test bug or as large as the work track
We will keep issues open even if the WPF team internally has no plans to address them in an upcoming release, as long as we believe they are in line with our direction. We will keep issues open even if the WPF team internally has no plans to address them in an upcoming release, as long as we believe they are in line with our direction.
## How to file issues ## How to file issues
You can help us streamline our response time to your feedback and ideas by filing high-quality reports. You can help us streamline our response time to your feedback and ideas by filing high-quality reports.
@ -27,8 +25,6 @@ Ideally, assume that the reader has minimal knowledge and experience with writin
For API suggestions, check [API review process](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/api-review-process.md), especially [example of good API proposals](https://github.com/dotnet/corefx/issues/271). For API suggestions, check [API review process](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/api-review-process.md), especially [example of good API proposals](https://github.com/dotnet/corefx/issues/271).
## Labels ## Labels
We use GitHub [labels](https://github.com/dotnet/wpf/labels) on our issues in order to classify them. We have the following categories per issue: We use GitHub [labels](https://github.com/dotnet/wpf/labels) on our issues in order to classify them. We have the following categories per issue:
@ -42,8 +38,6 @@ We use GitHub [labels](https://github.com/dotnet/wpf/labels) on our issues in or
* [needs-more-info](https://github.com/dotnet/wpf/labels/needs-more-info): Issues which need more information to be actionable. Usually this will be because we can't reproduce a reported bug. We'll close these issues after a little bit if we haven't gotten actionable information, but we welcome folks who have acquired more information to reopen the issue. * [needs-more-info](https://github.com/dotnet/wpf/labels/needs-more-info): Issues which need more information to be actionable. Usually this will be because we can't reproduce a reported bug. We'll close these issues after a little bit if we haven't gotten actionable information, but we welcome folks who have acquired more information to reopen the issue.
* [tenet-compatibility](https://github.com/dotnet/wpf/labels/tenet-compatibility): Incompatibility between released versions or with WPF for .NET Framework. * [tenet-compatibility](https://github.com/dotnet/wpf/labels/tenet-compatibility): Incompatibility between released versions or with WPF for .NET Framework.
## Milestones ## Milestones
We use [milestones](https://github.com/dotnet/wpf/milestones) to prioritize work for each upcoming release. We use [milestones](https://github.com/dotnet/wpf/milestones) to prioritize work for each upcoming release.
@ -54,16 +48,12 @@ We use [milestones](https://github.com/dotnet/wpf/milestones) to prioritize work
* **Future** milestone tracks all potential future work (which may or may not happen). When we are done with 3.0 release, we will move some of these issues into the next immediate milestone. * **Future** milestone tracks all potential future work (which may or may not happen). When we are done with 3.0 release, we will move some of these issues into the next immediate milestone.
* Please do not start discussions about next post-3.0 milestone until we are close to final 3.0 release. If you want to express your opinion on prioritization, please [upvote first post of the issue](#upvotes-on-issues) instead. * Please do not start discussions about next post-3.0 milestone until we are close to final 3.0 release. If you want to express your opinion on prioritization, please [upvote first post of the issue](#upvotes-on-issues) instead.
## Assignee ## Assignee
We assign each issue to assignee, when the assignee is ready to pick up the work and start working on it. We assign each issue to assignee, when the assignee is ready to pick up the work and start working on it.
If the issue is not assigned to anyone and you want to pick it up, please say so - we will assign the issue to you. If the issue is not assigned to anyone and you want to pick it up, please say so - we will assign the issue to you.
If the issue is already assigned to someone, please coordinate with the assignee before you start working on it. If the issue is already assigned to someone, please coordinate with the assignee before you start working on it.
## Prioritization & Upvoting ## Prioritization & Upvoting
* Upvotes on first post of each issue are a useful hint for our prioritization. * Upvotes on first post of each issue are a useful hint for our prioritization.
@ -71,13 +61,6 @@ We can [sort issues by number of upvotes](https://github.com/dotnet/wpf/issues?q
* We're most likely to include improvements that either have a positive impact on a broad scenario or have very significant positive impact on a niche scenario. We're less likely to prioritize modest improvements to niche scenarios. * We're most likely to include improvements that either have a positive impact on a broad scenario or have very significant positive impact on a niche scenario. We're less likely to prioritize modest improvements to niche scenarios.
* Compatibility will almost always be given a higher priority than improvements. * Compatibility will almost always be given a higher priority than improvements.
## Escalations
If you think some issue or PR is not getting the right attention, or if you notice some [Code of Conduct](https://dotnetfoundation.org/code-of-conduct) violation we might miss,
you can escalate to WPF team by tagging some of us (e.g. [@fabiant3](https://github.com/fabiant3), [@karelz](https://github.com/karelz)). Please do not overuse it.
## Triage rules ## Triage rules
Guidance for triaging issues for WPF team members: Guidance for triaging issues for WPF team members:

Просмотреть файл

@ -5,15 +5,17 @@
Windows Presentation Foundation (WPF) is a UI framework for building Windows desktop applications. WPF supports a broad set of application development features, including an application model, resources, controls, graphics, layout, data binding and documents. WPF uses the Extensible Application Markup Language (XAML) to provide a declarative model for application programming. Windows Presentation Foundation (WPF) is a UI framework for building Windows desktop applications. WPF supports a broad set of application development features, including an application model, resources, controls, graphics, layout, data binding and documents. WPF uses the Extensible Application Markup Language (XAML) to provide a declarative model for application programming.
WPF applications are based on a vector graphics architecture. This enables applications to look great on high DPI monitors, as they can be infinitely scaled. WPF also includes a flexible hosting model, which makes it straightforward to host a video in a button, for example. The visual designer provided in Visual Studio makes it easy to build WPF application, with drag-in-drop and/or direct editing of XAML markup. WPF applications are based on a vector graphics architecture. This enables applications to look great on high DPI monitors, as they can be infinitely scaled. WPF also includes a flexible hosting model, which makes it straightforward to host a video in a button, for example. The visual designer provided in Visual Studio makes it easy to build WPF application, with drag-in-drop and/or direct editing of XAML markup.
> Note: The visual designer is not yet available and will be part of a Visual Studio 2019 update. > Note: The visual designer is not yet available and will be part of a Visual Studio 2019 update.
[WinForms](https://github.com/dotnet/winforms) is another UI framework for building Windows desktop applications that is supported on .NET Core. WPF and WinForms applications only run on Windows. They are part of the `Microsoft.NET.Sdk.WindowsDesktop` SDK. Consult the [WPF Roadmap](roadmap.md) to learn about project priorities, status and ship dates.
[WinForms](https://github.com/dotnet/winforms) is another UI framework for building Windows desktop applications that is supported on .NET Core. WPF and WinForms applications only run on Windows. They are part of the `Microsoft.NET.Sdk.WindowsDesktop` SDK. You are recommended to use Visual Studio 2019 Preview 1 to use WPF and WinForms with .NET Core.
## Getting started ## Getting started
* [Getting started instructions](Documentation/getting-started.md)
* [.NET Core 3.0 SDK Preview 1](https://www.microsoft.com/net/download) * [.NET Core 3.0 SDK Preview 1](https://www.microsoft.com/net/download)
* [Getting started instructions](Documentation/getting-started.md)
* [Contributing guide](Documentation/contributing-guide.md) * [Contributing guide](Documentation/contributing-guide.md)
## Status ## Status
@ -25,7 +27,7 @@ We are in the process of doing four projects with WPF:
* Publish (and in some cases write) tests to GitHub and enable automated testing infrastructure. * Publish (and in some cases write) tests to GitHub and enable automated testing infrastructure.
* Enable the Visual Studio WPF designer to work with WPF running on .NET Core. * Enable the Visual Studio WPF designer to work with WPF running on .NET Core.
We are part-away through porting WPF to .NET Core, and will complete that for .NET Core 3.0. We intend to bring the codebase up to functionality and performance parity with .NET Framework, except for a small number of scenarios we do not intend to support (for example, [XBAPs](https://docs.microsoft.com/dotnet/framework/wpf/app-development/wpf-xaml-browser-applications-overview)). We are part-away through porting WPF to .NET Core, and will complete that for .NET Core 3.0. We intend to bring the codebase up to functionality and performance parity with .NET Framework.
We have published only a small part of the WPF source. We will continue to publish WPF components as part of the .NET Core 3 project. We will publish source and tests at the same time for each component. We have published only a small part of the WPF source. We will continue to publish WPF components as part of the .NET Core 3 project. We will publish source and tests at the same time for each component.
@ -69,8 +71,4 @@ Also see info about related [Microsoft .NET Core and ASP.NET Core Bug Bounty Pro
.NET Core WPF is a [.NET Foundation](https://www.dotnetfoundation.org/projects) project. .NET Core WPF is a [.NET Foundation](https://www.dotnetfoundation.org/projects) project.
There are many .NET related projects on GitHub. See the [.NET home repo](https://github.com/Microsoft/dotnet) to find other .NET-related projects.
- [.NET home repo](https://github.com/Microsoft/dotnet) - links to 100s of .NET
projects, from Microsoft and the community.
x

Просмотреть файл

@ -8,13 +8,15 @@ At present, our primary focus is enabling the following for .NET Core 3.0:
* Publish remaining WPF components to the repo * Publish remaining WPF components to the repo
* Publish (and write) more WPF tests to the repo * Publish (and write) more WPF tests to the repo
> Note: There are some specific .NET Framework features will not be supported, such as [XBAPs](https://docs.microsoft.com/dotnet/framework/wpf/app-development/wpf-xaml-browser-applications-overview).
As we complete those goals, we'll update our roadmap to include additional feature/capability areas we will focus on next. As we complete those goals, we'll update our roadmap to include additional feature/capability areas we will focus on next.
## Timeline for Open Source ## Timeline for Open Source
| Milestone | Release Date | | Milestone | Date |
|---|---| |---|---|
|Initial launch of WPF for .NET Core repository (beginning with System.Xaml)|Dec 4, 2018| |Initial launch of WPF for .NET Core repository (beginning with System.Xaml)|Dec 4, 2018|
|Ability to merge PRs from community|Early 2019| |Add adequate tests that enable validating and merging community PRs|Early 2019|
|Roadmap update for feature focus areas|Early 2019| |Roadmap update for feature focus areas|Early 2019|
|Add remaining WPF for .NET Core components to repository|Continues thru 2019| |Add remaining WPF for .NET Core components to repository|Continues thru 2019|
@ -23,8 +25,6 @@ As we complete those goals, we'll update our roadmap to include additional featu
The port from WPF for .NET Framework is still in progress. Currently this repository contains these components: The port from WPF for .NET Framework is still in progress. Currently this repository contains these components:
* Components: * Components:
* System.Xaml * [System.Xaml](src/Microsoft.DotNet.Wpf/src/System.Xaml)
* Tests: * Tests:
* DrtXaml * [DrtXaml](src/Microsoft.DotNet.Wpf/test/DRT/DrtXaml)
Components in this repository eventually roll up to the `Microsoft.NET.Sdk.WindowsDesktop` SDK.