Skip to content

Commit a1bbce6

Browse files
Modernize desktop app content refresh
- Rewrites hub/apps/desktop/modernize/index.md as a scenario-first decision guide with a 'choose your path' table. Replaces the old feature-catalog format that listed capabilities without helping developers understand which approach suits their situation. Removes references to XAML Islands/UWP as a primary recommendation; Windows App SDK + WinUI 3 is now the recommended path. - Retires the 6-file 2019 WPF modernize tutorial series (modernize-wpf-tutorial.md + parts 1-5). These targeted .NET Framework 4.7.2 and UWP XAML Islands — both legacy paths. Redirects all 6 files to the updated index page. Co-authored-by: Copilot <[email protected]>
1 parent ccd1acf commit a1bbce6

8 files changed

Lines changed: 69 additions & 1352 deletions

.openpublishing.redirection.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11479,6 +11479,36 @@
1147911479
"source_path": "uwp/files/fast-file-properties.md",
1148011480
"redirect_url": "/windows/apps/develop/files/fast-file-properties",
1148111481
"redirect_document_id": false
11482+
},
11483+
{
11484+
"source_path": "hub/apps/desktop/modernize/modernize-wpf-tutorial.md",
11485+
"redirect_url": "/windows/apps/desktop/modernize/",
11486+
"redirect_document_id": false
11487+
},
11488+
{
11489+
"source_path": "hub/apps/desktop/modernize/modernize-wpf-tutorial-1.md",
11490+
"redirect_url": "/windows/apps/desktop/modernize/",
11491+
"redirect_document_id": false
11492+
},
11493+
{
11494+
"source_path": "hub/apps/desktop/modernize/modernize-wpf-tutorial-2.md",
11495+
"redirect_url": "/windows/apps/desktop/modernize/",
11496+
"redirect_document_id": false
11497+
},
11498+
{
11499+
"source_path": "hub/apps/desktop/modernize/modernize-wpf-tutorial-3.md",
11500+
"redirect_url": "/windows/apps/desktop/modernize/",
11501+
"redirect_document_id": false
11502+
},
11503+
{
11504+
"source_path": "hub/apps/desktop/modernize/modernize-wpf-tutorial-4.md",
11505+
"redirect_url": "/windows/apps/desktop/modernize/",
11506+
"redirect_document_id": false
11507+
},
11508+
{
11509+
"source_path": "hub/apps/desktop/modernize/modernize-wpf-tutorial-5.md",
11510+
"redirect_url": "/windows/apps/desktop/modernize/",
11511+
"redirect_document_id": false
1148211512
}
1148311513
]
1148411514
}
Lines changed: 39 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,70 @@
11
---
2-
description: Add modern XAML user interfaces, create MSIX packages, and incorporate other modern components into your desktop application.
2+
description: Learn how to modernize your existing WPF, Windows Forms, or Win32 desktop app with Windows App SDK features, MSIX packaging, and modern Windows APIs — without a full rewrite.
33
title: Modernize your desktop apps for Windows
4-
ms.topic: article
5-
ms.date: 02/27/2026
4+
ms.topic: overview
5+
ms.date: 04/07/2026
66
ms.localizationpriority: medium
77
---
88

9-
# Modernize your desktop apps
9+
# Modernize your existing desktop apps
1010

11-
Windows 11 offers many features you can use to deliver a modern experience in your desktop apps. Most of these features are available as modular components that you can adopt in your desktop apps at your own pace without having to rewrite your application for a different platform. You can enhance your existing desktop apps by choosing which Windows features to adopt.
11+
You don't need to rewrite your WPF, Windows Forms, or Win32 app to take advantage of modern Windows features. The Windows App SDK and the broader Windows platform offer modular capabilities you can adopt incrementally, at your own pace.
1212

13-
This topic describes the features that you can use in your desktop apps today.
13+
Use the table below to find the right starting point for your situation.
1414

15-
## Apply Windows 11 features
15+
## Choose your modernization path
1616

