Overview of app development options

This article contains all the information you need to get started building apps for the Windows desktop environment or updating existing apps to take advantage of the latest Windows OS experiences.

Alt Person typing at a computer.

Create new apps

When you want to create a new app for Windows 11 or Windows 10, the first decision you make is what type of app to build. The Windows and .NET development tools in Visual Studio provide several different types of apps you can build, each with their own Visual Studio project types and different strengths.

Each app type includes an app model that defines the lifecycle of the app, a default UI framework that lets you create apps like Word and Excel that run in the Windows desktop environment, and access to a comprehensive set of managed and native APIs for using Windows features. Some of these platforms share certain traits and are better suited for specific application types.

No matter which app type you choose to start with, you have access to most Windows platform features to deliver a modern experience in your app. For example, even if you build a WPF, Windows Forms, or classic Win32 desktop app, you can still use MSIX package deployment, Windows Runtime (WinRT) APIs provided by the Windows OS and the Windows SDK, and APIs provided by the Windows App SDK. For more information, see Update existing apps later in this article.

App types

For more information about the app types you can choose from, see the following tabs.

The Windows UI Library (WinUI) 3 is the premiere native user interface (UI) framework for Windows desktop apps, including managed apps that use C# and .NET and native apps that use C++ with the Win32 API. By incorporating the Fluent Design System into all experiences, controls, and styles, WinUI provides consistent, intuitive, and accessible experiences using the latest UI patterns.

To build a WinUI 3 app, start with one of the project templates available in the Windows App SDK. The Windows App SDK provides a unified set of APIs and tools that can be used in a consistent way by any C++ Win32 or C# .NET app on a broad set of target Windows OS versions.

For more information about WinUI 3 apps, see see the following articles:

Update existing apps

If you have an existing WPF, Windows Forms, or native Win32 desktop app, the Windows OS and the Windows App SDK 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:

  • Install the Windows App SDK NuGet package in your existing project to call Windows App SDK APIs for localizing resources, rendering text, and more in your app.
  • Call Windows Runtime (WinRT) APIs to enhance your desktop app with the latest Windows features.
  • Use package extensions to integrate your desktop app with modern Windows experiences. 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 WinRT XAML controls in your desktop app. Many of the latest Windows UI features are only available to WinRT XAML controls.
  • 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.

For more information, see Modernize desktop apps.