aspnetcore/migration/fx-to-core/index.md
Updating an app from ASP.NET Framework to ASP.NET Core is non-trivial for the majority of production apps. These apps often incorporate new technologies as they become available and are often composed of many legacy decisions. This guide provides practical approaches and tools for updating ASP.NET Framework apps to ASP.NET Core with as little change as possible.
Migrating from ASP.NET Framework to ASP.NET Core involves several complex challenges that make a complete rewrite difficult and risky for most production applications:
Production applications often have accumulated technical debt over years of development:
Many applications have cross-cutting concerns that span multiple layers and need careful coordination during migration:
The generic host pattern can help address several of these concerns by bringing modern .NET infrastructure to ASP.NET Framework applications. For details, see xref:migration/fx-to-core/areas/hosting.
Supporting libraries often have complex dependency relationships that require careful upgrade ordering:
The fundamental differences between ASP.NET Framework and ASP.NET Core create additional challenges:
These challenges make incremental migration the preferred approach for most production applications, as it allows teams to address these issues gradually while maintaining a working application in production.
For documentation around important areas that have changed, see the associated topics available at xref:migration/fx-to-core/areas
Your ASP.NET Framework application can successfully move to ASP.NET Core. The key is choosing the right approach for your specific situation.
Answer these questions to choose your approach:
What's your timeline and risk tolerance?
How large is your application?
Do you have complex dependencies?
Incremental migration is an implementation of the Strangler Fig pattern and is best for larger projects or projects that need to continue to stay in production throughout a migration. See xref:migration/fx-to-core/start to get started migrating an application incrementally.
In place migration can work for sufficiently small applications. If possible, this allows for a quick replacement of the application. However, small issues may be compounded if you decide to do an in place migration. See xref:migration/fx-to-core/tooling for information on migration tooling options.