Microsoft released the Windows App SDK 1.0 earlier this month, the first full version of “Project Reunion,” but there is some confusion as to what it is and if developers need it.
The release of the Windows Application SDK was associated with the arrival of .NET 6.0, a long-term release of Microsoft’s application platform, but it is not exclusively a .NET API. . What is it then?
Unfortunately, the answer is complex, which is why Microsoft has struggled to articulate it. Best effort is this GitHub post which describes it as a combination of new APIs with converged APIs that can wrap both Win32 and WinRT – where Win32 is the original, low-level Windows API, and WinRT the binary interface. modern introduced for Windows 8.
At one point, WinRT and then UWP (Universal Windows Platform) were supposed to be the future of Windows development, but it didn’t work, leaving Microsoft to put together what it forced to separate, hence “Project meeting”.
Converged API in Windows Application SDK
WinUI 3, Microsoft’s latest GUI framework, is a component of the Windows Application SDK, but it doesn’t have to be used.
One way to think of it is that WinUI 3 is the UWP user interface detached from the UWP application model, the twist being that UWP cannot use WinUI 3 and therefore will gradually fall behind. WinUI 3 requires a recent version of Windows, especially Windows 10 version 1809 (October 2018) or later.
Unsurprisingly, the first WinUI 3 is not complete. One notable omission is the support for multiple windows, which results in issues like this: “When I try to create a new window other than MainWindow, an exception from KernelBase is thrown.” The response: “Unfortunately, support for several Windows was not completed in time to be included in version 1.0.”
Other features underway in Q2 2022 are elevation support (run as a local admin) and toast notifications.
The WinUI 3 roadmap
Microsoft explains that developers can gradually migrate to the Windows Application SDK. “You’ll start using these APIs by adding a reference to the NuGet Windows App SDK package and then adding uses of the APIs in your application code. Use as much or as little of the Windows App SDK as your app helps your app, ”the team said.
It is also not necessary to use the Windows Store or the MSIX package. The App SDK works with packaged and non-packaged applications.
Some developers have struggled with all of these accolades. “I see I can create a new ‘WinUI 3 in Desktop’ application. If I do this, the resulting file contains XAML with a project structure that looks a bit like UWP or WPF XAML. Is it a WinUI 3 application or a Windows Application SDK app? ” one developer said, admitting to being “royally confused.”
Ben Kuhn, head of software engineering at Microsoft, responded that such an application would be both, although an application could also use the Application SDK without WinUI 3.
An “Ask Me Anything” session with the App SDK team on Reddit was instructive. Why is a UWP-style user interface slow? “Performance will be an area of focus for us in 2022,” the team said, although “most of the UI elements are already rendered fairly quickly”.
It was noted, however, by another developer that “UWP XAML is actually very fast, but it looks like performance was completely rejected by windows with WinUI 3 when pulled from the OS composer. “- referring to how WinUI 3 has been decoupled from the operating system.
Where are the XAML islands, the ability to use WinUI 3 in an application built with another GUI framework? “It’s probably a global journey of over 2 years,” the team confessed, saying the work to implement this “will continue through (sic) 2022 and into 2023”.
Why is WinUI 3 not open source as originally promised? “A very fair question,” said Ryan Demopoulos, Microsoft program manager. “Open source retroactive to a code base of over 3 million lines, which includes resolving thousands of private API calls, was more difficult than we thought. “
This is still expected, he hinted, but at the stage of setting up “conversations with our team on what to do with open source.” It doesn’t appear to be soon.
It looks like WinUI 3 isn’t quite ready yet, despite its 1.0 designation. “WinUI 3.0 is essentially a reboot to the capabilities of Windows 8, with a lot of features not available… having been burned with so many rewrites since Windows 8, I wouldn’t consider WinUI until they delivered an application to it. Microsoft major, like Office, “said one developer.
The sample applications are few, although the team said “We work with many internal Microsoft applications and Windows components on delivery with WinAppSDK. We’ll talk more about that as we get closer to release. “
Why bother? The team referenced this article on how to write an application that is perfect for Windows 11. This includes using the latest common controls (things like checkboxes, sliders, and lists), use of Acrylic and Mica design textures, support for rounded window corners and Windows 11 instant layouts, supporting dark theme as well as light, and using new Segoe UI font and Windows icons 11.
“We recommend that all applications switch to using these new icons and fonts to be consistent on Windows 11,” the docs say.
The developers will be skeptical, however. Users are just getting started with Windows 11. The new SDK is not mature.
An app that looks okay on Windows 11 can look dated on Windows 12, every time it presents itself, and cross-platform is a necessity for many types of apps, pushing developers towards more scalable web technology.®