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.
Aktualizace aplikace z ASP.NET Framework na ASP.NET Core není pro většinu produkčních aplikací triviální. Tyto aplikace často zahrnují nové technologie, jakmile budou dostupné a často se skládají z mnoha starších rozhodnutí. Tato příručka poskytuje praktické přístupy a nástroje pro aktualizaci aplikací ASP.NET Framework na ASP.NET Core s co nejmenšími změnami.
Proč je migrace náročná
Migrace z architektury ASP.NET na ASP.NET Core zahrnuje několik složitých problémů, které ztěžují a riskují kompletní přepsání většiny produkčních aplikací:
Technická akumulace dluhu
Produkční aplikace často kumulovaly technický dluh v průběhu let vývoje:
- Závislosti System.Web – rozsáhlé použití HttpContext a spojených typů v celém rozsahu kódu.
- Zastaralé závislosti balíčků , které nemusí mít moderní kompatibilní ekvivalenty
- Starší nástroje sestavení a konfigurace projektů , které nejsou kompatibilní s moderním .NET
- Zastaralé využití rozhraní API , které je potřeba nahradit moderními alternativami
- Upozornění kompilátoru a problémy s kvalitou kódu , které komplikují migraci
Průřezové otázky
Mnoho aplikací má průřezové záležitosti, které procházejí více vrstvami a vyžadují pečlivou koordinaci během migrace.
- Správa stavu relací – rozhraní ASP.NET Framework a ASP.NET Core mají v podstatě různá rozhraní API a chování relací.
- Ověřování a autorizace – Různé modely ověřování a rozhraní API mezi architekturami
- Protokolování a monitorování – Potřeba udržovat konzistentní protokolování v obou aplikacích během migrace
- Strategie cache – Caching v paměti, distribuované nebo výstupní cache musí být udržovány konzistentně
- Zpracování chyb – Vytvoření konzistentních vzorů zpracování chyb v obou aplikacích
- Správa konfigurace – Správa nastavení, která je potřeba sdílet nebo synchronizovat mezi aplikacemi
- Injektáž závislostí – Migrace z různých kontejnerů DI do integrovaného kontejneru ASP.NET Core
Obecný model hostitele může pomoct vyřešit několik z těchto problémů tím, že moderní infrastrukturu .NET přenese do aplikací ASP.NET Framework. Podrobnosti najdete v tématu Obecné hostitele .NET v ASP.NET Framework.
Řetězy závislostí knihoven
Podpůrné knihovny často mají složité vztahy závislostí, které vyžadují pečlivé uspořádání aktualizací.
- Složitost stromu závislostí – Knihovny musí být upgradovány v pořadí hloubkového hledání.
- Požadavky na cílení na více verzí – Knihovny musí podporovat všechny verze rámce, na které se aplikace zaměřuje.
- Kompatibilita rozhraní API – Zajištění fungování knihoven s oběma verzemi architektury během období migrace
- Složitost testování – Každý upgrade knihovny vyžaduje důkladné testování, aby se zajistila kompatibilita.
Rozdíly v architektuře aplikací
Základní rozdíly mezi architekturou ASP.NET a ASP.NET Core vytvářejí další výzvy:
- Modely hostování – Různé přístupy k hostování aplikací a správě životního cyklu
- Kanál middlewaru – Přechod z modulů HTTP a obslužných rutin do middlewaru
- Zpracování požadavků – různé modely a kontexty zpracování požadavků
- Charakteristiky výkonu – Různé vzorce využití paměti a profily výkonu
Díky těmto problémům je pro většinu produkčních aplikací upřednostňovaným přístupem přírůstková migrace, protože týmům umožňuje tyto problémy řešit postupně a současně udržovat funkční aplikaci v produkčním prostředí.
Dokumentaci týkající se důležitých oblastí, které se změnily, najdete v souvisejících tématech dostupných ve scénářích komplexní migrace – podrobné informace
Začněte tady: Zvolte cestu migrace.
Aplikace ASP.NET Framework se může úspěšně přesunout na ASP.NET Core. Klíčem je volba správného přístupu pro vaši konkrétní situaci.
Průvodce rychlým rozhodováním
Odpovězte na tyto otázky a zvolte svůj přístup:
Jaká je vaše časová osa a míra rizikové tolerance?
- Potřeba zůstat v produkčním prostředí během migrace → přírůstkové migrace
- Může si dovolit kompletní přepsání → místní migrace
Jak velká je vaše aplikace?
- Migrace malých až středních aplikací → Migrace na místě
- Rozsáhlé produkční aplikace → přírůstková migrace je bezpečnější
Máte složité závislosti?
- Neznámé nebo zastaralé závislosti → přírůstková migrace
- Intenzivní využití System.Web → přírůstková migrace
- Minimální závislosti → místní migrace
Přírůstková migrace
Přírůstková migrace je implementace modelu Strangler Fig a je nejvhodnější pro větší projekty nebo projekty, které musí v průběhu migrace pokračovat v produkci. Pokud chcete začít s přírůstkovou migrací aplikace, přečtěte si článek Začínáme s přírůstkovou migrací ASP.NET pro ASP.NET Core .
Místní migrace
Místní migrace může fungovat pro dostatečně malé aplikace. Pokud je to možné, umožňuje to rychlou náhradu aplikace. Pokud se ale rozhodnete provést migraci na místě, malé problémy se mohou zhoršit. Informace o upgradu z ASP.NET MVC, webového rozhraní API a webových formulářů na ASP.NET Core najdete v tématu Informace o tom, jak může Pomocník s upgradem pomoct s místní migrací.