News

Project Reunion Unifies Win32 and UWP for Developers

Microsoft unveiled its vision for "unifying and evolving" the Windows developer platform this week with the launch of Project Reunion. Announced during the Microsoft Build virtual event, the project aims to make it easier for developers to build Windows applications by providing a unified platform for new and existing Win32 and Universal Windows Platform (UWP) apps.

The project addresses the current schism vexing Windows developers between Win32 (Windows 7) and UWP (Windows 8/10). Many developers haven't "modernized" their Win32 apps for the new UWP, and so Microsoft is offering them a fresh start.

Microsoft is planning to decouple the Win32 and UWP application programming interfaces (APIs) from the Windows operating system via tools such as the NuGet open-source package manager, explained Kevin Gallo, corporate VP in Microsoft's Windows Developer Platform group, in a blog post. This approach will provide a "common platform for new apps," Gallo said, while also enabling developers to modernize their existing apps that may have been built with C++ and .NET. 

Microsoft is also promising that the decoupled APIs will work with older supported Windows operating systems, saying that the company is working to add it to "down-level across supported versions of Windows."

Project Reunion Releases
As part of Project Reunion, Microsoft is releasing a preview of WinUI 3 Preview 1, which is described as a "high performant, Fluent-optimized native UI framework for Windows." The preview supports the development of UWP apps as well as Win32 apps, and is the first WinUI release to do so. 

Microsoft also has a WinUI 2 library with Fluent user interface controls and styles for XAML apps, which initially shipped back in October 2018, although version 2.4 just arrived this month on May 8. WinUI 3 actually "decouples the XAML, Composition and Input layers of Windows 10, and ships them independently via NuGet for any app targeting Windows 10 1803 and above," Microsoft explained.

Also as part of Project Reunion, Microsoft is releasing a new .NET preview of WebView2, which lets developers embed Web technologies in native applications. This release is decoupled from operating systems "so you are no longer locked to a particular version of Windows" when using it.

In addition, Project Reunion extends to MSIX, Microsoft latest app packaging solution for Window operating systems, both old and new. Microsoft is also touting a preview of MSIX App Attach, which is used to more easily onboard applications onto the Windows Virtual Desktop virtual desktop infrastructure service, letting organizations have remote access to applications housed in Azure datacenters. Microsoft's announcement stated that "once you adopt MSIX for Windows desktop, the same investment will soon bring even more benefits when running your app in Windows Virtual Desktop on Azure." 

Dev Tool Updates
Developers also got a few tooling updates this week. Microsoft released Windows Terminal 1.0 for enterprise use. It's a new command-line interface tool, with the shell able to use customized themes, that supports "any command line executable, including WSL [Windows Subsystem for Linux] distros and Azure Cloud Shell, inside multiple tabs, and panes." Windows Terminal 1.0 can be downloaded from the Microsoft Store or it's possible to manually assemble it using the Terminal GitHub repo.

Microsoft also added hardware acceleration support in its Windows Subsystem for Linux solution, which lets developers use Linux dev tools on Windows. The hardware acceleration support enables things like "parallel computation and training machine learning (ML) and artificial intelligence (AI) models." 

Microsoft is touting its Windows Package Manger Preview command line interface tool as making it easier to discover and install various tools. In addition, PowerToys is now at version 0.18, which lets users customize Windows 10, such as remapping the keyboard.

About the Author

Kurt Mackie is senior news producer for 1105 Media's Converge360 group.