Dela via


Kom igång med en stegvis migrering från ASP.NET till ASP.NET Core.

Important

Innan du börjar: Den här artikeln förutsätter att du har läst översikten över ASP.NET Core-migrering. Om du inte har läst den ännu kan du börja där för att förstå begreppen, metoden och fördelarna med inkrementell migrering.

För en stor migrering rekommenderar vi att du konfigurerar en ASP.NET Core-app som proxyservrar till den ursprungliga .NET Framework-appen. Den nya proxyaktiverade appen visas i följande bild:

börja migrera vägar

Den här artikeln innehåller de praktiska stegen för att fortsätta med en inkrementell migrering när du har förstått metoden.

Prerequisites

Kontrollera att du har följande innan du påbörjar inkrementell migrering:

  1. Läs översikten: Stegvis ASP.NET till ASP.NET Core-migrering
  2. Ett fungerande ASP.NET Framework-program som du vill migrera
  3. Visual Studio 2022 med de senaste uppdateringarna
  4. .NET 8 eller senare SDK installerat
  5. Förstå programmets beroenden och bibliotek från tredje part

Översikt över migreringssteg

Den inkrementella migreringsprocessen följer dessa viktiga steg:

  1. Konfigurera ASP.NET Core Project
  2. Åtgärda teknisk skuld
  3. Identifiera och åtgärda övergripande problem
  4. Uppgradera stödbibliotek

Konfigurera ASP.NET Core Project

Det första steget är att skapa det nya ASP.NET Core-programmet som ska fungera som proxy.

Vad du ska göra:

  • Skapa ett nytt ASP.NET Core-projekt tillsammans med din befintliga ASP.NET Framework-app
  • Konfigurera den till proxybegäranden till ditt ursprungliga program med hjälp av YARP (ännu en omvänd proxy)
  • Konfigurera den grundläggande infrastrukturen för inkrementell migrering

Detailed instructions:

Åtgärda teknisk skuld

När du ska göra det här steget: Innan du uppgraderar eventuella stödbibliotek bör du åtgärda tekniska skulder som kan komplicera migreringsprocessen.

Innan du börjar uppgradera dina stödbibliotek är det viktigt att rensa tekniska skulder som kan störa migreringsprocessen. Det här steget bör slutföras först för att säkerställa en smidigare uppgradering.

Uppdatera paketberoenden

Granska och uppdatera Dina NuGet-paket till de senaste kompatibla versionerna:

  1. Granska befintliga paket: Använd NuGet Package Manager för Visual Studio eftersom dotnet CLI inte fungerar för ASP.NET Framework-program
  2. Uppdatera paket stegvis: Uppdatera paket en i taget för att undvika kompatibilitetsproblem
  3. Test efter varje uppdatering: Kontrollera att programmet fortfarande fungerar korrekt efter varje paketuppdatering
  4. Åtgärda icke-bakåtkompatibla ändringar: Vissa paketuppdateringar kan medföra icke-bakåtkompatibla ändringar som måste åtgärdas

Modernisera byggverktyg

Uppdatera byggverktygen och projektkonfigurationen:

  1. Uppdateringsverktyg: Se till att du använder en ny version av MSBuild/Visual Studio
  2. Migrera till PackageReference för beroenden: Överväg att migrera från packages.config till PackageReference format om du inte redan har gjort det i webbprogramprojektet
  3. Rensa oanvända referenser: Ta bort eventuella oanvända sammansättningsreferenser eller NuGet-paket
  4. Migrera till projektfiler i SDK-format: Konvertera dina befintliga projektfiler till det moderna SDK-formatet. Detta är viktigt för kompatibilitet med moderna .NET-projekt och ger bättre verktygsstöd
  5. Uppdatera byggskript: Granska och uppdatera eventuella anpassade byggskript eller CI/CD-konfigurationer

Åtgärda problem med kodkvalitet

Åtgärda kända kodkvalitetsproblem som kan komplicera migreringen:

  1. Åtgärda kompilatorvarningar: Åtgärda eventuella kompilatorvarningar, särskilt de som rör inaktuella API:er
  2. Ta bort död kod: Rensa oanvända klasser, metoder och andra kodelement
  3. Uppdatera inaktuell API-användning: Ersätt användningen av inaktuella API:er med deras moderna motsvarigheter där det är möjligt

Det här förberedelsearbetet gör biblioteksuppgraderingsprocessen mycket smidigare och minskar sannolikheten för att det uppstår komplexa problem under migreringen.

Identifiera och åtgärda övergripande problem

När du ska göra det här steget: När du åtgärdar tekniska skulder men innan du uppgraderar stödbibliotek kan du identifiera och konfigurera övergripande problem som påverkar hela programmet.

Övergripande problem är aspekter av ditt program som omfattar flera lager eller komponenter, till exempel autentisering, sessionshantering, loggning och cachelagring. Dessa måste åtgärdas tidigt i migreringsprocessen eftersom de påverkar hur dina ASP.NET Framework- och ASP.NET Core-program kommunicerar och delar tillstånd under den inkrementella migreringen.

Följande avsnitt beskriver de vanligaste övergripande problemen. Konfigurera endast de som gäller för ditt program:

Konfiguration av sessionsstöd

Konfigurera detta om: Ditt ASP.NET Framework-program använder sessionstillstånd.

