Добавление оркестрации в существующее приложение .NET

Завершено

.NET Aspire можно разбить на решения для трех проблем, которые сталкиваются с современными облачными приложениями. К ним относятся:

  1. Управление сложностью оркестрации между микрослужбами.
  2. Упрощение использования компонентов микрослужб с помощью пакетов NuGet.
  3. Поддержка скорости разработчика с помощью инструментов и шаблонов.

В этом уроке вы узнаете, как использование оркестрации .NET Aspire дает преимущества существующим облачным приложениям. Затем узнайте, как зарегистрировать приложение в оркестрации .NET Aspire и проверить изменения, внесенные в решение.

Преимущества оркестрации .NET Aspire

Оркестрация — это координация и управление различными службами в облачном приложении. .NET Aspire предоставляет абстракции для управления обнаружением служб решения, переменными среды и конфигурациями контейнеров. Эти абстракции также предоставляют согласованные шаблоны установки в приложениях с множеством компонентов и служб.

Схема, показывающая связь между проектом .NET Aspire AppHost и другими службами в приложении.

.NET Aspire имеет три базовых типа вычислений, которые поддерживаются с оркестрацией:

  • ProjectResource: проект .NET, например веб-приложения ASP.NET Core.
  • ContainerResource: образ контейнера, например образ Docker, содержащий Redis.
  • Исполняемый файлResource: исполняемый файл.

Сравните .NET Aspire с тем, как управлять обнаружением служб с помощью Docker Compose. Docker Compose отлично, но начинает становиться непродуктивным, когда все, что вам нужно сделать, — выполнение нескольких проектов или исполняемых файлов. Необходимо создать образы контейнеров, создать YAML для их подключения, а затем запустить приложения внутри контейнеров. Кроме того, существуют замены переменных среды (и включается) и нет IntelliSense, и трудно определить, что именно выполняется и почему. Отладка также может быть сложной.

Конфигурация с помощью декларативного кода лучше. Используя .NET Aspire, вам не нужно учиться ничего, кроме того, что вы уже знаете. .NET Aspire — это лучший интерфейс, который легко приступить к работе и масштабируется до оркестратора, например Docker Compose с помощью реального языка программирования.

Оркестрация .NET Aspire также поддерживает разработку следующими способами:

  • Композиция приложения: .NET Aspire указывает проекты .NET, контейнеры, исполняемые файлы и облачные ресурсы, составляющие приложение.
  • Обнаружение служб и управление строка подключения. Узел приложения управляет внедрением правильных строка подключения и сведений об обнаружении служб, чтобы упростить работу разработчика.

Перечисление существующего приложения в оркестрации .NET Aspire

Visual Studio предоставляет меню для включения существующего проекта в оркестрацию .NET Aspire.

Снимок экрана: меню

При первом добавлении оркестрации в решение диалоговое окно запрашивает префикс имени проекта и объясняет, что проекты .NET Aspire AppHost и ServiceDefaults добавляются. При добавлении дополнительных проектов в уже оркестрованное решение диалоговое окно уведомляет вас о том, что проект AppHost обновляется, чтобы включить эти проекты.

Если вы создаете новый проект, во время нового рабочего процесса проекта Visual Studio спрашивает, хотите ли вы включить в оркестрацию .NET Aspire.

Снимок экрана: новый рабочий процесс проекта с выделенным параметром

Изменения, внесенные в существующее решение

При добавлении оркестрации .NET Aspire в решение происходят следующие изменения:

  • Добавляется проект AppHost. Проект содержит код оркестрации. Он становится точкой входа для приложения и отвечает за запуск и остановку приложения. Он также управляет обнаружением служб и управлением строка подключения.
  • Добавляется проект ServiceDefaults. Проект настраивает OpenTelemetry, добавляет проверка конечные точки работоспособности по умолчанию и включает обнаружение служб.HttpClient
  • Проект запуска решения по умолчанию изменяется на AppHost.
  • Зависимости от проектов, зарегистрированных в оркестрации, добавляются в проект AppHost .
  • Панель мониторинга .NET Aspire добавляется в решение, что позволяет сочетаниям клавиш обращаться ко всем конечным точкам проекта в решении.
  • Панель мониторинга добавляет журналы, трассировки и метрики для проектов в решении.

При добавлении оркестрации в проект веб-приложения .NET Aspire автоматически добавляет ссылку на проект ServiceDefaults . Затем он вносит следующие изменения в код в Program.cs:

  • Добавляет вызов, в AddServiceDefaults который включается обнаружение по умолчанию OpenTelemetry, счетчиков и служб.
  • Добавляет вызов, который MapDefaultEndpoints включает конечные точки по умолчанию, например /health и /alive.