Dela via


Migrera från ASP.NET Framework till ASP.NET Core

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:

  1. Vad är din tidslinje och risktolerans?

  2. Hur stort är ditt program?

  3. Har du komplexa beroenden?

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.