Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Important
Przed rozpoczęciem: w tym artykule założono, że zapoznasz się z omówieniem migracji ASP.NET Core. Jeśli jeszcze go nie znasz, zacznij tam zrozumieć pojęcia, podejście i korzyści wynikające z migracji przyrostowej.
W przypadku dużej migracji zalecamy skonfigurowanie aplikacji ASP.NET Core, która jest serwerem proxy oryginalnej aplikacji .NET Framework. Nowa aplikacja z obsługą serwera proxy jest pokazana na poniższej ilustracji:
Ten artykuł zawiera praktyczne kroki umożliwiające kontynuowanie migracji przyrostowej po zrozumieniu podejścia.
Prerequisites
Przed rozpoczęciem migracji przyrostowej upewnij się, że masz:
- Zapoznaj się z omówieniem: migracja przyrostowa ASP.NET do ASP.NET Core
- Działająca aplikacja platformy ASP.NET Framework , którą chcesz migrować
- Program Visual Studio 2022 z najnowszymi aktualizacjami
- Zainstalowany zestaw .NET 8 lub nowszy zestaw SDK
- Zrozumienie zależności Twojej aplikacji i bibliotek zewnętrznych
Omówienie kroków migracji
Proces migracji przyrostowej jest zgodny z następującymi kluczowymi krokami:
- Konfigurowanie projektu podstawowego ASP.NET
- Korygowanie długu technicznego
- Identyfikowanie i rozwiązywanie przekrojowych zagadnień
- Uaktualnianie bibliotek pomocniczych
Konfigurowanie projektu podstawowego ASP.NET
Pierwszym krokiem jest utworzenie nowej aplikacji ASP.NET Core, która będzie służyć jako serwer proxy.
Co zrobisz:
- Tworzenie nowego projektu ASP.NET Core obok istniejącej aplikacji platformy ASP.NET Framework
- Skonfiguruj go do obsługi żądań przekazywanych do oryginalnej aplikacji przy użyciu YARP (kolejny zwrotny serwer proxy).
- Konfigurowanie podstawowej infrastruktury na potrzeby migracji przyrostowej
Szczegółowe instrukcje:
- Zobacz Konfiguracja aplikacji zdalnej , aby dowiedzieć się, jak skonfigurować aplikację na potrzeby migracji przyrostowej.
- Aby uzyskać pomoc dotyczącą konfigurowania projektów wymaganych do migracji przyrostowej przy użyciu narzędzi programu Visual Studio, zobacz Dowiedz się, jak uaktualnić z ASP.NET MVC, Web API i Web Forms do ASP.NET Core.
Korygowanie długu technicznego
Kiedy należy wykonać ten krok: Przed uaktualnieniem wszelkich bibliotek pomocniczych, najpierw zaradź długowi technicznemu, który może skomplikować proces migracji.
Przed rozpoczęciem uaktualniania bibliotek pomocniczych ważne jest, aby oczyścić dług techniczny, który może zakłócać proces migracji. Ten krok należy wykonać najpierw, aby zapewnić bardziej płynny proces uaktualniania.
Aktualizacja zależności pakietu
Przejrzyj i zaktualizuj pakiety NuGet do najnowszych zgodnych wersji:
-
Przeprowadź inspekcję istniejących pakietów: Użyj Menedżera pakietów NuGet programu Visual Studio, ponieważ
dotnetinterfejs wiersza polecenia nie działa w przypadku aplikacji platformy ASP.NET - Przyrostowe aktualizowanie pakietów: aktualizuj pakiety pojedynczo, aby uniknąć problemów ze zgodnością
- Testowanie po każdej aktualizacji: upewnij się, że aplikacja nadal działa prawidłowo po każdej aktualizacji pakietu
- Rozwiązywanie problemów z zmianami powodujących niezgodność: niektóre aktualizacje pakietów mogą wprowadzać zmiany powodujące niezgodność, które należy rozwiązać
Modernizowanie narzędzi kompilacji
Zaktualizuj narzędzia kompilacji i konfigurację projektu:
- Narzędzia aktualizacji: upewnij się, że używasz najnowszej wersji programu MSBuild/Visual Studio
-
Migrowanie do elementu PackageReference dla zależności: rozważ migrację z
packages.configdoPackageReferenceformatu, jeśli jeszcze tego nie zrobiłeś w projekcie aplikacji internetowej. - Wyczyść nieużywane odwołania: Usuń wszystkie nieużywane odwołania do referencji zestawów lub pakietów NuGet
- Przeprowadź migrację do plików projektu w stylu zestawu SDK: przekonwertuj istniejące pliki projektu na nowoczesny format w stylu zestawu SDK. Jest to niezbędne do zapewnienia zgodności z nowoczesnymi projektami platformy .NET i zapewnia lepszą obsługę narzędzi
- Aktualizowanie skryptów kompilacji: przegląd i aktualizacja niestandardowych skryptów kompilacji lub konfiguracji CI/CD
Rozwiązywanie problemów z jakością kodu
Rozwiąż znane problemy z jakością kodu, które mogą komplikować migrację:
- Naprawianie ostrzeżeń kompilatora: rozwiąż wszystkie ostrzeżenia kompilatora, zwłaszcza te związane z przestarzałymi interfejsami API
- Usuwanie martwego kodu: Czyszczenie nieużywanych klas, metod i innych elementów kodu
- Zaktualizuj użycie przestarzałych interfejsów API: zastąp użycie przestarzałych interfejsów API ich nowoczesnymi odpowiednikami, jeśli to możliwe
Ta praca przygotowania sprawi, że proces uaktualniania biblioteki będzie znacznie łagodniejszy i zmniejszy prawdopodobieństwo wystąpienia złożonych problemów podczas migracji.
Identyfikowanie i rozwiązywanie zagadnień przekrojowych
Kiedy należy wykonać ten krok: Podczas korygowania długu technicznego, ale przed uaktualnieniem bibliotek pomocniczych zidentyfikuj i skonfiguruj obawy dotyczące krzyżowego wpływu na całą aplikację.
Przekrojowe zagadnienia to aspekty aplikacji, które obejmują wiele warstw lub składników, takie jak uwierzytelnianie, zarządzanie sesjami, logowanie i buforowanie. Należy rozwiązać te problemy na początku procesu migracji, ponieważ wpływają na sposób komunikacji aplikacji ASP.NET Framework i ASP.NET Core oraz udostępniania stanu podczas migracji przyrostowej.
W poniższych sekcjach opisano najczęstsze przekrojowe zagadnienia. Skonfiguruj tylko te, które mają zastosowanie do aplikacji:
Konfiguracja obsługi sesji
Skonfiguruj to, jeśli: Aplikacja ASP.NET Framework używa stanu sesji.
Zapoznaj się z ogólną dokumentacją migracji sesji, aby uzyskać wskazówki.
Funkcja Sesji jest często używaną funkcjonalnością w ASP.NET, która dzieli nazwę z podobną funkcją w ASP.NET Core, ale interfejsy API działają inaczej. Podczas uaktualniania bibliotek korzystających ze stanu sesji należy skonfigurować obsługę sesji. Zapoznaj się z dokumentacją dotyczącą obsługi sesji zdalnej , aby uzyskać szczegółowe wskazówki dotyczące włączania udostępniania stanu sesji między aplikacjami.
Konfiguracja uwierzytelniania
Skonfiguruj to, jeśli: Aplikacja platformy ASP.NET Framework używa uwierzytelniania i chcesz udostępnić stan uwierzytelniania między starymi i nowymi aplikacjami.
Aby uzyskać wskazówki, zapoznaj się z ogólną dokumentacją dotyczącą migracji uwierzytelniania.
Istnieje możliwość udostępniania uwierzytelniania między oryginalną aplikacją ASP.NET a nową aplikacją ASP.NET Core, korzystając z funkcji zdalnego uwierzytelniania adapterów System.Web. Ta funkcja umożliwia aplikacji ASP.NET Core odroczenie uwierzytelniania w oryginalnej aplikacji ASP.NET. Aby uzyskać więcej informacji, zobacz dokumentację dotyczącą uwierzytelniania zdalnego .
Inne zagadnienia przekrojowe, które należy wziąć pod uwagę
W zależności od aplikacji może być również konieczne rozwiązanie problemu:
- Rejestrowanie: upewnij się, że rejestrowanie jest spójne w obu aplikacjach. Rozważ użycie wspólnego dostawcy usługi rejestrowania lub upewnienie się, że dzienniki są prawidłowo agregowane.
- Buforowanie: jeśli aplikacja używa buforowania (w pamięci, rozproszonej lub wyjściowej), zaplanuj zachowanie spójności pamięci podręcznej między aplikacjami.
- Obsługa błędów: ustanów spójną obsługę błędów i raportowanie zarówno w ramach platformy ASP.NET, jak i aplikacji ASP.NET Core.
- Zarządzanie konfiguracją: zaplanuj udostępnianie ustawień konfiguracji lub zarządzanie nimi między dwiema aplikacjami.
- Monitorowanie kondycji: skonfiguruj monitorowanie i sprawdzanie kondycji obu aplikacji podczas procesu migracji.
- Wstrzykiwanie zależności: jeśli korzystasz z kontenera DI w aplikacji platformy ASP.NET Framework, zaplanuj migrację do wbudowanego kontenera DI platformy ASP.NET Core.
Uaktualnianie bibliotek pomocniczych
Kiedy należy wykonać ten krok: Tylko wtedy, gdy musisz przeprowadzić migrację określonych tras, które zależą od bibliotek klas zawierających logikę biznesową, musisz udostępnić je między starymi i nowymi aplikacjami.
Note
Podejście przyrostowe: w przypadku procesu migracji przyrostowej nie trzeba jednocześnie uaktualniać wszystkich bibliotek pomocniczych. Wystarczy zaktualizować biblioteki niezbędne do wybranych tras, które aktualnie migrujesz. Dzięki temu można rozwiązać problem z migracją w mniejszych, bardziej zarządzanych elementach.
Proces uaktualniania biblioteki
Important
Biblioteki pomocnicze muszą zostać uaktualnione w kolejności wyszukiwania po wyższej kolejności. Oznacza to:
- Zacznij od zależności liści: zacznij od bibliotek, które nie mają zależności od innych bibliotek w rozwiązaniu
- Praca w górę przez drzewo zależności: uaktualnij bibliotekę tylko po pomyślnym uaktualnieniu wszystkich jej zależności
- Koniec z główną aplikacją: główna aplikacja ASP.NET Framework powinna być ostatnim elementem, który ma zostać zmodyfikowany
Takie porządkowanie jest niezbędne, ponieważ:
- Gwarantuje to, że podczas uaktualniania biblioteki wszystkie jej zależności są już zgodne
- Zapobiega to problemom z zależnościami cyklicznymi podczas procesu uaktualniania
- Umożliwia testowanie każdej biblioteki niezależnie przed przejściem do jej zależności
UWAGA: Musisz tylko przestrzegać tego porządku dla podzbioru bibliotek wymaganych przez trasy, które obecnie migrujesz, a nie dla całego rozwiązania.
Proces uaktualniania dla każdej biblioteki:
Jeśli masz biblioteki pomocnicze w rozwiązaniu, które należy użyć na potrzeby migrowanych tras, należy je uaktualnić do platformy .NET Standard 2.0, jeśli to możliwe. Modernizacja aplikacji GitHub Copilot może ci pomóc. Jeśli biblioteki nie mogą być przeznaczone dla platformy .NET Standard, możesz wybrać platformę .NET 8 lub nowszą wraz z obiektem docelowym programu .NET Framework w oryginalnym projekcie lub w nowym projekcie wraz z oryginałem.
Adaptery System.Web mogą być używane w tych bibliotekach, aby umożliwić obsługę HttpContext użycia w bibliotekach klasowych. Aby włączyć HttpContext użycie w bibliotece:
- Usuń odwołanie do
System.Webelementu w pliku projektu -
Microsoft.AspNetCore.SystemWebAdaptersDodawanie pakietu - Włącz wielocelowość i dodaj wersję docelową .NET 8 lub nowszą albo przekonwertuj projekt na platformę .NET Standard 2.0.
Ten krok może wymagać zmiany wielu projektów oprogramowania w zależności od struktury rozwiązania i konfiguracji tras, które migrujesz. Modernizacja aplikacji GitHub Copilot może pomóc w zidentyfikowaniu, które z nich należy zmienić i zautomatyzować szereg kroków w procesie.
Dalsze kroki
Po wykonaniu powyższych kroków instalacji i uaktualniania biblioteki:
- Rozpocznij od małego: najpierw rozpocznij od migracji prostych, bezstanowych punktów końcowych
- Dokładnie przetestuj: Upewnij się, że każdy zmigrowany składnik działa prawidłowo w obu środowiskach
- Monitorowanie wydajności: obserwuj wpływ na wydajność konfiguracji serwera proxy
- Iterowanie: kontynuuj migrację składników przyrostowo do momentu zakończenia migracji
ASP.NET Core