Making Windows apps is a mess: Project Reunion is Microsoft's answer

Microsoft has revealed its plan to close the gap between Windows app developers, with Project Reunion aiming to make a common platform for new software. As it stands, Windows developers could be creating Win32 apps with the Windows API, or UWP apps using the Universal Windows Platform APIs.

That's confusing and it's impractical, because it forces Microsoft – and its developer partners – to try to navigate exactly what will, and won't, run on different versions of Windows and on different devices. The goal is a single, unified developer platform, and that's what has been outlined at Build 2020 today.

Project Reunion unifies access to existing Win32 and UWP APIs, and then decouples them from the OS itself. The resulting software will just be known as "Windows apps" and work across all Windows 10 devices, regardless of things like format or screen size.

"This will provide a common platform for new apps," Kevin Gallo, Corporate Vice President for Windows Developer Platform explains. "Plus, it will help you update and modernize your existing apps with the latest functionality, whether they're C++, .NET (including WPF, Windows Forms, and UWP) or React Native. As we decouple existing APIs and add new APIs, we are also doing the work to polyfill, as needed, so the APIs work down-level across supported versions of Windows."

The UWP was Microsoft's idea back in the days of Windows 8 for smartphone app-like development for the desktop. UWP apps would be the only software distributed through the Microsoft Store, the company insisted at the time, with the Metro-style software trying to replicate the success of iOS and Android apps. Instead, it just ended up confusing.

Some developers embraced UWP; others stuck with the familiar – and generally more flexible – Win32. Microsoft relented and allowed Win32 apps into the Microsoft Store, making UWP seem even more of a misstep.

As part of Project Reunion, Microsoft is releasing WinUI 3 Preview 1. It's a Fluent-optimized native UI framework for Windows, which will make it easier for developers to create an app interface which adapts and scales across different devices. It'll be joined by a new .NET Preview of WebView2, which will allow any Windows app to embed web content with Microsoft Edge and Chromium.

Vitally, both will support both new apps and retrofitting into existing software. They'll also be decoupled from the OS itself: apps built using Project Reunion technologies will be able to run on different versions of Windows, using tools like NuGet to pull the right APIs for the device.

It's still early days, of course, and we could forgive developers for being wary given Microsoft's track record with things like this. Nonetheless, with releases like Windows 10X on the horizon, and Microsoft pushing dual-screen form-factors and more, getting a single app portfolio that doesn't drive developers to distraction is more important than ever.