Edit

Choose a Windows development path

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 logo.

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.

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.