Saiba como criar um novo projeto .NET Aspire
O desenvolvimento nativo da nuvem pode exigir que os desenvolvedores conectem diferentes microsserviços, como bancos de dados, filas de mensagens e caches. O .NET Aspire simplifica esse processo fornecendo um conjunto de modelos que você pode usar para criar e gerenciar as conexões entre esses serviços.
Nesta unidade, saiba como criar um novo projeto .NET Aspire e entenda as diferenças entre os dois modelos de projeto inicial. Em seguida, explore a estrutura da solução gerada.
Pré-requisitos do .NET Aspire
Antes de criar um novo projeto .NET Aspire, há alguns pré-requisitos que precisam ser instalados localmente:
- .NET 8
- Visual Studio 2022 Preview
- Docker Desktop ou Podman
- Carga de trabalho do .NET Aspire no Visual Studio
No próximo exercício, você passará pelas etapas para instalar esses pré-requisitos.
Escolha o melhor modelo do .NET Aspire para seu projeto
Há dois modelos iniciais do .NET Aspire disponíveis no momento:
Aplicativo .NET Aspire: Esse modelo é um bom ponto de partida para novos projetos. Ele inclui apenas os projetos AspireSample.AppHost e AspireSample.ServiceDefaults. Esse modelo é útil quando você deseja começar do zero e adicionar seus próprios componentes e serviços.
Aplicativo inicial do .NET Aspire: Este modelo inclui os projetos AspireSample.AppHost e AspireSample.ServiceDefaults, mas também inclui um exemplo de aplicativo Blazor AspireSample.Web e uma API que fornece dados a ele AspireSample.ApiService. Esses projetos são pré-configurados com a descoberta de serviço e outros exemplos básicos da funcionalidade comum do .NET Aspire.
Ambos os modelos do Aspire fornecem um painel para monitorar a integridade dos serviços e o tráfego entre eles. O painel ajuda a melhorar sua experiência de desenvolvimento local, pois, em um relance, ele oferece uma visão geral do estado e da estrutura do seu aplicativo.
Há também três modelos de projeto disponíveis:
- Host do aplicativo .NET Aspire: Um modelo que contém apenas um projeto de host de aplicativo (orquestrador).
- Padrões do serviço .NET Aspire: Um modelo que contém apenas o projeto padrão do serviço.
- Projeto de teste do .NET Aspire: Um modelo que contém apenas testes de unidade para o projeto de host do aplicativo.
Criação de um novo projeto .NET Aspire usando um modelo .NET Aspire
Você pode usar a caixa de diálogo de inicialização do Visual Studio para criar um novo projeto .NET Aspire ou Novo projeto> de>Arquivo. Você também pode usar comandos da CLI do .NET. Para criar uma solução com o modelo do Aplicativo .NET Aspire, você usaria este comando:
dotnet new aspire
Ou, para usar o modelo do Aplicativo inicial do .NET Aspire, você usaria este comando:
dotnet new aspire-starter
Um benefício de usar o Visual Studio é que você escolhe suas opções de configuração por meio de caixas de diálogo. Os comandos da CLI do .NET são úteis quando você deseja criar um novo projeto do .NET Aspire com configurações padrão, mas é possível alterar os padrões com sinalizadores opcionais. No próximo exercício, você verá como criar um novo projeto .NET Aspire usando os dois métodos.
Explorar a estrutura de soluções geradas pelos modelos do .NET Aspire
Os modelos do .NET Aspire geram uma solução com uma estrutura específica. Essa estrutura é um diagrama simplificado para o aplicativo inicial, sem as opções de cache ou teste habilitadas:
────📂 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
Ambos os modelos adicionam AppHost e projetos ServiceDefaults. Esses projetos são o núcleo de um aplicativo criado com o .NET Aspire. O projeto AppHost é o ponto de entrada e é responsável por atuar como o orquestrador.
O projeto ServiceDefaults contém a configuração padrão do aplicativo. Essas configurações são reutilizadas em todos os projetos em sua solução.
A solução acima também inclui projetos Web e ApiService. O projeto Web é um aplicativo Blazor WebAssembly que tem um contador e chama o ApiService para obter dados de previsão. O ApiService é uma API simples que retorna dados de previsão.
Percorrer a estrutura de código
O projeto AspireSample.AppHost tem o seguinte código em 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();
Percorrendo o código acima, linha por linha:
Crie uma variável
builder
que seja umIDistributedApplicationBuilder
.Crie uma variável
cache
que seja umIResourceBuilder<RedisResource>
.Chame
AddProject
com um parâmetro de tipo genérico que contém os detalhesIServiceMetadata
do projeto, adicionando o projeto AspireSample.ApiService ao modelo de aplicativo.Este é um bloco de construção fundamental do .NET Aspire. O
AddProject
configura a descoberta de serviço e a comunicação entre os projetos em seu aplicativo. O argumento de nome apiservice é usado para identificar o projeto no modelo de aplicativo e usado posteriormente por projetos que desejam se comunicar com ele.Chama
AddProject
novamente, desta vez adicionando o projeto AspireSample.Web ao modelo de aplicativo. Ele também encadeia várias chamadas paraWithReference
passando as variáveis de cache e apiservice.A API
WithReference
é outra API fundamental do .NET Aspire, que injeta informações de descoberta de serviço ou de configuração de cadeia de conexão no projeto que está sendo adicionado ao modelo de aplicativo.Por fim, o
builder
chamaBuild
eRun
para iniciar o aplicativo.