Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Important
Než začnete: Tento článek předpokládá, že jste si přečetli přehled migrace ASP.NET Core. Pokud jste ho ještě nečetli, začněte tam, abyste porozuměli konceptům, přístupu a výhodám přírůstkové migrace.
Pro velkou migraci doporučujeme nastavit aplikaci ASP.NET Core, která proxy provádí na původní aplikaci .NET Framework. Nová aplikace s povoleným proxy serverem se zobrazuje na následujícím obrázku:
Tento článek obsahuje praktické kroky pro pokračování v přírůstkové migraci po pochopení přístupu.
Prerequisites
Před zahájením přírůstkové migrace se ujistěte, že máte:
- Přečtěte si přehled: Postupná migrace z ASP.NET na ASP.NET Core
- Funkční aplikace ASP.NET Framework , kterou chcete migrovat
- Visual Studio 2022 s nejnovějšími aktualizacemi
- SDK .NET 8 nebo novější je nainstalováno
- Znalost závislostí vaší aplikace a knihoven třetích stran
Přehled kroků migrace
Proces přírůstkové migrace se řídí těmito klíčovými kroky:
- Nastavení základního projektu ASP.NET
- Náprava technického dluhu
- Identifikace a řešení průřezových záležitostí
- Aktualizace podpůrných knihoven
Nastavení základního projektu ASP.NET
Prvním krokem je vytvoření nové aplikace ASP.NET Core, která bude sloužit jako váš proxy server.
Co budete dělat:
- Vytvoření nového projektu ASP.NET Core společně s existující aplikací ASP.NET Framework
- Nakonfigurujte ho na proxy požadavky na vaši původní aplikaci pomocí YARP (ještě jiného reverzního proxy serveru).
- Nastavení základní infrastruktury pro přírůstkovou migraci
Detailed instructions:
- Informace o tom, jak nastavit aplikaci pro přírůstkovou migraci, najdete v tématu Nastavení vzdálené aplikace .
- Informace o upgradu z ASP.NET MVC, webového rozhraní API a webových formulářů na ASP.NET Core najdete v nápovědě k nastavení projektů potřebných pro přírůstkovou migraci pomocí nástrojů sady Visual Studio.
Náprava technického dluhu
Kdy provést tento krok: Před upgradem podpůrných knihoven vyřešte technický dluh, který by mohl komplikovat proces migrace.
Než začnete s upgradem podpůrných knihoven, je důležité vyčistit technický dluh, který by mohl narušit proces migrace. Tento krok by měl být dokončen jako první, aby se zajistila plynulejší zkušenost upgradu.
Aktualizace závislostí balíčku
Zkontrolujte a aktualizujte balíčky NuGet na nejnovější kompatibilní verze:
- Kontrola existujících balíčků: Použijte Správce balíčků NuGet z Visual Studio, protože rozhraní příkazového řádku nefunguje pro aplikace ASP.NET Framework
- Přírůstkové aktualizace balíčků: Aktualizace balíčků postupně, aby nedocházelo k problémům s kompatibilitou
- Testování po každé aktualizaci: Ujistěte se, že vaše aplikace po každé aktualizaci balíčku stále funguje správně.
- Řešení zásadních změn: Některé aktualizace balíčků můžou představovat zásadní změny, které je potřeba vyřešit.
Modernizace nástrojů sestavení
Aktualizujte nástroje sestavení a konfiguraci projektu:
- Nástroje pro aktualizaci: Ujistěte se, že používáte nejnovější verzi nástroje MSBuild/Visual Studio.
-
Migrace na PackageReference pro závislosti: Zvažte migraci z
packages.configformátuPackageReference, pokud jste ještě nebyli v projektu webové aplikace. - Vyčištění nepoužívaných odkazů: Odebrání nepoužívaných odkazů na sestavení nebo balíčků NuGet
- Migrace na soubory projektu ve stylu sady SDK: Převeďte existující soubory projektu do moderního formátu stylu sady SDK. To je nezbytné pro kompatibilitu s moderními projekty .NET a poskytuje lepší podporu nástrojů.
- Aktualizace skriptů sestavení: Kontrola a aktualizace vlastních skriptů sestavení nebo konfigurací CI/CD
Řešení problémů s kvalitou kódu
Oprava známých problémů s kvalitou kódu, které by mohly komplikovat migraci:
- Oprava upozornění kompilátoru: Řešení všech upozornění kompilátoru, zejména těch souvisejících s zastaralými rozhraními API
- Odebrání mrtvého kódu: Vyčištění nepoužívaných tříd, metod a dalších prvků kódu
- Aktualizace zastaralého využití rozhraní API: Pokud je to možné, nahraďte využití zastaralých rozhraní API jejich moderními ekvivalenty.
Díky této přípravné práci bude proces upgradu knihovny mnohem plynulejší a sníží se pravděpodobnost, že během migrace dojde ke složitým problémům.
Identifikace a řešení napříč všemi oblastmi
Kdy provést tento krok: Při nápravě technického dluhu, ale před upgradem podpůrných knihoven, identifikujte a nakonfigurujte průřezové aspekty, které mají dopad na celou vaši aplikaci.
Mezi průřezové aspekty vaší aplikace patří různé vrstvy nebo komponenty, jako je ověřování, správa relací, protokolování a ukládání do mezipaměti. Tyto kroky je potřeba řešit v rané fázi procesu migrace, protože ovlivňují, jak vaše aplikace ASP.NET Framework a ASP.NET Core během přírůstkové migrace komunikují a sdílejí stav.
Následující části se zabývají nejběžnějšími průřezovými problémy. Nakonfigurujte pouze ty, které platí pro vaši aplikaci:
Konfigurace podpory relace
Tuto konfiguraci nakonfigurujte v následujících případech: Aplikace ASP.NET Framework používá stav relace.
Pro pokyny se podívejte do dokumentace o obecné migraci relací.
Session je často používanou funkcí v ASP.NET, která má stejný název jako funkce v ASP.NET Core, ale rozhraní API se výrazně liší. Při upgradu knihoven, které používají stav relace, budete muset nakonfigurovat podporu relací. Podrobné pokyny k povolení sdílení stavu relace mezi aplikacemi najdete v dokumentaci k podpoře vzdálené relace .
Authentication Configuration
Tuto konfiguraci nakonfigurujte v následujících případech: Aplikace ASP.NET Framework používá ověřování a chcete sdílet stav ověřování mezi starými a novými aplikacemi.
Podívejte se na obecnou dokumentaci k migraci ověřování pro pokyny zde.
Ověřování je možné sdílet mezi původní ASP.NET aplikací a novou aplikací ASP.NET Core pomocí funkce vzdáleného ověřování System.Web adapters. Tato funkce umožňuje aplikaci ASP.NET Core odložit ověřování na původní ASP.NET aplikaci. Další podrobnosti najdete v dokumentaci ke vzdálenému ověřování .
Další průřezové aspekty, které je potřeba zvážit
V závislosti na vaší aplikaci možná budete muset řešit také tyto adresy:
- Protokolování: Zajistěte konzistentní protokolování v obou aplikacích. Zvažte použití zprostředkovatele sdíleného protokolování nebo zajištění správné agregace protokolů.
- Ukládání do mezipaměti: Pokud vaše aplikace používá ukládání do mezipaměti (ukládání do paměti, distribuované mezipaměti nebo ukládání výstupu), naplánujte, jak udržovat konzistenci mezipaměti mezi aplikacemi.
- Zpracování chyb: Zajištění konzistentního zpracování chyb a jejich hlášení napříč aplikacemi ASP.NET Framework a ASP.NET Core.
- Správa konfigurace: Naplánujte sdílení nebo správu nastavení konfigurace mezi těmito dvěma aplikacemi.
- Monitorování stavu: Nastavení kontrol stavu a monitorování obou aplikací během procesu migrace
- Injektáž závislostí: Pokud ve vaší aplikaci ASP.NET Framework používáte kontejner DI, naplánujte migraci na integrovaný kontejner DI ASP.NET Core.
Aktualizovat podpůrné knihovny
Kdy provést tento krok: Pouze v případě, že potřebujete migrovat konkrétní trasy, které závisí na knihovnách tříd obsahujících obchodní logiku, budete muset sdílet mezi starými a novými aplikacemi.
Note
Přírůstkový přístup: S procesem přírůstkové migrace nemusíte upgradovat všechny podpůrné knihovny najednou. Je potřeba upgradovat pouze ty knihovny, které jsou vyžadovány pro konkrétní trasy, které právě migrujete. To vám umožní řešit migraci v menších, lépe spravovatelných částech.
Proces upgradu knihovny
Important
Podpůrné knihovny musí být upgradovány v pořadí hloubkového hledání metodou postorder. This means:
- Začínáme se závislostmi typu list: Začněte knihovnami, které nemají žádné závislosti na jiných knihovnách ve vašem řešení.
- Postupujte vzhůru stromem závislostí: Knihovnu upgradujte pouze po dokončení úspěšného upgradu všech jejích závislostí.
- Konec hlavní aplikace: Hlavní aplikace ASP.NET Framework by měla být poslední položkou, kterou chcete upravit.
Toto řazení je nezbytné, protože:
- Zajišťuje, že při upgradu knihovny jsou všechny její závislosti již kompatibilní.
- Zabraňuje problémům s cykly závislostí během procesu upgradu.
- Umožňuje nezávisle testovat každou knihovnu před přechodem na závislé objekty.
POZNÁMKA: Toto řazení stačí provést pouze pro podmnožinu knihoven vyžadovaných trasami, které právě migrujete, ne podle vašeho celého řešení.
Proces upgradu pro každou knihovnu:
Pokud máte ve svém řešení podpůrné knihovny, které budete muset použít pro trasy, které migrujete, měli byste je upgradovat na .NET Standard 2.0, pokud je to možné. Pomocník s upgradem je pro to skvělým nástrojem. Pokud knihovny nemůžou cílit na .NET Standard, můžete cílit na .NET 8 nebo novější společně s cílem rozhraní .NET Framework v původním projektu nebo v novém projektu společně s původním projektem.
Adaptéry System.Web lze v těchto knihovnách použít k tomu, aby umožnily podporu využití v knihovnách tříd. Pokud chcete povolit HttpContext použití v knihovně:
- Odeberte odkaz na
System.Webv souboru projektu - Přidejte balíček
Microsoft.AspNetCore.SystemWebAdapters - Povolte vícesměrové cílení a přidejte cíl .NET 8 nebo novější, nebo projekt převeďte na .NET Standard 2.0.
Tento krok může vyžadovat změnu projektů v závislosti na tom, které trasy migrujete a na struktuře řešení. Pomocník s upgradem vám může pomoct určit, které z nich je potřeba změnit, a automatizovat několik kroků v procesu.
Next Steps
Jakmile dokončíte výše uvedený postup instalace a upgradu knihovny:
- Začněte v malém měřítku: Nejprve začněte migrací jednoduchých bezstavových koncových bodů.
- Důkladně otestujte: Ujistěte se, že každá migrovaná komponenta funguje správně v obou prostředích.
- Monitorování výkonu: Sledujte případné dopady na výkon z nastavení proxy serveru.
- Iterujte: Pokračujte v postupné migraci komponent, dokud migrace nebude dokončena