WinUI 3 Team Asked About Delayed Open Source Plans: 'What Happened?'
Reddit AMA attendees also ask about multiple window support, XAML Islands and more.
A developer asked Microsoft's WinUI 3 dev team about delayed open source plans for the nearly two-year-old project that serves as the company's next-gen UI library for creating Windows apps. The answer in part was that taking the project to the open source community was "harder than we thought it would be." So it's still in the works.
Microsoft explains that WinUI 3 is the now-decoupled native UI platform component that ships with the Windows App SDK (formerly called "Project Reunion"). It uses Fluent Design to provide a native user experience (UX) framework for both Windows Desktop (Win32) and UWP applications, the two schemes that are being bridged in a "reunion."
The Windows App SDK dev team recently hosted a live "Ask Me Anything" (AMA) event on the Reddit social site to mark the recent v1.0 debut. That's where the question about the delayed open source plans for WinUI 3 came up.
"When WinUI3 was first announced, going open source was one of the big promises of it, and we all got excited" said a post by dotMorten. "It's now almost two years since that promise, and open source planning has quietly completely dropped from the roadmap, and is never being talked about. What happened, and when will we see open sourcing WinUI, so we get better debugging, error reporting, and community involvement, like we've seen with .NET Core?"
Here's the answer:
Ryan Demopoulos here (the guy who has been talking about open source for those two years). You asked "What happened" -- a very fair question. Basically two things happened:
- Retroactively open sourcing a codebase of over 3 million lines, which includes fixing thousands of private API calls, was harder than we thought it would be.
- Our highest priority for important stable releases like 0.5, 0.8, and the recent 1.0 was to make sure we had the right features in place with as much stability as we could provide. This meant focusing the team on those capabilities, and that came at the expense of making progress towards open source.As mentioned, we just shipped WinAppSDK 1.0, which was a huge lift for the WinUI 3 team and everyone involved. We're now already looking ahead to 1.1, and also the holidays are about to hit. Internally, I've already set up a series of conversations with our team about what to do about open source -- when can we realistically get this done, given that there's still a lot of work to do and processes to put in place? Once I have a better sense of what's left and when we could tackle the remaining items, I'll update the community with this info. Likely at one of our community calls in 2022.
"Thanks for providing a detailed update about this!" chimed in another attendee. "Glad it hasn't been forgotten about."
More Delays: Multiple Windows, XAML Islands Etc.
Open sourcing the WinUI 3 UI component of the Windows App SDK is just one of the aspects of the project that are running late, as the AMA also discussed other features not yet fully baked, including support for multiple windows and XAML Islands.
In fact, the Windows App SDK portal that now serves as a roadmap shows "multiple window support" on tap for v.1.1, which is tentatively expected to ship in Q2 2022 (an AMA question asked "When can we open multiple windows in an app, it's so unbelievable that this is still missing."). Other features planned for v1.1 include push notifications for non-Store apps, local toast notifications and more.
XAML Islands, meanwhile, are "under consideration," in addition to controls for media, maps and inking, along with many other features. XAML Islands enables Windows coders to use new pieces of UI from the UWP on existing Win32 apps, including Windows Forms and Windows Presentation Foundation (WPF) technologies. Also, as of Windows 10, version 1903, developers can host WinRT XAML controls in non-UWP desktop applications using XAML Islands, as Microsoft explains here.
During the Reddit AMA, a Microsoft developer provided more information on the project when an attendee asked about the timeline for XAML Islands in WinUI 3:
XAML Islands is one of the top next priorities for WinUI 3. It's a pretty huge space; we learned a lot from XAML Islands in UWP XAML (WinUI 2), and we're already underway trying to bring that capability to WinUI 3 but in an improved form. My expectation of how this will unfold is that you'll start to see experimental Islands APIs showing up around when we ship 1.1, and probably won't have stable versions of the APIs until 1.2-ish. But the team is already actively working on this and that work will continue thru 2022, and into 2023, as we handle more and more scenarios. It's probably an overall 2 year+ journey that we want to bring online successively as quickly as possible.
As far as what did make into WinUI 3 in Windows App SDK v1.0, the release notes show these new features and updates:
- We've added new controls (PipsPager, Expander, BreadcrumbBar) and updated existing controls to reflect the latest Windows styles from WinUI 2.6.
- Single-project MSIX packaging is supported in WinUI by creating a new application using the "Blank App, Packaged..." template.
- We now support deploying WinUI 3 apps without MSIX-packaging on Windows versions 1809 and above. Please view Create a WinUI 3 unpackaged desktop app for additional information.
WinUI 3 projects can now set their target version down to Windows 10, version 1809. Previously, they could only be set as low as version 1903.
In-app toolbar, Hot Reload, & Live Visual Tree for WinUI packaged apps are supported in Visual Studio 2022 Preview 5 and GA.
Regarding the Windows App SDK in general, Microsoft said this in the AMA:
"What's new, you ask? The 1.0 stable version of WinUI can be used for shipping production apps. There is also a new high-level windowing API that allows for easy-to-use windowing scenarios that integrates well with the Windows user experience and with other apps. This release of the Windows App SDK is focused on supporting unpackaged apps on x86 and x64. Keep an eye out for ARM64 support, which will be added in the next stable release."
David Ramel is an editor and writer for Converge360.