Windows App SDK ('Project Reunion') Polished Ahead of v1.0 GA Debut
Microsoft shipped a second preview of the Windows App SDK (formerly called Project Reunion) ahead of the v1.0 general availability release expected before year's end.
The company calls the Windows App SDK the evolution of Windows desktop app development. It's a unified set of of libraries, frameworks, components and tools that developers can use to consistently create any desktop app on OS versions ranging from Windows 11 down to Windows 10 version 1809. It was designed to alleviate the complexity of Windows app development that was caused by the emergence of two disparate sets of APIs: for the older Win32 platform and the newer Universal Windows Platform (UWP).
The Win32 API (used for what is often called "classic Windows desktop development") was the original C/C++ platform for native Windows apps, providing close-to-the-metal performance with direct access to system hardware. UWP, a "modern" take on Windows development, provides a common type system and application model and APIs for all Windows 10 devices. UWP effectively containerizes these apps with lower privilege levels and package identity delivered via an MSIX installer. The Windows App SDK unifies these disparate API sets by basically decoupling them from the OS and serving them up via NuGet.
The second v1.0 preview shipped last week with little in the way of big new features as it heads for general availability, which Microsoft says will come in Q4 2021. If it ships with .NET 6, that will likely be around Nov. 9, when the Microsoft .NET Conf 2021 tech event kicks off.
Components available now include:
- WinUI: This is the native UI layer for Windows that embodies Fluent Design and delivers modern, performant and polished user experiences to both Win32 and UWP apps. This component is part of the Windows App SDK Family of functionality, building on the identity + packaging + deployment transparent ideas that Windows App SDK supports for apps as well.
- C++/WinRT, Rust/WinRT and C#/WinRT: These provide language-native projections of Windows, Windows App SDK and custom types defined in metadata. Developers can consume APIs from the Windows Kit, produce them for use by other supported projections and create new language projections.
- MSIX-Core: This lets developers package an application for distribution to Windows Desktop machines via the store or individual delivery pipelines. MSIX-Core lets developers reuse parts of the MSIX packaging story on older versions of Windows.
Possible features coming up include an Edge/Chromium backed WebView2, modern Lifecycle helpers, Startup Tasks and much more.
The following graphic from the project's roadmap shows the features that shipped with v8.0 in June, those expected in v1.0 and those planned for afterward.
As shown, v1.0 graduates several features from "experimental" and "not supported" statuses to "supported" in both packaged (MSIX) and unpackaged desktop app projects.
In the new Preview 2, functionality around these features mostly advances in small steps. For the crucial WinUI 3 component, for example, the only new updates are:
- Controls have been updated to reflect the latest Windows styles from WinUI 2.6.
- Single-project MSIX is supported.
- WinUI package can now target build 17763 and above.
- In-app toolbar is supported. However, the in-app toolbar and existing Hot Reload/Live Visual Tree support require the upcoming Visual Studio 17.0 Preview 5 release, available later in October.
The Preview release channel for the Windows App SDK also lists new features and bug fixes related to windowing, input, MRT Core, deployment for unpackaged apps, App Lifecycle and more.
Microsoft warns that wares in the Preview channel shouldn't be used for production.
David Ramel is an editor and writer for Converge360.