
How to Migrate from .NET Framework to Modern .NET
Start a .NET Framework migration by deciding what needs to move and why. A library with a handful of dependencies is a different job from a web application built around System.Web. Map the components, their dependencies and the business tasks they support before choosing a target.
Check what can move
Inventory projects, NuGet packages, Windows-only APIs, scheduled jobs and external integrations. Check whether each dependency supports your target .NET version. Choose a supported release that fits your hosting and maintenance needs. For ASP.NET applications, review how routing, authentication, configuration and session state map to ASP.NET Core.
Prove the approach on a small component
Move a component that is small enough to test but uses a representative dependency. Add regression tests for its behaviour on the existing platform first. Build the new version on staging and compare its outputs. For a large web application, assess whether you can migrate a route or feature at a time while the rest stays available.
Plan deployment and recovery
Test authentication, permissions, logging and data handling with realistic test cases. Decide how the old and new versions will share or migrate data. Take a backup, rehearse deployment and document how to roll back if a release fails. Review Microsoft’s app-specific guidance before attempting a production upgrade.