Jak dodać aranżację do istniejącej aplikacji .NET
Program .NET Aspire można podzielić na rozwiązania trzech problemów, które napotykają nowoczesne aplikacje natywne dla chmury. Są to:
- Zarządzanie złożonością aranżacji między mikrousługami.
- Uproszczenie sposobu używania składników przez mikrousługi za pomocą pakietów NuGet.
- Obsługa szybkości deweloperów dzięki narzędziom i szablonom.
W tej lekcji dowiesz się, jak korzystanie z orkiestracji platformy .NET Aspire przynosi korzyści istniejącym aplikacjom natywnym dla chmury. Następnie zobacz, jak zarejestrować aplikację w orkiestracji platformy .NET Aspire i sprawdzić zmiany wprowadzone w rozwiązaniu.
Zalety orkiestracji platformy .NET Aspire
Orkiestracja to koordynacja i zarządzanie różnymi usługami w aplikacji natywnej dla chmury. Platforma .NET Aspire udostępnia abstrakcje do zarządzania odnajdywaniem usług rozwiązania, zmiennymi środowiskowymi i konfiguracjami kontenerów. Te abstrakcje zapewniają również spójne wzorce konfiguracji w aplikacjach z wieloma składnikami i usługami.
Platforma .NET Aspire ma trzy podstawowe typy obliczeniowe obsługiwane przez orkiestrację:
- ProjectResource: projekt platformy .NET, taki jak aplikacje internetowe platformy ASP.NET Core.
- ContainerResource: obraz kontenera, taki jak obraz platformy Docker zawierający usługę Redis.
- Plik wykonywalnyResource: plik wykonywalny.
Porównaj platformę .NET Aspire z sposobem zarządzania odnajdywaniem usług przy użyciu narzędzia Docker Compose. Docker Compose jest doskonały, ale zaczyna stać się nieprodukcyjny, gdy wszystko, co musisz zrobić, to uruchomić kilka projektów lub plików wykonywalnych. Musisz utworzyć obrazy kontenerów, utworzyć kod YAML, aby je połączyć, a następnie uruchomić aplikacje wewnątrz kontenerów. Ponadto istnieją zamiany zmiennych środowiskowych (i zawiera) oraz brak funkcji IntelliSense i trudno jest określić, co dokładnie działa i dlaczego. Debugowanie może być również trudne.
Konfiguracja za pomocą kodu deklaratywnego jest lepsza. Korzystając z platformy .NET Aspire, nie musisz uczyć się czegoś poza tym, co już wiesz. .NET Aspire to lepsze środowisko, które ułatwia rozpoczęcie pracy i skalowanie w górę do orkiestratora, takiego jak Docker Compose, przy użyciu prawdziwego języka programowania.
Orkiestracja platformy .NET Aspire obsługuje również programowanie w następujący sposób:
- Kompozycja aplikacji: platforma .NET Aspire określa projekty platformy .NET, kontenery, pliki wykonywalne i zasoby w chmurze, które tworzą aplikację.
- Odnajdywanie usług i zarządzanie parametry połączenia: host aplikacji zarządza wprowadzaniem odpowiednich parametry połączenia i informacji o odnajdowaniu usług, aby uprościć środowisko deweloperskie.
Rejestrowanie istniejącej aplikacji w orkiestracji platformy .NET Aspire
Program Visual Studio udostępnia menu umożliwiające rejestrowanie istniejącego projektu w orkiestracji platformy .NET Aspire.
Podczas pierwszego dodawania aranżacji do rozwiązania zostanie wyświetlone okno dialogowe z pytaniem o prefiks nazwy projektu i wyjaśniono, że są dodawane projekty .NET Aspire AppHost i ServiceDefaults . Po dodaniu większej liczby projektów do już zaaranżowanych rozwiązań zostanie wyświetlone okno dialogowe z powiadomieniem, że projekt AppHost zostanie zaktualizowany w celu uwzględnienia tych projektów.
Jeśli tworzysz nowy projekt, podczas przepływu pracy nowego projektu program Visual Studio pyta, czy chcesz zarejestrować się w orkiestracji platformy .NET Aspire.
Zmiany, które aspirują do istniejącego rozwiązania
Po dodaniu orkiestracji platformy .NET Aspire do rozwiązania zostaną wprowadzone następujące zmiany:
- Dodawany jest projekt AppHost . Projekt zawiera kod orkiestracji. Staje się punktem wejścia dla aplikacji i jest odpowiedzialny za uruchamianie i zatrzymywanie aplikacji. Zarządza również odnajdywaniem usług i zarządzaniem parametry połączenia.
- Zostanie dodany projekt ServiceDefaults . Projekt konfiguruje bibliotekę OpenTelemetry, dodaje domyślne punkty końcowe sprawdzania kondycji i włącza odnajdywanie usługi za pomocą polecenia
HttpClient
. - Domyślny projekt startowy rozwiązania został zmieniony na AppHost.
- Zależności od projektów zarejestrowanych w aranżacji są dodawane do projektu AppHost .
- Pulpit nawigacyjny aspirujący platformy .NET jest dodawany do rozwiązania, co umożliwia skróty dostępu do wszystkich punktów końcowych projektu w rozwiązaniu.
- Pulpit nawigacyjny dodaje dzienniki, ślady i metryki dla projektów w rozwiązaniu.
Jeśli dodasz aranżację do projektu aplikacji internetowej, platforma .NET Aspire automatycznie doda odwołanie do projektu ServiceDefaults . Następnie wprowadza następujące zmiany w kodzie w Program.cs:
- Dodaje wywołanie, które
AddServiceDefaults
umożliwia domyślne odnajdywanie openTelemetrii, mierników i usług. - Dodaje wywołanie, które
MapDefaultEndpoints
włącza domyślne punkty końcowe, takie jak/health
i/alive
.