Migrowanie z platformy ASP.NET Framework do platformy ASP.NET Core

Aktualizowanie aplikacji z platformy ASP.NET Framework do platformy ASP.NET Core nie jest proste dla większości aplikacji produkcyjnych. Te aplikacje często integrują nowe technologie, gdy stają się one dostępne, i często składają się z wielu dziedziczonych decyzji. Ten przewodnik zawiera praktyczne podejścia i narzędzia do aktualizowania aplikacji ASP.NET Framework do ASP.NET Core przy jak najmniejszych zmianach.

Dlaczego migracja jest trudna

Migracja z platformy ASP.NET Framework do platformy ASP.NET Core obejmuje kilka złożonych wyzwań, które sprawiają, że pełne ponowne zapisywanie jest trudne i ryzykowne dla większości aplikacji produkcyjnych:

Akumulacja długu technicznego

Aplikacje produkcyjne często gromadzą dług techniczny na przestrzeni lat opracowywania:

  • Zależności System.Web — wszechobecne użycie HttpContext i powiązanych typów w całej bazie kodu.
  • Nieaktualne zależności pakietów , które mogą nie mieć nowoczesnych zgodnych odpowiedników.
  • Starsze narzędzia kompilacji i konfiguracje projektowe, które nie są zgodne z nowoczesną platformą .NET.
  • Przestarzałe użycie interfejsu API , które należy zastąpić nowoczesnymi alternatywami.
  • Ostrzeżenia kompilatora i problemy z jakością kodu , które komplikują migrację.

Zagadnienia przekrojowe

Wiele aplikacji ma problemy obejmujące wiele warstw i wymagają starannej koordynacji podczas migracji:

  • Zarządzanie stanem sesji — ASP.NET Framework i ASP.NET Core mają zasadniczo różne interfejsy API sesji i zachowania.
  • Uwierzytelnianie i autoryzacja — różne modele uwierzytelniania i interfejsy API między strukturami.
  • Rejestrowanie i monitorowanie — należy zachować spójne rejestrowanie w obu aplikacjach podczas migracji.
  • Strategie buforowania — buforowanie w pamięci, rozproszonej lub wyjściowej musi być utrzymywane spójnie.
  • Obsługa błędów — ustanawianie spójnych wzorców obsługi błędów w obu aplikacjach.
  • Zarządzanie konfiguracją — zarządzanie ustawieniami , które muszą być współużytkowane lub synchronizowane między aplikacjami.
  • Wstrzykiwanie zależności — migrowanie z różnych kontenerów DI do wbudowanego kontenera ASP.NET Core.

Ogólny wzorzec hosta może pomóc rozwiązać kilka z tych problemów, wprowadzając nowoczesną infrastrukturę platformy .NET do aplikacji platformy ASP.NET Framework. Aby uzyskać szczegółowe informacje, zobacz Host ogólny platformy .NET w programie ASP.NET Framework.

Łańcuchy zależności biblioteki

Biblioteki pomocnicze często mają złożone relacje zależności, które wymagają starannego ustalenia kolejności aktualizacji.

  • Złożoność drzewa zależności - Musisz uaktualnić biblioteki w kolejności post-order przeszukiwania w głąb.
  • Wymagania dotyczące obsługi wielu platform — biblioteki muszą obsługiwać wszystkie wersje platformy wymagane przez aplikację.
  • Zgodność interfejsu API — zapewnianie współdziałania bibliotek z obiem wersjami platformy w okresie migracji.
  • Złożoność testowania — każde uaktualnienie biblioteki wymaga dokładnego testowania w celu zapewnienia zgodności.

Różnice architektury aplikacji

Podstawowe różnice między programem ASP.NET Framework i ASP.NET Core stwarzają dodatkowe wyzwania:

  • Modele hostingu — różne podejścia do zarządzania hostingem aplikacji i cyklem życia
  • Pipelina middleware — przejście z modułów HTTP i programów obsługi do middleware
  • Przetwarzanie żądań — różne modele i konteksty przetwarzania żądań
  • Charakterystyka wydajności — różne wzorce użycia pamięci i profile wydajności

Te wyzwania sprawiają, że migracja przyrostowa jest preferowaną metodą dla większości aplikacji produkcyjnych. Takie podejście umożliwia zespołom stopniowe rozwiązywanie tych problemów przy zachowaniu działającej aplikacji w środowisku produkcyjnym.

Aby uzyskać dokumentację dotyczącą ważnych obszarów, które uległy zmianie, zobacz powiązane tematy dostępne w sekcji Złożone scenariusze migracji — szczegółowe omówienie obszarów.

Zacznij tutaj: wybierz ścieżkę migracji

Aplikację platformy ASP.NET Framework można pomyślnie przenieść do ASP.NET Core. Kluczem jest wybór odpowiedniego podejścia do konkretnej sytuacji.

Wskazówka

Niezależnie od wybranej ścieżki agent modernizacji usługi GitHub aplikacja Copilot może ocenić rozwiązanie, wygenerować plan uaktualnienia i zautomatyzować wiele kroków migracji. Aby uzyskać więcej informacji, zobacz Dowiedz się, jak przeprowadzić uaktualnienie z ASP.NET MVC, Web API i Web Forms do ASP.NET Core.

Szybki przewodnik po decyzjach

Odpowiedz na następujące pytania, aby wybrać swoje podejście:

  1. Jaki jest Twój harmonogram i tolerancja ryzyka?

  2. Jak duża jest aplikacja?

  3. Czy masz złożone zależności?

Migracja przyrostowa

Migracja przyrostowa jest realizacją wzorca Strangler Fig. Najlepiej jest w przypadku większych projektów lub projektów, które muszą nadal pozostawać w środowisku produkcyjnym podczas migracji. Aby rozpocząć stopniową migrację aplikacji, zobacz Wprowadzenie do stopniowej migracji z ASP.NET do ASP.NET Core.

Migracja na miejscu

Migracja w miejscu może działać w przypadku wystarczająco małych aplikacji. Jeśli to możliwe, takie podejście umożliwia szybkie zastąpienie aplikacji. Jednak drobne problemy mogą się nawarstwiać, jeśli zdecydujesz się przeprowadzić migrację na miejscu. Aby uzyskać informacje na temat dostępnych narzędzi migracji, zobacz Jak przejść z ASP.NET MVC, Web API i Web Forms do ASP.NET Core.