
With Build 2021 now in the rearview mirror, we have a clearer picture of the paths forward that Microsoft is providing for Windows app developers. Nothing major has changed since last year, but Windows developers now have several major milestones coming in late 2021 and some decisions to make.
First, a couple of general thoughts and observations.
Though I try to keep my knowledge about Windows application development as up-to-date as possible, I’m not a developer, professional or otherwise. I’m more of an outside observer—kind of like Michael Pollan, when it comes to writing about health and nutrition—but hopefully a semi-educated one. Either way, some of what you read here will be a straightforward recitation of what Microsoft is doing. And some will be my opinion.
Going over the Build 2021 session list, it’s clear that Windows app development takes a backseat in Redmond to Azure and Microsoft’s other developer initiatives. I wish things were different for personal reasons, but Microsoft’s cloud focus is probably warranted. And while one must really dig through the Build content to figure out what the client development story looks like these days, some clear trends do emerge for developers of existing and new apps.
I see three major paths for Windows apps developers—Project Reunion, MAUI, and web apps—and each relies, in its own way, on .NET 6, which is shipping in November. So let’s dive in.
Announced at Build 2020, Project Reunion is an overdue attempt to blend the best of the Universal Windows Platform (UWP) with legacy development platforms like Win32/C++, Windows Forms, and Windows Presentation Foundation (WPF).
There are two big innovations here. First, Microsoft is decoupling new developer features from specific Windows 10 versions and making them available across all supported Windows 10 versions. And second, it is bringing developer features that were previously locked in UWP to those legacy dev platforms.
I was originally pretty gung-ho about Project Reunion, but after evaluating early releases, I determined that it wasn’t really the way forward, just as UWP wasn’t the way forward. That is, Project Reunion isn’t for new apps—and, really, what developer would ever choose to create a Windows-only application in the 2020s anyway?—but is instead solely for developers with existing apps that need some modern feature updates. There’s nothing wrong with that, of course. In fact, it’s how Microsoft should have handled UWP when Windows 10 was first released in 2015.
If you’re interested in Project Reunion, I recommend checking out the Build 2021 session What’s new for Windows desktop application development with Andrew Clinick and Thomas Fennel. There’s some forced “Between Two Ferns”-style humor that most won’t get and is never funny, but the two provide a good overview of Project Reunion, where it’s at now, and when we can expect to see a shipping, GA (generally available) version: In November, alongside .NET 6.
Also announced at Build 2020, the .NET Multi-platform App UI (MAUI) is a modern replacement for Xamarin.Forms, which is Microsoft’s current approach for letting C# developers create mobile apps that run on Android and the iPhone (and, once, Windows phones). As any Xamarin developer would readily admit, however, Xamarin.Forms is a buggy, slow, and inelegant mess. MAUI seeks to fix that, and to broaden app creation support to include Windows 10 and the Mac.
Like Project Reunion, MAUI is expected to ship in final 1.0 form in November. But unlike Project Reunion, Microsoft didn’t offer a single session at Build 2021 that was focused only on MAUI. Instead, if you search the Build 2021 sessions for this topic, you’ll get only two results: A Q&A session for creating modern apps with .NET and one called Get started with app development on the Microsoft Stack that covers “Visual Studio, MAUI for .NET, Fluent Framework, Windows UI 3.0, Power Platform, Microsoft Graph and more.”
I find this lack of focus confusing because I see MAUI as one of the two ways forward for developers looking to create modern new Windows apps. Now, I realize that I wrote above that no developer would ever choose to create a Windows-only application in the 2020s, and that’s true. What makes MAUI compelling is that it’s a way to create native apps that span four of the five top computing platforms available today: Windows, the Mac, Android, and iPhone. (What’s missing here, of course, is the web. See the next section.)
If you are interested in MAUI, the session you should watch is Scott Hunter’s The future of modern application development with .NET. MAUI is only one of the topics that he addresses, but it’s worth watching. And he answers two of the questions I had a year ago with regards to how MAUI relates to Project Reunion and WinUI 3, which is the main user interface framework in Reunion: He says that MAUI apps will indeed support both on Windows 10.
I feel very strongly that web apps are the future of all apps—mobile, desktop, whatever—and that most new apps should be built using web, and not native, technologies. And so I was particularly interested to see what Microsoft had to say about web apps at Build 2021. Oddly, I was mostly disappointed: Searching for terms like React, React Native, or PWA/Progressive Web Apps turned up no relevant results, and it appears that Microsoft instead focused on its .NET-based Blazor solutions instead.
Blazor is to the web what MAUI/Xamarin.Forms is to mobile development: A way for C#/.NET developers to use their existing skills and experience to build apps for a new platform. And in this case, that platform is the web.
Today, developers can use Blazor to create web apps that run on a server or, via WebAssembly, in the browser. But with .NET 6 in November, developers will also be able to use Blazor to create hybrid desktop apps that combine native desktop UIs with web technologies. These Blazor Desktop apps will work on both Windows 10 and the Mac.
Blazor Desktop is very similar to Electron, though one hopes its not as bloated. And it is, go figure, based on MAUI, so one might argue that, between MAUI and Blazor Desktop, Microsoft offers roughly the same platform support as does Google’s Flutter. (OK, not exactly, since Flutter supports Linux, too. But close enough.)
With that in mind, I also see Blazor Desktop as another way forward for Microsoft-focused developers who wish to create new desktop apps because it’s a cross-platform solution.
There isn’t a single Build 2021 session devoted to Blazor Desktop explicitly, which I find odd, but then there’s very little content about Blazor (web) either. Again, I recommend watching Scott Hunter’s The future of modern application development with .NET, and he notes that Blazor Desktop primarily targets web developers who want to add a rich client experience to their apps that includes an offline experience.
As promised, not much has changed from a strategy perspective since last year, but we’re at least getting close to seeing these technologies released publicly in non-preview form for the first time.
Project Reunion is a way for developers with existing apps to modern their solutions. MAUI is a way for C#/.NET developers to create new native apps that work across Windows 10, Mac, Android, and iPhone. And Blazor Desktop is a way for web developers to create new hybrid desktop apps that work on Windows 10 and Mac; these apps can use more native capabilities today than can traditional web apps and Progressive Web Apps (PWAs).
Not surprisingly, these are very Microsoft-focused solutions in that they address the needs of existing Microsoft stack/.NET developers, providing them with a way to move forward with native and native-like apps for Windows (and other platforms). But again, I feel that web apps are the future, and that, for the wider world of developers out there, other cross-platform solutions—PWAs, React, Flutter, whatever—might make more sense to many. Certainly, there is no lack of choices here.
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.