Jak dodać aranżację do istniejącej aplikacji .NET

Ukończone

Program .NET Aspire można podzielić na rozwiązania tych trzech problemów, które napotykają nowoczesne aplikacje natywne dla chmury:

  1. Zarządzanie złożonością aranżacji między mikrousługami.
  2. Upraszczanie korzystania z integracji mikrousług za pośrednictwem pakietów NuGet.
  3. 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 integracją i usługami.

Diagram przedstawiający relację między projektem .NET Aspire AppHost a innymi usługami w aplikacji.

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 Dockera zawierający Redis.
  • ExecutableResource: 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 parametrami połączenia: host aplikacji zarządza wstrzyknięciem odpowiednich parametrów połączenia i informacji o odnajdowaniu usługi, 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.

Zrzut ekranu przedstawiający menu Dodaj z wyróżnioną opcją Obsługa .NET Aspire Orchestrator.

Pierwsze dodanie orkiestracji do rozwiązania spowoduje wyświetlenie okna dialogowego z pytaniem o prefiks nazwy projektu. Wyjaśni ono również, że dodawane są 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, czy chcesz zarejestrować się w orkiestracji platformy .NET Aspire.

Zrzut ekranu przedstawiający nowy przepływ pracy projektu z wyróżnioną opcją Zapisz się do Aspire w orkiestracji.

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 orkiestracji 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 orkiestrację do projektu aplikacji internetowej, .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.