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 set of UI controls, and access to a comprehensive set of managed or native APIs for using Windows features.

The following table introduces the platforms. 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
Samples
Win32

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

Get started
API reference
Samples
WPF

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)
Samples
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)
Samples

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.
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.0 Learn about the latest features of .NET Core 3.0, including enhancements for WPF and Windows Forms apps.
Desktop guide for WPF and .NET Core 3.0 Develop WPF apps that target .NET Core 3.0 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.