17-
Windows 11 marks a visual evolution of the Windows operating system, and introduces new features that improve app fundamentals and user experience. Many of these features are enabled by default for apps, but desktop apps may require updates to integrate with some new features. These features include rounded corners of top-level windows, snap layouts, and the updated context menu in File Explorer.
17+
| I want to... | Recommended approach |
18+
|---|---|
19+
| Add modern UI controls (Fluent, rounded corners, dark mode) to my WPF or Win32 app | [Use Windows App SDK controls in a WPF app](ui/visual-layer-in-desktop-apps.md) |
20+
| Use Windows platform features (notifications, sharing, file pickers) in my WPF or WinForms app | [Call Windows Runtime APIs in desktop apps](desktop-to-uwp-enhance.md) |
21+
| Package my app for the Microsoft Store or enterprise deployment | [Package a desktop app with MSIX](/windows/msix/desktop/source-code-overview) |
22+
| Unlock features that require package identity (background tasks, app extensions) | [Grant identity to an unpackaged app](grant-identity-to-nonpackaged-apps-overview.md) |
23+
| Integrate my app with Windows 11 shell features (snap layouts, context menus, taskbar) | [Integrate with Windows 11 features](desktop-to-uwp-extensions.md) |
24+
| Move to a fully modern app with WinUI 3 over time | [Migrate to WinUI 3](../../winui/winui3/create-your-first-winui3-app.md) |
25+
| Add on-device AI capabilities to my desktop app | [Windows AI Foundry](/windows/ai/overview) |
1826

19-
For more information, see [Windows application development - Best practices](../../get-started/best-practices.md).
27+
## What is the Windows App SDK?
2028

21-
## Windows App SDK
29+
The [Windows App SDK](../../windows-app-sdk/index.md) is the recommended way to access modern Windows platform features from any desktop app — WPF, Windows Forms, Win32, or WinUI 3. It provides a consistent, versioned set of APIs that work across Windows 10 and Windows 11, decoupled from the OS release cycle.
2230

23-
The Windows App SDK is a set of new developer components and tools that represent the next evolution in the Windows app development platform. The Windows App SDK provides a unified set of APIs and tools that can be used in a consistent way by any desktop app on Windows 11 and many versions of Windows 10. You can use project templates to create new desktop apps that use the Windows App SDK with a WinUI-based UI, or you can use the Windows App SDK in existing desktop apps.
31+
You can use the Windows App SDK in your existing app without changing your UI framework. Add it as a NuGet package and call its APIs alongside your existing code.
2432

25-
For more information, see [Windows App SDK](../../windows-app-sdk/index.md).
33+
## Add modern UI without a full rewrite
2634

27-
## WinUI 3
35+
You can host [WinUI 3 controls](../../winui/index.md) inside existing WPF or Win32 app windows using the Windows App SDK. This lets you modernize your UI incrementally — one window or dialog at a time — without migrating the entire app.
2836

29-
WinUI is a native user experience framework for both Windows desktop and UWP applications. WinUI started as a toolkit that provided new and updated versions of WinRT XAML controls for UWP apps that target down-level versions of Windows. The latest version, WinUI, has grown in scope and is now the modern native UI platform for Windows desktop apps.
37+
For guidance on visual layer integration, see [Modernize your desktop app using the Visual layer](ui/visual-layer-in-desktop-apps.md).
3038

31-
You can use WinUI in the following ways in desktop apps:
39+
## Call Windows Runtime APIs
3240

33-
* Use [WinUI](../../winui/index.md) to create desktop apps (see [Create your first WinUI project](../../winui/winui3/create-your-first-winui3-app.md)) with an entirely WinUI-based user interface. WinUI is one of many features provided by the [Windows App SDK](../../windows-app-sdk/index.md).
34-
* You can update existing WPF, Windows Forms, and C++ desktop (Win32) apps with [XAML Islands](xaml-islands/xaml-islands.md) and host WinUI for UWP controls.
41+
Many Windows platform features — push notifications, the share contract, file pickers, Bluetooth, and more — are exposed through Windows Runtime (WinRT) APIs. You can call these APIs directly from WPF, Windows Forms, and C++ Win32 apps.
3542

36-
For more information, see [WinUI](../../winui/index.md).
43+
For more information, see [Call Windows Runtime APIs in desktop apps](desktop-to-uwp-enhance.md).
3744

38-
## Windows Runtime APIs
45+
## Package with MSIX
3946

40-
You can call many Windows Runtime APIs directly in your WPF, Windows Forms, or C++ desktop app to integrate modern experiences that light up for users. For example, you can call Windows Runtime APIs to add toast notifications to your desktop app.
41-
42-
For more information, see [Use Windows Runtime APIs in desktop apps](desktop-to-uwp-enhance.md).
43-
44-
## MSIX deployment
45-
46-
MSIX is a modern Windows app package format that provides a universal packaging experience for all Windows apps, including UWP, WPF, Windows Forms and Win32 apps. MSIX brings together the best aspects of MSI, .appx, App-V and ClickOnce installation technologies to provide a modern and reliable packaging experience.
47-
48-
Packaging your desktop Windows apps in MSIX packages gets you access to a robust installation and updating experience, a managed security model with a flexible capability system, support for the Microsoft Store, enterprise management, and many custom distribution models.
47+
Packaging your app with MSIX gives you a modern, reliable installation experience, clean uninstall, automatic updates, and access to the Microsoft Store and enterprise deployment pipelines. MSIX packaging is separate from modernizing your app's code — you can package a WPF or Win32 app with MSIX without changing any source code.
4948

