At this time, there are two generations of WinUI: WinUI 2 for UWP and WinUI in the Windows App SDK (WinUI 3). While both can be used in production-ready apps on Windows 10 and later, each have different development targets.
WinUI is a native user experience (UX) framework for both Windows desktop and UWP applications.
By incorporating the Fluent Design System into all experiences, controls, and styles, WinUI provides consistent, intuitive, and accessible experiences using the latest user interface (UI) patterns.
With support for both desktop and UWP apps, you can build with WinUI from the ground up, or gradually migrate your existing MFC, WinForms, or WPF apps using familiar languages such as C++, C#, Visual Basic, and JavaScript (using React Native for Desktop).
The WinUI libraries are hosted in the WinUI GitHub repo where you can file feature requests or bugs, and interact with the WinUI team.
Comparison of WinUI 3 and WinUI 2
The following table highlights some of most significant differences between WinUI 3 in the Windows App SDK and WinUI 2 for UWP.
UX stack and control library completely decoupled from the OS and Windows SDKs, including the core framework, composition, and input layers of the UX stack.
UX stack and control library tightly coupled to the OS and Windows SDKs.
WinUI 3 can be used to build production-ready desktop/Win32 Windows apps.
WinUI 3 ships as a component of the Windows App SDK framework package, with Visual Studio project templates in the Windows App SDK Visual Studio Extension (VSIX).
Part of WinUI 2 ships within the operating system itself (the Windows.UI.* family of UWP WinRT APIs) and part of it ships as a library ("WinUI 2") with additional controls, elements and the latest styles on top of what's already included in the operating system itself. With WinUI 2, these features ship in a downloadable NuGet package. However, other significant parts of the UI stack are still built-in to the OS, such as the core XAML framework, input, and composition layers.
WinUI 3 supports C# (.NET 6 and later) and C++ for desktop apps.
WinUI 2 supports C# and Visual Basic (.NET Native), and C++ apps.
WinUI 2 can be incorporated into production UWP apps by installing a NuGet package into a new or existing UWP project. WinUI controls and styles can then be referenced directly in new apps, or by updating "Windows.UI." namespace references to "Microsoft.UI." in existing apps.
WinUI 3 supports the Chromium-based WebView2 control
WinUI 2 supports the WebView control on all devices, and starting with WinUI 2.8, the WebView2 control on Desktop.
WinUI 3 works downlevel to Windows 10 October 2018 Update (Version 1809, OS build 17763).
WinUI 2.0 - 2.7 works downlevel to Windows 10 Creators Update (Version 1703, OS build 15063). WinUI 2.8 and later works downlevel to Windows 10 October 2018 Update (Version 1809, OS build 17763).
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.
Windows developer feedback
Windows developer is an open source project. Select a link to provide feedback:
Windows developers have various options for creating applications that run on Windows. This module introduces the native Windows UI frameworks that are available for Windows development. It also provides guidance on how to choose the best framework for your application.