Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Att uppdatera en app från ASP.NET Framework till ASP.NET Core är inte trivialt för de flesta produktionsappar. Dessa appar innehåller ofta ny teknik när de blir tillgängliga och består ofta av många äldre beslut. Den här guiden innehåller praktiska metoder och verktyg för att uppdatera ASP.NET Framework-appar till ASP.NET Core med så lite förändring som möjligt.
Varför migrering är utmanande
Migrering från ASP.NET Framework till ASP.NET Core innebär flera komplexa utmaningar som gör en fullständig omskrivning svår och riskfylld för de flesta produktionsprogram:
Teknisk skuldackumulering
Produktionstillämpningar har ofta ackumulerat tekniska skulder under flera års utveckling:
- System.Web-beroenden – Den genomgripande användningen av HttpContext och associerade typer i en kodbas.
- Inaktuella paketberoenden som kanske inte har moderna kompatibla motsvarigheter
- Äldre byggverktyg och projektkonfigurationer som inte är kompatibla med moderna .NET
- Inaktuell API-användning som måste ersättas med moderna alternativ
- Kompilatorvarningar och kodkvalitetsproblem som komplicerar migreringen
Cross-Cutting Concerns
Många program har övergripande problem som sträcker sig över flera lager och behöver noggrann samordning under migreringen:
- Hantering av sessionstillstånd – ASP.NET Framework och ASP.NET Core har fundamentalt olika sessions-API:er och beteenden
- Autentisering och auktorisering – Olika autentiseringsmodeller och API:er mellan ramverk
- Loggning och övervakning – Behöver upprätthålla konsekvent loggning i båda programmen under migreringen
- Strategier för cachelagring – Cachelagring i minnet, distribuerad eller utdata måste upprätthållas konsekvent
- Felhantering – Upprätta konsekventa felhanteringsmönster i båda programmen
- Konfigurationshantering – Hantera inställningar som måste delas eller synkroniseras mellan program
- Beroendeinmatning – Migrera från olika DI-containrar till ASP.NET Cores inbyggda container
Beroendekedjor för bibliotek
Stödbibliotek har ofta komplexa beroenderelationer som kräver noggrann uppgraderingsordning:
- Komplexitet i beroendeträd – Bibliotek måste uppgraderas i sökordningen efter ordningens djup först
- Krav för flera mål – Biblioteken måste ha stöd för alla ramverksversioner som appen riktar in sig på.
- API-kompatibilitet – Se till att bibliotek fungerar med båda ramverksversionerna under migreringsperioden
- Testkomplexitet – Varje biblioteksuppgradering kräver noggrann testning för att säkerställa kompatibilitet
Skillnader i programarkitektur
De grundläggande skillnaderna mellan ASP.NET Framework och ASP.NET Core skapar ytterligare utmaningar:
- Värdmodeller – Olika metoder för applikations-hosting och livscykelhantering av applikationer
- Middleware pipeline – Gå över från HTTP-moduler och -hanterare till middleware
- Bearbetning av begäranden – olika modeller och kontexter för bearbetning av begäranden
- Prestandaegenskaper – Olika minnesanvändningsmönster och prestandaprofiler
Dessa utmaningar gör inkrementell migrering till den bästa metoden för de flesta produktionsprogram, eftersom det gör det möjligt för team att hantera dessa problem gradvis samtidigt som ett fungerande program bibehålls i produktion.
Dokumentation om viktiga områden som har ändrats finns i de associerade ämnena som finns i Komplexa migreringsscenarier – Djupdykningsområden
Börja här: Välj din migreringssökväg
Ditt ASP.NET Framework-program kan flyttas till ASP.NET Core. Nyckeln är att välja rätt metod för din specifika situation.
Snabb beslutsguide
Besvara dessa frågor för att välja din metod:
- Vad är din tidslinje och risktolerans? - Behöver stanna kvar i produktionen under migreringen → inkrementell migrering
- Har råd med en fullständig omskrivning → Migrering på plats
 
- Hur stort är ditt program? - Migrering av små till medelstora appar → På plats migrering
- Stora produktionsappar → inkrementell migrering är säkrare
 
- Har du komplexa beroenden? - Okända eller inaktuella beroenden → inkrementell migrering
- Tung användning av System.Web → inkrementell migrering
- Minimala beroenden → Migrering på plats
 
Incremental Migration
Inkrementell migrering är en implementering av Strangler Fig-mönstret och är bäst för större projekt eller projekt som behöver fortsätta att vara i produktion under en migrering. Se Kom igång med inkrementell migration från ASP.NET till ASP.NET Core för att komma igång med stegvis migrering av ett program.
Migrering på plats
På plats kan migreringen fungera för tillräckligt små program. Om möjligt möjliggör detta en snabb ersättning av programmet. Små problem kan dock förvärras om du bestämmer dig för att utföra en migrering på plats. Se Lär dig hur du uppgraderar från ASP.NET MVC, webb-API och webbformulär till ASP.NET Core för att lära dig hur Uppgraderingsassistenten kan hjälpa till med en migrering på plats.
ASP.NET Core