Узнайте, как создать новый проект .NET Aspire
Для разработки на основе облака разработчикам может потребоваться объединить различные микрослужбы, такие как базы данных, очереди обмена сообщениями и кэши. .NET Aspire упрощает этот процесс, предоставляя набор шаблонов, которые можно использовать для создания подключений между этими службами и управления ими.
В этом уроке вы узнаете, как создать проект .NET Aspire и понять различия между двумя начальными шаблонами проектов. Затем изучите структуру созданного решения.
Предварительные требования для .NET Aspire
Прежде чем создать новый проект .NET Aspire, необходимо установить некоторые предварительные требования локально.
- .NET 8
- Предварительная версия Visual Studio 2022
- Docker Desktop или Podman
- Рабочая нагрузка .NET Aspire в Visual Studio
В следующем упражнении вы узнаете, как установить эти предварительные требования.
Выберите лучший шаблон .NET Aspire для проекта
В настоящее время доступны два начальных шаблона .NET Aspire:
Приложение .NET Aspire: этот шаблон является хорошей отправной точкой для новых проектов. Он включает только проекты AspireSample.AppHost и AspireSample.ServiceDefaults . Этот шаблон полезен, если вы хотите начать с нуля и добавить собственные компоненты и службы.
Начальное приложение .NET Aspire: этот шаблон включает проекты AspireSample.AppHost и AspireSample.ServiceDefaults , но также включает пример приложения Blazor App AspireSample.Web и API, предоставляющий данные для него AspireSample.ApiService. Эти проекты предварительно настроены с помощью обнаружения служб и других основных примеров распространенных функциональных возможностей .NET Aspire.
Обе шаблоны Aspire предоставляют панель мониторинга для мониторинга работоспособности служб и трафика между ними. Панель мониторинга помогает улучшить локальный интерфейс разработки, как показано на первый взгляд, в нем представлен обзор состояния и структуры приложения.
Доступны три шаблона проекта:
- Узел приложения .NET Aspire: шаблон, содержащий только проект узла приложения (orchestrator).
- По умолчанию службы .NET Aspire: шаблон, содержащий только проект службы по умолчанию.
- Проект теста .NET Aspire: шаблон, содержащий только модульные тесты для проекта узла приложения.
Создание проекта .NET Aspire с помощью шаблона .NET Aspire
Диалоговое окно запуска Visual Studio можно использовать для создания нового проекта .NET Aspire или создания файла>>проекта. Вы также можете использовать команды .NET CLI. Чтобы создать решение с помощью шаблона приложения .NET Aspire, используйте следующую команду:
dotnet new aspire
Кроме того, чтобы использовать шаблон начального приложения .NET Aspire, используйте следующую команду:
dotnet new aspire-starter
Преимуществом использования Visual Studio является выбор параметров конфигурации с помощью диалоговых окон. Команды .NET CLI полезны, если вы хотите создать новый проект .NET Aspire с параметрами по умолчанию, но можно изменить значения по умолчанию с необязательными флагами. В следующем упражнении вы узнаете, как создать новый проект .NET Aspire с помощью обоих методов.
Изучите структуру решений, созданных шаблонами .NET Aspire
Шаблоны .NET Aspire создают решение с определенной структурой. Эта структура представляет собой упрощенную схему для начального приложения без включенных параметров кэширования или тестирования:
────📂 AspireSample
├───📂 AspireSample.ApiService
│ ├───📂 Properties
│ │ └─── launchSettings.json
│ ├─── appsettings.json
│ ├─── AspireSample.ApiService.csproj
│ └─── Program.cs
├───📂 AspireSample.AppHost
│ ├───📂 Properties
│ │ └─── launchSettings.json
│ ├─── appsettings.json
│ ├─── AspireSample.AppHost.csproj
│ └─── Program.cs
├───📂 AspireSample.ServiceDefaults
│ ├─── AspireSample.ServiceDefaults.csproj
│ └─── Extensions.cs
├───📂 AspireSample.Web
│ ├───📂 Components
│ │ ├───📂 Layout
│ │ │ ├─── ...
│ │ ├───📂 Pages
│ │ │ ├─── ...
│ │ ├─── ...
│ ├───📂 Properties
│ │ └─── launchSettings.json
│ ├───📂 wwwroot
│ │ ├───...
│ ├─── appsettings.json
│ ├─── AspireSample.Web.csproj
│ ├─── Program.cs
│ └─── WeatherApiClient.cs
└─── AspireSample.sln
Оба шаблона добавляют проекты AppHost и ServiceDefaults . Эти проекты являются основой приложения, созданного с помощью .NET Aspire. Проект AppHost является точкой входа и отвечает за роль оркестратора.
Проект ServiceDefaults содержит конфигурацию по умолчанию для приложения. Эти конфигурации повторно используются во всех проектах в решении.
Приведенное выше решение также включает проекты Web и ApiService . Веб-проект — это приложение Blazor WebAssembly, которое имеет счетчик и вызывает ApiService для получения данных прогноза. ApiService — это простой API, который возвращает данные прогноза.
Пошаговое руководство по структуре кода
Проект AspireSample.AppHost содержит следующий код в Program.cs:
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddRedis("cache");
var apiService = builder.AddProject<Projects.AspireStarterSample_ApiService>("apiservice");
builder.AddProject<Projects.AspireStarterSample_Web>("webfrontend")
.WithReference(cache)
.WithReference(apiService);
builder.Build().Run();
Пройдя по приведенному выше коду, построим по строке:
Создайте переменную
builder
, которая является .IDistributedApplicationBuilder
Создайте переменную
cache
, которая является .IResourceBuilder<RedisResource>
Вызовите
AddProject
параметр универсального типа, содержащий сведения о проектеIServiceMetadata
, добавив проект AspireSample.ApiService в модель приложения.Это фундаментальный стандартный блок .NET Aspire. Служба
AddProject
настраивает обнаружение служб и обмен данными между проектами в приложении. Служба api аргументов имени используется для идентификации проекта в модели приложения и используется позже проектами, которые хотят взаимодействовать с ним.Вызовы
AddProject
снова, на этот раз добавьте проект AspireSample.Web в модель приложения. Он также объединяет несколько вызовов дляWithReference
передачи переменных кэша и apiservice.WithReference
API является еще одним фундаментальным API .NET Aspire, который внедряет сведения об обнаружении служб или строка подключения конфигурацию в проект, добавляемый в модель приложения.Наконец,
builder
вызовыBuild
иRun
запуск приложения.