Surprisingly, Microsoft is not only offering older Windows forms in the new net world, but is actively working on further improvements. What does this mean for net developers?
Windows Forms The original desktop UI library on .NET, which was introduced in .NET Framework 1.0 in 2020 and was heavily promoted in 2005.
13 years of idle time
With the introduction in Windows Presentation Foundation (WPF) In 2006, Windows forms were marginalized, except for minor improvements, especially in the high-DPI support and access area (see NET 4.5 to 4.8 growth) Is no longer created.
With NetCore 1.0 to 2.2, Windows forms (as well as WPF) are not included. Microsoft later adopted WPF and Windows formats in the new .NET world (but not platform-neutral, only on Windows) for NetCore 3.0 (released in September 2020). Therefore, both GUI frameworks are included in .NET 5.0 (and its future successors .NET 6.0, 7.0, etc.). A usable designer for Windows forms in .NET Core / .NET 5.0 projects has been previewed in Visual Studio 2019 v16.8 since November 2020. A classic. You will need to use crutches to design the interfaces in the .NET Framework project and attach the result to the new project.
New features from .NET Core 3.0
Surprisingly, Microsoft did not simply offer older Windows forms in the new .NET world, but is actively working on further improvements: only one appeared in .NET Core 3.0 Small improvementYou can set a high DPI setting not only via the configuration file, but also via the program code API. However, they are straightforward in .NET 5.0 Several notable improvements Built-in for Windows forms:
- New control element: Task dialog (the most flexible variant of the message box).
- ListView Control now provides a wrap panel.
- FileDialog can have multiple states in one application via CileentGuid.
- Significant performance improvements while providing some controls.
- UI automation improvements.
It should be noted that the improvements to the controls do not come from Microsoft developers, but are the demands of the user community that includes Microsoft in the official release.
It should also be noted that there are some minor features in the implementation of Net Core and Net 5 for Windows forms. Absent Another major setback occurred in November 2019 when Microsoft made some NetCore 3.1 Old Windows form controls have been removed again They are included in .Net Core 3.0.
What does Microsoft want to tell us?
For years there have been discussions about Windows Forms and WPF in the .NET user community. Some software providers have transformed their interfaces graphically into a more powerful WPF (on) MAXIMAGO We have been developing .NET applications exclusively with WPF for many years because our requirements for user experience with Windows Forms are so complex to implement, but other software providers are sticking with the supposedly simpler Windows forms – and there are some companies. Third-party vendors have been offering new controls for Windows forms for years, keeping the old GUI architecture alive. Microsoft has recognized the current demand for Windows forms, so it offers these customers the incentive to switch to the modern .NET 5.0 world.
There are no significant improvements over WPF in .NET Core 3.0 / 3.1 and .NET 5.0. Does this mean that Microsoft recommends developers to work with Windows forms again? No of course not. I see it this way: Windows likes a lot of forms because it has a very old architecture and has been idle for years.
The future of WinUI3?
In Microsoft’s view, the GUI architecture of the future is not Windows Forms or WPF, but Windows UI Library 3 (WinUI3). The GUI library is the successor to WinUI 3.0 Universal Windows operating system (UWP) With WinUI2, the new name introduced for “modern applications” in Windows 10 UWP is based on WinRT API only, so while not all operating system functions and all local resources can be used, a WinUI-3 based application can use WinRD and / or Win32 This means you have all the options of the Windows operating system.
It remains to be seen whether WinUI3 will be better accepted by customers than UWP when WinUI3 appears (First announced for 2020, now for 2021). One thing is clear today: switching from WPF to WinUI3 takes some effort – but it’s significantly less than trying to switch from Windows forms to WPF or WinUI3, because WinUI3 uses XAML as a WPF-like GUI descriptive language, but it does Differences.