As part of my .NETpad modernization work this summer, I'm investigating various ways one might update an existing app for Windows 11. There are many paths forward, each with some benefits and some challenges.
The app I'm updating is based on the Windows Presentation Foundation (WPF), a .NET-based app framework that first arrived in 2005 with Windows Vista. Microsoft tried to replace WPF, in turn, with the Windows Runtime (WinRT), the Universal Windows Platform (UWP), and then the Windows App SDK/WinUI 3. But WPF has remained too popular with the Windows customer base, especially in the enterprise. And so at Build 2024 this past May, Microsoft announced that is once again a first-class choice for developers looking to build modern Windows apps. It updated the Windows App Development section of its Windows Dev Center website to address this change, putting WPF on equal footing with WinUI 3 (Windows App SDK). But more detailed information is sparse: The WPF subsection of the Windows Dev Center is full of years-old content that, despite the dates, hasn't been updated in a long time.
Here's what I know. WPF's elevation is tied to .NET 9, which is now in beta and will be released publicly in November 2024. At the time of this writing, the current release of .NET 9 is preview 5, from June 11, but there is almost no documentation that addresses exactly how WPF will be updated to support modern Windows 11-style apps and their unique controls and capabilities. The .NET 9 Preview 4 release notes, from late May, mention only that you can add Windows 11 theming support to existing apps, plus the release of a new WPF Gallery app in preview that shows off how this framework's controls and styles will look in Windows 11. (There's no WPF information in the .NET 9 Preview 5 release notes at all.)
I am vaguely proud that I figured out to add Windows 11 theming support to .NETpad on my own, as I discussed previously in Modernizing .NETpad: First Steps (Premium). But there is more work to do—other parts of the app need to be updated once this change is made—and I'm hoping that there will be more/better documentation as well. In the meantime, I'm experimenting. Not just with WPF and Windows 11 theming, but with other aspects of app modernization. The good news is, I have time: With a November release date for .NET 9, I still have about 5 months to research, test, and consider my options.
Before I first published the WPF version of .NETpad to GitHub, I updated the app in various ways, including changing the target .NET version to .NET 6, which was current at the time. Today, .NET 8 is current, of course, and .NET 9 is coming in November. But the first versions of .NETpad WPF date back to early 2020 and .NET Core 3.1. (At that time, Microsoft was transitioning .NET from the old proprietary Windows-only version to the cross-platform version we have today. So .NET Core 3.1 was followed by .NET 5, .NET 6., .NET 7, and then .NET 8.) And one of the s...
With technology shaping our everyday lives, how could we not dig deeper?
Thurrott Premium delivers an honest and thorough perspective about the technologies we use and rely on everyday. Discover deeper content as a Premium member.