Udostępnij przez


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 gromadziły dług techniczny na przestrzeni lat rozwoju:

  • 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 projektów, które nie są zgodne z współczesnym .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ę

Problemy 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 i zachowania sesji
  • 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ć spójnie utrzymywane
  • 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 — biblioteki muszą zostać uaktualnione w kolejności wyszukiwania po wyższej kolejności
  • 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 wersją 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 platformą ASP.NET Framework i platformą ASP.NET Core tworzą 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, ponieważ 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, zapoznaj się z powiązanymi tematami dostępnymi w Złożone scenariusze migracji — szczegółowe obszary.

Zacznij tutaj: wybierz ścieżkę migracji

Aplikacja platformy ASP.NET Framework może pomyślnie przejść do ASP.NET Core. Kluczem jest wybór odpowiedniego podejścia do konkretnej sytuacji.

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 to implementacja wzorca Strangler Fig i jest najlepsza w przypadku większych projektów lub projektów, które muszą nadal pozostawać w środowisku produkcyjnym w trakcie migracji. Zobacz Rozpocznij migrację z ASP.NET do ASP.NET Core przyrostowo, aby krok po kroku rozpocząć migrację aplikacji.

Migracja na miejscu

Migracja w miejscu może działać w przypadku wystarczająco małych aplikacji. Jeśli to możliwe, umożliwia to szybkie zastąpienie aplikacji. Jednak małe problemy mogą się nawarstwiać, jeśli zdecydujesz się przeprowadzić migrację na miejscu. Zobacz Dowiedz się, jak przeprowadzić migrację z ASP.NET MVC, interfejsu API sieci Web i formularzy sieci Web do ASP.NET Core aby uzyskać informacje na temat opcji narzędzi migracji.