This year, Microsoft seemed to bring the Windows Presentation Foundation (WPF) back from the dead, cheering those who still support this powerful but aging app framework. This was personally exciting to me because WPF is my favorite Microsoft app framework, and it really stood out as I researched the history behind the Programming Windows series that I eventually turned into the book Windows Everywhere.
The reality of this change is slightly less exciting, however. Yes, Microsoft is formally supporting WPF alongside WinUI 3 and the Windows App SDK as a way to create modern Windows apps. But the claims Windows lead Pavan Davuluri made back in May, sadly, a mixed bag when it comes to accuracy. And it's important to understand what's really happening, and not get caught up in promises that may or may not ever be realized.
"With the latest updates to WPF, we have made it easier than ever to modernize the look and feel of your app through support for Windows 11 theming," he wrote. This is true. But this is also where it ends. Microsoft has only added basic support for Windows 11 theming, and nothing more.
"Both WinUI 3 and WPF can take advantage of all Windows has to offer, including the new features and APIs in the Windows App SDK, so you can feel confident in creating a modern application in either technology," he continued. This is untrue. WPF doesn't support certain Windows controls, dialogs and other window types, and hundreds if not thousands of individual features that are available in WinUI 3 through the Windows App SDK (and, in many cases, MAUI and React).
Given this, it's important to level-set your expectations. This year's updates are mostly about modernizing the look and feel of existing WPF apps, of which there are many. But only to some degree: All the modern features available in the Windows App SDK are not at your disposal. This year's updates are not about creating modern new apps with WPF. Yes, you could do so. But you will be limited to whatever subset of modern features that WPF supports. If you want the full range of modern Windows features, the Windows App SDK remains the only viable choice.
I know this because I've spent the past three and a half months working in the trenches. Back in May, I decided to dust off the WPF version of my .NETpad app and modernize it to look and feel more natural when running in Windows 11. And in early June, I started writing what became a longer-than-expected article series exploring what was possible. It was this experience that led to the conclusions above. I went through the seven stages of grief so you don't have to. There were highs. And lows. Steps forward, steps back, and then new steps forward. There were issues with front-end features like title bar customization and tabs support, and back-end issues with theming, code quality, and then code quality again.
During this time, I've felt the weight of a self-imposed deadline pushing up against my desires to do it all...
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.