Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
For a new native Windows desktop app, use WinUI 3 with the Windows App SDK. WinUI 3 is Microsoft's recommended native UI framework for new Windows apps, and the Windows App SDK is the recommended development platform.
If you maintain an existing WPF, Windows Forms, or Win32 app, you don't necessarily need to rewrite it. You can add Windows App SDK features to your current app or migrate its UI to WinUI 3. If you maintain a UWP app, follow the migration path to the Windows App SDK and WinUI 3.
Choose your path
| Your scenario | Recommended path |
|---|---|
| You are starting a new native Windows desktop app | Use WinUI 3 with the Windows App SDK. |
| You maintain a WPF or Windows Forms app | Keep your current UI framework and add Windows App SDK features, or migrate your UI to WinUI 3. |
| You maintain a C++ Win32 app | Continue to use Win32 where required and add Windows App SDK features. |
| You maintain a UWP app | Plan a migration to the Windows App SDK. |
| Your app must share its UI and code across operating systems | Review the cross-platform framework documentation. |
| You want to make a website installable on Windows | Review the Progressive Web Apps documentation. |
Start a new app with WinUI 3
WinUI 3 provides the native UI framework for Windows desktop apps. It uses XAML with C# or C++ and ships as part of the Windows App SDK.
For more information, see the WinUI 3 overview, Windows App SDK overview, and WinUI 3 tutorial.
Modernize or migrate an existing app
You can adopt Windows platform features incrementally without changing your existing UI framework. The Windows App SDK supports existing WPF, Windows Forms, and C++ Win32 apps.
- To add windowing, app lifecycle, text rendering, and other Windows App SDK features, see Use the Windows App SDK in an existing project.
- To compare incremental modernization with a UI migration, see Modern Windows features for desktop apps.
- To move an existing UI layer to WinUI 3, see Migrate to the Windows App SDK.
- If you maintain a UWP app, see Migrate from UWP to the Windows App SDK.
Find documentation for another framework
Use these links when you maintain an app built with another framework or have a requirement that WinUI 3 doesn't address, such as sharing one UI across multiple operating systems.
| Technology | Documentation |
|---|---|
| WPF | WPF overview |
| Windows Forms | Windows Forms overview |
| Win32 and C++/WinRT | Win32 desktop programming and C++/WinRT |
| UWP | UWP documentation and migration guidance |
| .NET MAUI | .NET MAUI overview |
| React Native for Desktop | React Native for Windows |
| Electron | Get started with Electron on Windows |
| Progressive Web Apps | Progressive Web Apps on Windows |
Understand the Windows SDKs
The Windows App SDK provides a set of APIs and tools for desktop apps, including WinUI 3, app lifecycle, windowing, and notifications. It ships through NuGet on a release cycle that is separate from Windows. You can use it when creating a WinUI 3 app or add many of its features to an existing desktop app.
The Windows SDK provides the headers, libraries, metadata, and tools for accessing Windows operating system APIs. Use it when your app needs Win32, Windows Runtime, DirectX, or other operating system capabilities.
Windows developer