dotnet / dotnet/wpf

Improving WPF (and WinForms) engineering agility

Open
#10,081 0 comments 12 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
7.7k
Forks
1.3k
Avg merge
1d 11h
Merged PRs (30d)
61

Description

WPF and WinForms are the two components of https://github.com/dotnet/windowsdesktop. The two projects have a long history that has intertwined in various ways over the past 20+ years. Leaning in together as the Win32 managed frameworks we can leverage each-other's efforts, reduce duplication, and make it easier for contributions to accrue to both platforms.

In .NET 10 we plan to start sharing code between the two platforms. WPF already depends on the WinForms build. As such, the shared code will come from the WinForms repo. WinForms introduced a lower-level System.Private.Windows.Core assembly in .NET 9 to facilitate the two packages that ship from WinForms: WinForms itself, and System.Drawing.Common. This no-dependency assembly is the one we'll be sharing throughout both WPF and WinForms.

The better aligned the two repos are, the easier it will be. There are a few key tasks that we want to tackle in the short term to move things forward here in a significant way:

- [ ] Align code styles and code analysis (#10017)
- [ ] Enable xUnit unit testing in WPF for all projects (#10023)
- [ ] Consume shared testing utilities (System.Private.Windows.Core.TestUtilities)
- [x] Consume System.Private.Windows.Core (#10047)
- [ ] Start using CsWin32 (#10047)
- [ ] Use wildcard includes for code files (see System.Windows.Primitives where this is currently done)
- [ ] Consider where to locate shared docs (probably WindowsDesktop)

This is an initial brain dump, I'll be adding more here.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.