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.
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:
               
              
            
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:
- Läs översikten: Stegvis ASP.NET till ASP.NET Core-migrering
- Ett fungerande ASP.NET Framework-program som du vill migrera
- Visual Studio 2022 med de senaste uppdateringarna
- .NET 8 eller senare SDK installerat
- Förstå programmets beroenden och bibliotek från tredje part
Översikt över migreringssteg
Den inkrementella migreringsprocessen följer dessa viktiga steg:
- Konfigurera ASP.NET Core Project
- Åtgärda teknisk skuld
- Identifiera och åtgärda övergripande problem
- 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:
- Se Konfiguration av fjärrapp för att förstå hur du konfigurerar ett program för inkrementell migrering.
- Se Lär dig att uppgradera från ASP.NET MVC, webb-API och webbformulär till ASP.NET Core för hjälp med att konfigurera projekt som krävs för inkrementell migrering med hjälp av Visual Studio-verktyg.
Å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:
- 
              Granska befintliga paket: Använd NuGet Package Manager för Visual Studio eftersom dotnetCLI inte fungerar för ASP.NET Framework-program
- Uppdatera paket stegvis: Uppdatera paket en i taget för att undvika kompatibilitetsproblem
- Test efter varje uppdatering: Kontrollera att programmet fortfarande fungerar korrekt efter varje paketuppdatering
- Å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:
- Uppdateringsverktyg: Se till att du använder en ny version av MSBuild/Visual Studio
- 
              Migrera till PackageReference för beroenden: Överväg att migrera från packages.configtillPackageReferenceformat om du inte redan har gjort det i webbprogramprojektet
- Rensa oanvända referenser: Ta bort eventuella oanvända sammansättningsreferenser eller NuGet-paket
- 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
- 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:
- Åtgärda kompilatorvarningar: Åtgärda eventuella kompilatorvarningar, särskilt de som rör inaktuella API:er
- Ta bort död kod: Rensa oanvända klasser, metoder och andra kodelement
- 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:
- Börja med bladberoenden: Börja med bibliotek som inte har några beroenden på andra bibliotek i din lösning
- Arbeta uppåt genom beroendeträdet: Uppgradera bara ett bibliotek när alla dess beroenden har uppgraderats
- 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:
- Ta bort referens till System.Webi projektfilen
- 
              Microsoft.AspNetCore.SystemWebAdaptersLägg till paketet
- 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:
- Börja i liten skala: Börja med att migrera enkla, tillståndslösa slutpunkter först
- Testa noggrant: Se till att varje migrerad komponent fungerar korrekt i båda miljöerna
- Övervaka prestanda: Håll utkik efter eventuella prestandaeffekter från proxykonfigurationen
- Iterera: Fortsätt migrera komponenter stegvis tills migreringen är klar
ASP.NET Core