Project Reunion 0.5 Ships with WinUI 3 Desktop Dev Tooling
Microsoft shipped a production-ready Project Reunion 0.5, which for the first time contains tooling for WinUI 3 desktop applications that are forward-compatible with future releases.
To sort out these emerging schemes that are among a cluttered field of desktop dev options, here are brief descriptions:
Project Reunion is meant to address difficulty in Windows desktop app development in part by bridging two disparate Windows desktop development schemes that have arisen: Win32 and Universal Windows Platform (UWP).
The project's GitHub site says: "Project Reunion empowers all Windows apps (not just UWP/MSIX) with modern Windows UI, APIs and platform features, including back-compat support, shipped via NuGet."
Microsoft earlier this month shipped a v0.5 preview, at which time the company's Thomas Fennel said, "Windows development is hard" in explaining its reasoning. He said that in talking to enterprise customers, "we have heard that Windows development is hard. It's harder than it should be. It's harder than it needs to be."
Microsoft is addressing that difficulty in part with the Project Reunion extension in the Visual Studio Marketplace.
WinUI 3 is a Project Reunion component that uses Fluent Design to provide a native user experience (UX) framework for both Windows Desktop (Win32) and UWP applications.
The new production-ready Project Reunion v0.5 release comes with ability to create desktop apps with WinUI 3, including using .NET 5 for Win32 apps.
In "Announcing Project Reunion 0.5" on March 29, Microsoft's Andrew Clinick noted that, in addition to the above functionality, it gives developers earlier access to new Windows technologies and features because they are now decoupled from the OS. Previously, he said, developers might have to wait a year or two for an OS update to put new goodies to use in applications.
Other new features in the production-ready release that differ from the preview include:
- Chromium-based WebView2 control (for embedding web content into Windows apps using the engine that now powers the company's Edge browser)
- Custom titlebar support
- ARM64 support
Clinick said the release also now provides full support for these features introduced in an earlier preview:
- MRTCore, which streamlines the Windows Resource Management System used to index all app resource variants at build time and then detect user and machine settings at run time to load the resources to fit those settings
- DWrite Core, a customized version of DirectWrite, used to support high-quality text rendering in modern applications
"The features we are releasing today ship as part of the Project Reunion framework package," Clinick said. "You can think of this framework package as how we bring together all the parts of the Project Reunion family -- like WinUI 3 for example, which is not directly in the Project Reunion GitHub repo -- into one place for developers to use seamlessly."
As far as WinUI 3, he said the version included with Project Reunion is the first to support production apps that are forward-compatible, including desktop apps for the Microsoft Store. That's done in two different ways:
- Creating a brand-new WinUI 3 Desktop app from scratch
- Migrating existing Desktop apps to WinUI 3 by adding a new WinUI 3 project to your solution, and adjusting or refactoring your logic
However, some of the brand-new goodies introduced in a preview won't be available when using the stable version, though they are still available in the preview VSIX package. Developers also need to use Visual Studio previews for full WinUI 3 functionality. VS 2019 16.8 can't be used at all, and VS 2019 v16.9 doesn't support Hot Reload, Live Visual Tree or Live Property Explorer.
Here's the WinUI 3 feature roadmap:
As for what's coming up for Project Reunion, features planned for this year include:
- App Lifecycle for improved system performance and battery life
- A modern Windowing system that combines the power of Win32 windowing with the ease of UWP
- Notifications support for both local and push scenarios
- Unpackaged app support (unpackaged desktop apps include WPF, WinForms, Win32 or console, not using the MSIX app package format)
- Preview and stable releases for Project Reunion v0.8 and v1.0
These graphics show how Project Reunion supports packaged and unpackaged apps:
To get started with Project Reunion, a good place to go is "Get started with Project Reunion."
Note that many third-party dev tooling vendors are onboard the Project Reunion bandwagon with current or planned support, including Actipro Software, DevExpress, GrapeCity, Infragistics, Syncfusion, Telerik UI for WinUI, Uno Platform and the .NET Foundation's open source Windows Community Toolkit. The announcement post provides more details on their ecosystem support efforts.
David Ramel is an editor and writer for Converge360.