Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The terms upgrade, migrate, port, and modernize describe different activities when you move a Windows desktop app to a newer platform. This page defines each term so you can find the right guidance for your scenario.
Definitions
| Term | Definition | Example |
|---|---|---|
| Upgrade | Move an existing project to a newer version of the same platform without changing the app model or UI framework. | WPF on .NET Framework 4.8 → WPF on .NET 8. The project file format and NuGet dependencies change, but the UI framework remains WPF. |
| Migrate | Move an app from one UI framework or app model to another, typically rewriting portions of the UI layer. | WPF → WinUI 3, or UWP → WinUI 3. Namespaces, controls, and app lifecycle code change significantly. |
| Port | Adapt source code so it compiles and runs on a different runtime or operating system. Porting is often a subset of upgrading or migrating. | Porting a .NET Framework class library to .NET Standard so it can run on .NET 8. |
| Modernize | Add modern platform features to an existing app without changing its UI framework. The app stays on WPF, WinForms, or Win32 and gains new capabilities incrementally. | Adding WinRT APIs, Windows App SDK features, or MSIX packaging to an existing WPF app. |
Tip
You can combine these activities. For example, you might upgrade a WPF app from .NET Framework to .NET 8, then modernize it by adding Windows App SDK features, and later migrate specific views to WinUI 3.
How the terms map to documentation
| What you want to do | Term | Where to start |
|---|---|---|
| Move a WPF or WinForms app from .NET Framework to .NET 8+ | Upgrade | .NET Upgrade Assistant |
| Move a UWP app to Windows App SDK and WinUI 3 | Migrate | Migrate from UWP to the Windows App SDK |
| Rewrite a desktop app's UI in WinUI 3 | Migrate | Migrate WPF app patterns to WinUI 3 |
| Add Windows features to an existing WPF, WinForms, or Win32 app | Modernize | Modernize your desktop apps |
| Make a .NET Framework library available on .NET 8 | Port | .NET porting overview |
| Decide which approach is right for your app | — | Choose your migration path |
See also
Windows developer