Microsoft today announced a major new initiative that will finally alleviate some of the persistent confusion around Windows app development. Project Reunion, as it is called, is meant to unify the Windows developer platform, which is currently broken up between Win32, which was long the standard way of building Windows app, and the Universal Windows Platform (UWP), which Microsoft started betting on during the ill-fated Windows 8 era (you may remember UWP under the “Metro-style apps” monicker).
This is a move the company signaled at its 2019 developer conference when Microsoft developer platform chief Kevin Gallo talked about how developers had told Microsoft that they would like it to “decouple many parts of the Universal Windows Platform so that you can adopt them incrementally.” And that’s pretty much what the company is now doing with Project Reunion.
The idea here is to unify access to the existing Win32 and UWP APIs and decouple them from the operating system, using tools like the .NET package manager NuGet.
“This will provide a common platform for new apps,” Gallo writes in today’s announcement for Project Reunion. “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.”
For now, Project Reunion consists of two components that you’ll be able to get your hands on soon. The first is WinUI 3 Preview 1, the latest preview version of Microsoft’s user interface framework for Windows. “WinUI apps can have modern UI that adapts and scales across devices, regardless of whether building a new project or modernizing an existing app (including C++, WPF, and Windows Forms) incrementally,” explains Gallo.
The second is a new preview of WebView2, which now makes it easy to embed a Chromium-based WebView into Windows Forms, WPF and UWP/WinUI 3 apps. WebView 2 is decoupled from the operating system and “will bring the power of the Web to the full spectrum of Windows apps.”
It looks like Microsoft will do most of the work on Project Reunion out in the open by using a GitHub repo to share more about the project and to engage with the developer community.
Microsoft’s strategy around Windows app development has remained a bit chaotic over the last few years.
With UWP, Microsoft also hoped to emulate the app store model that had worked so well on mobile platforms. At the beginning of the Store, apps had to be written with UWP, but if you’re anything like me, you never bothered with the Microsoft Store because except for a few marquee apps and maybe a few games, there wasn’t really any reason to use it (and a lot of apps in it were of questionable quality), so last year, Microsoft already relaxed the requirements and allowed Win32 apps. If anything, today’s announcement is Microsoft’s way of salvaging some of the work on UWP and bringing some of the ideas from that framework to the broader Windows developer platform.
As part of today’s announcements around Windows, Gallo also noted that Windows Terminal 1.0, which allows developers to quickly run any executables — no matter whether it’s from a Windows Subsystem for Linux (WSL) distro or the Azure Cloud Shell — is now available for enterprise use.
Talking about the Windows Subsystem for Linux, Microsoft also today announced support for GPU compute workflows for Linux tools and support for Linux graphical user interface apps, so you can run a Linux GUI app directly on your Windows Machine without the need for a third-party X server, which was the case until now. Soon, WSL will also feature a simplified install experience that will let you use the “wsl.exe – install” command to install Linux apps on Windows.