Skip to content

Commit

Permalink
Update roadmap.md (#8825)
Browse files Browse the repository at this point in the history
Minor updates to roadmap
  • Loading branch information
pchaurasia14 authored Feb 19, 2024
1 parent 8edf2ca commit 1b67350
Showing 1 changed file with 15 additions and 36 deletions.
51 changes: 15 additions & 36 deletions roadmap.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,32 @@
# WPF Roadmap 2023
# WPF Roadmap

Over the last year, we have made efforts in improving the testing infrastructure, merging community PRs to address long-standing issues and enhancing accessibility features. The efforts to open-source our tests and automate the testing process through CI/CD pipelines, tackle persistent issues, and make the product more accessible, all came together in bringing WPF on .NET 7.
Last year, we have made efforts in improving the testing infrastructure, merging community PRs to address long-standing issues, adding new control (OpenFolderDialog) and enabling new capability (hardware acceleration for RDP connections). The efforts to open-source our tests and automate the testing process through CI/CD pipelines, adding unit tests, tackle persistent issues, and addition of newer controls, all came together in bringing WPF on .NET 8.

Here is an update on the goals we set out to achieve in [2022 July-December](https://github.com/dotnet/wpf/discussions/6744):

| Goal | Description | Status |
| ------------- |:--------------|:-------------|
| Test repo migration | Move all tests (Developer Regression Tests (DRTs), Microsuites, and Feature tests) to public domain to make it possible to run tests locally and make it possible to run them in PR validation. <br/> | Finished: DRTs moved to wpf-test repo. <br/> Not Started: Microsuites and Feature tests were not moved. |
| Test automation | Run basic tests (DRTs) in public pipelines. | Completed: Basic tests run on every build. |
| Community Top Picks | Shortlist of ~24 issues/PRs that should be prioritized for resolution/merges. | Finished: 20 prioritized issues/PRs <br /> Not Started: [4 issues/PRs](https://github.com/orgs/dotnet/projects/146/views/1) |
| Implicit Usings | Enable implicit usings in WPF project templates | Completed: Part of .NET 8.0 Preview 1
---

We are fully dedicated to achieving our goals, but recent priorities including XPS security improvements, .NET releases and regression issues required our focused attention. As a result, some previously planned items were temporarily put on hold. However, we remain committed to delivering on all of our objectives.

Note - We want to create a larger vision for WPF. We are not ready to do it just yet (the team is fairly new). We aim to get the vision document started with community collaboration in ~6 months.

The following sections highlight the main areas we'll be prioritizing for .NET 8.0 in 2023, including the unfinished items from the previous roadmap. Along these items, we will continue to support updates and maintenance releases of .NET.
The following sections highlight the main areas we'll be prioritizing for .NET 9.0 in 2024, including the unfinished items from the previous roadmap.
Along these items, we will continue to support updates and maintenance releases of .NET.

# Modernizing WPF

Long-term vision for modernization of WPF contains investments like support for nullability annotations, trimming and NativeAOT support, DirectX upgrades and integration of newer .NET features and abstractions. In the short-term, we have shortlisted the below items for 2023.
Long-term vision for modernization of WPF contains investments like support for nullability annotations, trimming and NativeAOT support, DirectX upgrades and integration of newer .NET features and abstractions. In the short-term, we have shortlisted the below items for 2023-24.

The look and feel of WPF controls has not changed in years. We believe that updating our styles to match those used in Windows 11 will help WPF developers create more consistent Windows experiences.


| Goal | Description | Rationale |
| ------------- |:--------------|:-------------|
| Windows 11 Theming | Bringing Windows 11 look and feel for majority of WPF controls. <br/> Support for Win11 features such as snap layout, rounded corners for controls and newer color schemes would bring enhanced experience for WPF applications. <br/> We will iterate on full scope of the work with WPF community. | For all consumer applications that are built on WPF running on Win11, this feature would ensure that applications can take advantage of modern design elements and behaviors. |
| Newer controls | [WPF FolderBrowserDialog](https://github.com/dotnet/wpf/issues/438) - Introducing native support for FolderBrowserDialog for WPF | This has been a top ask from the community since .NET Core 3. This feature would reduce dependency on WinForms and other third-party alternatives. |
| Nullability annotations | Enable nullability annotations in WPF | This increases the quality of the code base, as well as the quality for all WPF apps consuming it and reduces time spent debugging `ArgumentNullException`s and `NullReferenceException`s. <br/>Rest of the dotnet (eg. winforms) repo is already moving in the direction and this goal would bring WPF to latest standards as well. <br/> We welcome any community contributions in this area. |


We do not believe we will be able to deliver all 3 items above. Therefore we want to ask community to help us prioritize these items for .NET 8.0 timeframe -- please go vote [HERE](https://github.com/dotnet/wpf/discussions/7555).
| Windows 11 Theming | Bringing Windows 11 look and feel for majority of WPF controls. <br/> Support for Win11 features such as snap layout, rounded corners for controls and newer color schemes would bring enhanced experience for WPF applications. <br/><br/> You can find the breakdown [here](https://github.com/dotnet/wpf/issues/8538). | For all consumer applications that are built on WPF running on Win11, this feature would ensure that applications can take advantage of modern design elements and behaviors. |
| Nullability annotations | Enable nullability annotations in WPF | This increases the quality of the code base, as well as the quality for all WPF apps consuming it and reduces time spent debugging `ArgumentNullException`s and `NullReferenceException`s. <br/>Rest of the dotnet (eg. winforms) repo is already moving in the direction and this goal would bring WPF to latest standards as well. <br/><br/> We are thankful to community contributors who have helped us get started with this. We will continue to review and merge PRs in this area. |

---
# Fundamentals

# Infrastructure Upgrades

In order to expedite acceptance/turnaround of community PRs, we are working to improve our CI/CD pipeline(s) that can run more functional tests on each PR (along with the existing DRTs) and share results to the developer in automated fashion. This will prevent WPF team from being the bottleneck (when running tests manually for community PRs) and will enable us to focus more on top community pain points.

_This item is a pre-requiste for us to efficiently deliver on [Modernizing WPF](#modernizing-wpf)._
Enhancing the performance of WPF apps both in terms of reduced memory usage, improved startup times and better rendering will ensure that WPF customers continue to derive great value. Accessibility is a key aspect of our work, and we aim to provide better support for our users with different abilities.

| Goal | Description | Rationale |
| ------------- |:--------------|:-------------|
| Test Automation | Enable tests (Microsuites & Feature tests) on each PR, including detailed results. | Better reporting, predictability and reduced turnaround time for PRs. |
| Test Migration | [Leftover from 2022] <br/> Move Microsuites & Feature tests into [wpf-test](https://github.com/dotnet/wpf-test) repo. | More tests is the best way we can ensure that we are not introducing unintended regressions in the product. <br/> Due to the high number of tests that are coupled to infrastructure dependencies, we plan to first move the tests that are decoupled from the infrastructure. Next, we prioritize tests that deliver higher impact (tests that assert critical behaviors) and move them to open-source.
| Accessibility Improvements | Improving accessibility support for WPF controls | This enables WPF applications to be more inclusive & would be able to better serve needs of specially abled users. This involves addressing high priority accessibility bugs. |
| Performance | Benchmarking and optimizing WPF for enhanced support on all devices | Improving fundamentals of WPF.

---

# Open Issues / PRs
Expand All @@ -58,14 +39,12 @@ The current backlog of issues and PRs in WPF stands in higher numbers and we int
---


# Others/Fundamentals

With increasing numbers of ARM64 devices, we believe that enhancing the performance of WPF apps and fixing issues related to WPF rendering on ARM64 devices will deliver great customer value. Also, accessibility is one of our primary pillars where we would like to deliver improved support for our specially abled users.
# Testing Infrastructure Upgrades

| Goal | Description | Rationale |
| ------------- |:--------------|:-------------|
| Accessibility Improvements | Improving accessibility support for WPF controls | This enables WPF applications to be more inclusive & would be able to better serve needs of specially abled users. This involves addressing high priority accessibility bugs. |
| ARM64 Performance | Benchmarking and optimizing WPF for better support on ARM64 devices | WPF on ARM64 requires more investment on product and tests. Currently, WPF on ARM64 relies on emulation techniques. We intend to bridge the gap between performance of WPF controls as compared to that of other frameworks.
| Functional and Unit Tests | Addition of more unit tests along with bringing the testing infrastructure up-to-date. | Better reporting, predictability and reduced turnaround time for PRs. |


Note - Some servicing issues (eg. Security issues) and high priority issues are not tracked in GitHub.

Expand Down

0 comments on commit 1b67350

Please sign in to comment.