Build desktop apps for Windows PCs

This article provides the info you need to get started building desktop apps for Windows or updating existing desktop apps to adopt the latest experiences in Windows 10.

Platforms for desktop apps

There are four main platforms for building desktop apps for Windows PCs. Each platform provides an app model that defines the lifecycle of the app, a complete UI framework and set of UI controls that let you create desktop apps like Word, Excel, and Photoshop, and access to a comprehensive set of managed or native APIs for using Windows features.

For an in-depth comparison of these platforms along with additional resources for each platform, see Choose your app platform.

Platform Description Docs and resources
Universal Windows Platform (UWP)

The leading-edge platform for Windows 10 apps and games. You can build UWP apps that exclusively use UWP controls and APIs, or you can use UWP controls and APIs in desktop apps that are built using one of the other platforms.

Get started
API reference

The platform of choice for native Windows apps that require direct access to Windows and hardware.

Get started
API reference

The established .NET-based platform for graphically-rich managed Windows apps with a XAML UI model. These apps can target .NET Core 3 or the full .NET Framework.

Get started
API reference (.NET)
Windows Forms

A .NET-based platform that is designed for managed line-of-business apps with a lightweight UI model. These apps can target .NET Core 3 or the full .NET Framework.

Get started
API reference (.NET)

Future roadmap

Looking forward, we are evolving the Windows app development platforms with the Windows UI (WinUI) Library and Project Reunion.

  • WinUI is a native user experience (UX) framework for Windows 10 apps. WinUI started as a toolkit that provided new and updated versions of UWP controls for UWP apps that target down-level versions of Windows 10. WinUI has grown in scope, and as of WinUI 3 (currently in preview) it is now the modern native user interface (UI) platform for Windows 10 apps across UWP, .NET, and Win32.

    For more information, see Windows UI (WinUI) Library.

  • Project Reunion (currently in preview) is the code name for a broad set of new developer components and tools that represents the next evolution in the Windows app development platform. Project Reunion provides a unified set of APIs and tools that can be used in a consistent way by any app on a broad set of target Windows 10 OS versions. Project Reunion complements existing Windows app platforms and frameworks such as UWP and native Win32, and .NET with a common set of APIs and tools that developers can rely on across these platforms.

    For more information, see Project Reunion.

Update existing desktop apps for Windows 10

If you have an existing WPF, Windows Forms, or native Win32 desktop app, Windows 10 and the Universal Windows Platform (UWP) offer many features you can use to deliver a modern experience in your app. Most of these features are available as modular components that you can adopt in your app at your own pace without having to rewrite your app for a different platform.

Here are just a few of the features available to enhance your existing desktop apps:

  • Use MSIX to package and deploy your desktop apps. MSIX is a modern Windows app package format that provides a universal packaging experience for all Windows apps. MSIX brings together the best aspects of MSI, .appx, App-V and ClickOnce installation technologies and is built to be safe, secure, and reliable.
  • Integrate your desktop app with Windows 10 experiences by using package extensions. For example, point Start tiles to your app, make your app a share target, or send toast notifications from your app.
  • Use XAML Islands to host UWP XAML controls in your desktop app. Many of the latest Windows 10 UI features are only available to UWP XAML controls.

For more information, see these articles.

Article Description
Modernize desktop apps Describes the latest Windows 10 and UWP development features you can use in any desktop app, including WPF, Windows Forms, and C++ Win32 apps.
Tutorial: Modernize a WPF app Follow step-by-step instructions to modernize an existing WPF line-of-business sample app by adding UWP Ink and calendar controls to the app and packaging it in an MSIX package.

Create new desktop apps

If you are creating a new desktop app for Windows, here are some resources to help get you started.

Article Description
Choose your app platform Provides an in-depth comparison of the main desktop app platforms and can help you choose the right platform for your needs. This article also provides useful links to docs for each platform.
Visual Studio project templates for Windows apps Describes the project and item templates that Visual Studio provides to help you build apps for Windows 10 devices by using C# or C++.
Modernize desktop apps Describes the latest Windows 10 and UWP development features you can use in any desktop app, including WPF, Windows Forms, and C++ Win32 apps.
Features and technologies Provides an overview of Windows features that are accessible via each of the main desktop app platforms and links to the related docs.
Resource Description
.NET Core 3.1 Learn about the latest features of .NET Core 3.1, including enhancements for WPF and Windows Forms apps.
.NET 5 This article details what's included in .NET 5, which is the next release of .NET Core following 3.1.
Desktop guide for WPF and .NET Core Develop WPF apps that target .NET Core instead of the full .NET Framework.
Azure Extend the reach of your apps with Azure cloud services.
Visual Studio Learn how to use Visual Studio to develop apps and services.
MSIX Package and deploy any Windows app in a modern and universal packaging format.
Windows AI Use Windows AI to build intelligent solutions for complex problems in your apps.
Windows Containers Package your applications with their dependencies in fast, fully isolated Windows environments.
Progressive Web Apps Convert your web apps into Progressive Web Apps that can be distributed and run as UWP apps on Windows 10.
Xamarin Build cross-platform apps for Windows, Android, iOS, and macOS using .NET code and platform-specific user interfaces.
Docs archive for Windows 8.x and earlier Access archived documentation about building apps for Windows 8.x and earlier versions.