Se den generella dokumentationen om sessionsmigrering för vägledning här.

Session är en vanlig funktion i ASP.NET som delar namnet med en funktion i ASP.NET Core, men API:erna skiljer sig mycket åt. När du uppgraderar bibliotek som använder sessionstillstånd måste du konfigurera sessionsstöd. Mer information om hur du aktiverar delning av sessionstillstånd mellan dina program finns i dokumentationen om stöd för fjärrsessioner .

Authentication Configuration

Konfigurera detta om: Ditt ASP.NET Framework-program använder autentisering och du vill dela autentiseringstillståndet mellan de gamla och nya programmen.

Se dokumentationen om allmän autentiseringsmigrering för vägledning här.

Det är möjligt att dela autentisering mellan den ursprungliga ASP.NET-appen och den nya ASP.NET Core-appen genom att använda fjärrautentiseringsfunktionen hos System.Web-adaptrar. Med den här funktionen kan ASP.NET Core-appen skjuta upp autentiseringen till den ursprungliga ASP.NET-appen. Mer information finns i dokumentationen om fjärrautentisering .

Andra övergripande problem att ta hänsyn till

Beroende på din applikation kan du också behöva åtgärda:

  • Loggning: Säkerställ konsekvent loggning i båda programmen. Överväg att använda en delad loggningsprovider eller se till att loggarna aggregeras korrekt.
  • Cachelagring: Om ditt program använder cachelagring (minnesintern, distribuerad eller utdatacachelagring) planerar du hur du underhåller cachekonsekvens mellan program.
  • Felhantering: Upprätta konsekvent felhantering och rapportering i både ASP.NET Framework- och ASP.NET Core-program.
  • Konfigurationshantering: Planera hur konfigurationsinställningarna ska delas eller hanteras mellan de två programmen.
  • Hälsoövervakning: Konfigurera övervakning och hälsokontroller för båda programmen under migreringsprocessen.
  • Beroendeinmatning: Om du använder en DI-container i din ASP.NET Framework-app planerar du migreringen till ASP.NET Cores inbyggda DI-container.

Uppgradera stödbibliotek

När du ska göra det här steget: Endast när du behöver migrera specifika vägar som är beroende av klassbibliotek som innehåller affärslogik behöver du dela mellan de gamla och nya programmen.

Note

Inkrementell metod: Med den inkrementella migreringsprocessen behöver du inte uppgradera alla dina stödbibliotek samtidigt. Du behöver bara uppgradera de bibliotek som krävs för de specifika rutter du för närvarande migrerar. På så sätt kan du hantera migreringen i mindre, mer hanterbara delar.

Uppgraderingsprocess för bibliotek

Important

Stödbibliotek måste uppgraderas i en sökordning efter beställningens djup. This means:

  1. Börja med bladberoenden: Börja med bibliotek som inte har några beroenden på andra bibliotek i din lösning
  2. Arbeta uppåt genom beroendeträdet: Uppgradera bara ett bibliotek när alla dess beroenden har uppgraderats
  3. Avsluta med huvudprogrammet: Huvudprogrammet ASP.NET Framework ska vara det sista objektet som ska ändras

Den här ordningen är viktig eftersom:

  • Det säkerställer att alla dess beroenden redan är kompatibla när du uppgraderar ett bibliotek
  • Det förhindrar problem med cirkulärt beroende under uppgraderingsprocessen
  • Det gör att du kan testa varje bibliotek separat innan du flyttar till dess beroenden

Obs! Du behöver bara följa den här ordningen för den delmängd av bibliotek som krävs av de rutter du för närvarande migrerar, inte hela lösningen.

Uppgraderingsprocess för varje bibliotek:

Om du har stödbibliotek i din lösning som du behöver använda för de vägar som du migrerar bör de uppgraderas till .NET Standard 2.0, om möjligt. Uppgraderingsassistenten är ett bra verktyg för detta. Om biblioteken inte kan rikta in sig på .NET Standard kan du rikta in dig på .NET 8 eller senare, antingen tillsammans med .NET Framework-målet i det ursprungliga projektet eller i ett nytt projekt tillsammans med originalet.

System.Web-adaptrar kan användas i dessa bibliotek för att möjliggöra stöd för HttpContext användning i klassbibliotek. För att aktivera HttpContext användning i ett bibliotek:

  1. Ta bort referens till System.Web i projektfilen
  2. Microsoft.AspNetCore.SystemWebAdapters Lägg till paketet
  3. Aktivera multi-targeting och lägg till ett .NET 8-mål eller senare, eller konvertera projektet till .NET Standard 2.0.

Det här steget kan kräva att ett antal projekt ändras beroende på din lösningsstruktur och vilka vägar du migrerar. Uppgraderingsassistenten kan hjälpa dig att identifiera vilka som behöver ändras och automatisera ett antal steg i processen.

Next Steps

När du har slutfört installations- och biblioteksuppgraderingsstegen ovan:

  1. Börja i liten skala: Börja med att migrera enkla, tillståndslösa slutpunkter först
  2. Testa noggrant: Se till att varje migrerad komponent fungerar korrekt i båda miljöerna
  3. Övervaka prestanda: Håll utkik efter eventuella prestandaeffekter från proxykonfigurationen
  4. Iterera: Fortsätt migrera komponenter stegvis tills migreringen är klar