5049
For more information, see [Building an MSIX package from your code](/windows/msix/desktop/source-code-overview).
5150

52-
## Use MSIX framework packages dynamically at run time
53-
54-
The *dynamic dependencies* feature in the Windows App SDK and in the Windows 11 OS enables your apps to reference MSIX framework packages at run time. This feature is intended to be used primarily by unpackaged desktop apps to call APIs that are provided by MSIX framework packages.
55-
56-
For more information, see [Use MSIX framework packages dynamically from your desktop app](framework-packages/index.md).
57-
58-
## .NET
59-
60-
.NET (previously known as .NET Core) supports Windows desktop apps, including WinUI apps created with the Windows App SDK (see [Create your first WinUI project](../../winui/winui3/create-your-first-winui3-app.md)). .NET also supports [Windows Presentation Foundation (WPF)](/dotnet/desktop/wpf/) and [Windows Forms (WinForms)](/dotnet/desktop/winforms/) apps. You can run new and existing Windows desktop apps on .NET, and enjoy all the benefits that .NET has to offer.
61-
62-
For more information, see [What's new in .NET 10](/dotnet/core/whats-new/dotnet-10/overview).
63-
64-
## Host WinUI XAML controls (XAML Islands)
65-
66-
You can add [WinUI XAML controls](/windows/uwp/design/controls-and-patterns/controls-by-function) directly to any UI element in a WPF, Windows Forms, or C++ desktop app that is associated with a window handle (HWND). This means that you can fully integrate the latest WinUI features and controls that support the [Fluent Design System](../../design/index.md) into windows and other display surfaces in your desktop apps. This developer scenario is sometimes called *XAML islands*.
67-
68-
For more information, see [Modernize your desktop app using the Visual layer](ui/visual-layer-in-desktop-apps.md).
69-
70-
## Additional features available to apps with package identity
51+
## Features that require package identity
7152

72-
Some modern Windows experiences are available only to desktop apps that have [package identity](/uwp/schemas/appxpackage/uapmanifestschema/element-identity) at runtime. These features include certain Windows Runtime APIs, package extensions, and UWP components. For more info, see [Features that require package identity](modernize-packaged-apps.md).
53+
Some Windows platform features — including certain background tasks, app extensions, and sharing targets — require your app to have a [package identity](/uwp/schemas/appxpackage/uapmanifestschema/element-identity) at runtime. You can grant identity to an unpackaged app without full MSIX packaging.
7354

74-
## Other technologies for modern desktop apps
55+
For more information, see:
56+
- [Package identity overview](package-identity-overview.md)
57+
- [Grant identity to a non-packaged app](grant-identity-to-nonpackaged-apps-overview.md)
58+
- [Features that require package identity](modernize-packaged-apps.md)
7559

76-
### Microsoft Graph
60+
## Integrate with Windows 11 shell features
7761

78-
Microsoft Graph is a collection of APIs you can use to build apps for organizations and consumers that interact with the data of millions of users. Microsoft Graph exposes REST APIs and client libraries to access data on the following:
79-
* Azure Active Directory
80-
* Microsoft 365 Office apps: SharePoint, OneDrive, Outlook/Exchange, Microsoft Teams, OneNote, Planner, and Excel
81-
* Enterprise Mobility and Security services: Identity Manager, Intune, Advanced Threat Analytics, and Advanced Threat Protection.
82-
* Windows services: activities and devices
62+
Windows 11 introduces new shell integration points — snap layouts, updated context menus, rounded window corners, and taskbar integration. Many of these are available to unpackaged desktop apps with no code changes. Others require packaging extensions.
8363

84-
For more information, see the [Microsoft Graph docs](/graph/overview).
64+
For more information, see [Integrate your desktop app with Windows using packaging extensions](desktop-to-uwp-extensions.md).
8565

86-
### Adaptive Cards
66+
## Migrate to WinUI 3
8767

88-
Adaptive Cards is an open, cross-platform framework that you can use to exchange card-based UI content in a common and consistent way across devices and platforms.
68+
If you're planning a larger modernization effort — or building new features as separate modules — consider building new components with [WinUI 3](../../winui/index.md) and the Windows App SDK. WinUI 3 is the modern native UI framework for Windows desktop apps and is the recommended path for new development.
8969

90-
For more information, see the [Adaptive Cards docs](/adaptive-cards/).
70+
See [Create your first WinUI 3 app](../../winui/winui3/create-your-first-winui3-app.md) to get started.

0 commit comments

Comments
 (0)