-
Notifications
You must be signed in to change notification settings - Fork 769
Description
WinUI 3.0
At the Microsoft Build conference in May 2019 we shared our plans for WinUI 3.0, which will greatly expand the scope of WinUI to include the full native Windows UI platform. This means that the full Xaml framework would be developed on GitHub and ship out of band as NuGet packages.
The WinUI roadmap is now up to date with the latest plans for WinUI 3.0:
https://github.com/microsoft/microsoft-ui-xaml/blob/master/docs/roadmap.md
You can also watch the Build 2019 conference session State of the Union: The Windows Presentation Platform for more details.
We'd love to hear what you think, and have some specific questions below.
How will this affect building Windows apps and components?
WinUI 3.0 will provide many benefits compared to the UWP Xaml framework, WPF, WinForms and MFC.
So, we want to make sure it's easy for everyone to use WinUI 3.0 in new and existing apps. There are a few ways we can approach this, and we'd love to hear your feedback on what areas we should focus on.
Our current thinking is:
Creating a new app
We plan to create new Visual Studio 2019 project templates for common languages (e.g. C# using .NET Core, standard C++17 using C++/WinRT) and app model + packaging (UWP + AppX, Win32 + MSIX).
What templates would interest you most?
The developer experience would be similar to current UWP apps.
Adding WinUI 3.0 to existing Win32 apps
WinUI 3.0 will include Xaml Islands, which let you use WinUI Xaml in your existing WPF, Windows Forms, and C++ Win32 applications.
The current version of Xaml Islands is only supported on Windows 10 May 2019 Update (1903), but the WinUI version should be backward-compatible to Creators Update (15063).
Were you aware of Xaml Islands for modernizing desktop apps?
Does this expanded backward-compatibility on Windows 10 make Xaml Islands more useful to you?
Updating your existing UWP Xaml app to WinUI 3.0
You'll have to update your app's target version to WinUI 3.0 to take advantage of it, similar to retargeting to a newer UWP SDK today.
We want to maximize compatibility between UWP Xaml and WinUI 3.0, but there will be some things to be aware of when updating.
1. Namespace update
The root namespace for Xaml, composition, and input APIs in WinUI will be different than the Windows UWP SDK root namespace:
Old namespace | New namespace (tentative) |
---|---|
Windows.UI.Xaml |
Microsoft.UI.Xaml |
Windows.UI.Composition |
Microsoft.UI.Composition |
Windows.UI.Input |
Microsoft.UI.Input |
We're exploring options for helping you automatically update namespaces when retargeting your UWP app to WinUI 3, at least for .NET apps.
Would it help if Visual Studio or another tool automatically updated namespaces for you?
2. Mixing UWP and WinUI Xaml components
The fastest path to releasing WinUI 3.0 would be to not support mixing:
- UWP Windows.UI.Xaml.UIElement and Windows.UI.Composition.Visual elements
with:
- WinUI 3.0
Microsoft.UI.Xaml.UIElement
andMicrosoft.UI.Composition.Visual
elements
in the same app.
However, one of our biggest concerns is the compatibility issues and work that could create for existing UWP apps and component libraries, particularly if you're authoring or consuming UWP Xaml control libraries.
For example, existing versions of the Windows Community Toolkit wouldn't be usable in WinUI 3.0 apps, so both the Toolkit and any apps using it would need to update before using WinUI 3.0.
We hope that all UWP Xaml control libraries can be updated to WinUI 3.0, but we know that even in the best case it would take time for everyone to update.
How important to you is full compatibility between existing UWP Xaml components and WinUI 3.0 apps?
Do you create or use UWP Xaml control libraries or WinRT components that you couldn't easily recompile and update alongside app code?
What would be your preferred solution for using UWP Xaml components with WinUI 3?
General questions
-
What do you think about the overall 3.0 plan outlined above and in the roadmap? Would it enable you to use WinUI for your new and existing Windows apps?
-
What kind of apps would you be most excited to use WinUI 3.0 for? Creating a new Win32 app and packaging it with MSIX? Adding new views to a WPF app? Modernizing a C++ MFC app with Fluent UI?