Chapter 6. Migration from previous versions of .NET
Upgrade your existing applications to .NET 10.0 to benefit from the latest performance improvements and long-term support. You can migrate from earlier .NET versions or port code from the .NET Framework to modernize your workloads.
6.1. Migration guidance for .NET Copy linkLink copied to clipboard!
Microsoft provides detailed guidance for migrating between different versions of .NET and ASP.NET Core. If you are upgrading from an older .NET version, refer to the official Microsoft documentation for your specific upgrade path.
- Migrate from ASP.NET Core 9.0 to 10.0
- Migrate from ASP.NET Core 8.0 to 9.0
- Migrate from ASP.NET Core 7.0 to 8.0
- Migrate from ASP.NET Core 6.0 to 7.0
- Migrate from ASP.NET Core 5.0 to 6.0
- Migrate from ASP.NET Core 3.1 to 5.0
- Migrate from ASP.NET Core 3.0 to 3.1
- Migrate from ASP.NET Core 2.2 to 3.0
- Migrate from ASP.NET Core 2.1 to 2.2
- Migrate from .NET Core 2.0 to 2.1
- Migrate from ASP.NET to ASP.NET Core
- Migrating .NET Core projects from project.json
- Migrate from project.json to .csproj format
If you are migrating from .NET Core 1.x to 2.0, the initial sections of the Migrate from ASP.NET Core 1.x to 2.0 article provide the relevant guidance.
6.2. Porting from .NET Framework Copy linkLink copied to clipboard!
When migrating an application from .NET Framework, refer to the official Microsoft documentation:
- General guidelines: Porting to .NET Core from .NET Framework
- Porting libraries: Porting to .NET Core - Libraries
- Migrating to ASP.NET Core: Migrating to ASP.NET Core
Some technologies and APIs from .NET Framework are not available in .NET Core or .NET. If your application or library depends on these APIs, you must either find an alternative or remain on .NET Framework.
.NET Core and .NET do not support the following technologies:
- Desktop applications, such as Windows Forms and Windows Presentation Foundation (WPF)
- Windows Communication Foundation (WCF) servers (WCF clients are supported)
- .NET remoting
Additionally, some .NET APIs are specific to Microsoft Windows environments and are not cross-platform. Examples of these Windows-specific APIs include:
-
Microsoft.Win32.Registry -
System.AppDomains -
System.Security.Principal.Windows
Some APIs that are not supported by default in .NET are available in the Microsoft.Windows.Compatibility NuGet package.
Use this package with caution. Many of the APIs it provides, such as Microsoft.Win32.Registry, only work on Windows. Using these APIs makes your application incompatible with Red Hat Enterprise Linux.