An overview of Windows development options

This article contains the information you need to get started building apps for the Windows desktop environment.

Developer at desk

Windows offers a wide range of options for building apps, including C++, .NET, and other emerging technologies such as open source tools on WSL and Rust. With so many choices, it can be difficult to know where to begin.

Languages and frameworks

Many apps for Windows are written using UWP, WPF or Windows Forms, and they all remain viable tools today. For a summary of which to use, see Windows app development: options and features.

If your app will run only on Windows you might want to investigate the Windows App SDK and WinUI 3. If you need your app to be cross-platform, consider .NET MAUI, a Progressive Web App (PWA), or React Native for Windows. There are many other choices available (here's a list of popular options), but the above are some good starting points.

Windows platforms

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

The Windows UI Library (WinUI) 3 is the latest 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. It is still under very active development, so while it might not be able to meet all your needs today it's maturing with every release.

By incorporating the Fluent Design System into all experiences, controls, and styles, WinUI provides consistent, intuitive, and accessible experiences using the latest UI patterns. WinUI 3 is available as part of 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.

If you have already installed the required developer tools, you are ready to Create your first WinUI 3 project.

Cross-platform options

WinUI also serves as the basis for cross-platform technologies that provide great native Windows experiences using a variety of coding languages. .NET MAUI and React Native for Windows harness the power of WinUI on Windows, while also enabling execution on other operating systems. Another cross-platform option, Progressive Web Apps (PWAs), are websites that function like installed, native apps on Windows and other supported platforms, while functioning like regular websites on browsers.

.NET Multi-platform App UI (MAUI) is an open-source, cross-platform framework for building Android, iOS, macOS, and Windows applications that leverage the native UI and services of each platform from a single .NET code base. Because .NET MAUI favors platform native experiences, it uses WinUI 3 and the Windows App SDK so apps get the latest user experience on Windows. This gives your apps access to everything you get with WinUI 3 plus the ability to reach to other platforms.

.NET MAUI for Windows is a great choice if:

  • You want to share as much .NET code as possible across mobile and desktop applications.
  • You want to ship your application beyond Windows to other desktop and mobile targets with native platform experiences.
  • You want to use C# and/or XAML for building cross-platform apps.
  • You're using Blazor for web development and wish to include all or part of that in a mobile or desktop application.

For more information about .NET MAUI, see the following links: