Saiba como criar um novo projeto .NET Aspire

Concluído

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, aprenda a 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 você precisa instalar localmente:

No próximo exercício, você passará pelas etapas para instalar esses pré-requisitos.

Escolha o melhor modelo .NET Aspire para o seu projeto

Existem dois modelos iniciais do .NET Aspire atualmente disponíveis:

  • Aplicação .NET Aspire : Este modelo é um bom ponto de partida para novos projetos. Ele inclui apenas os projetos AspireSample.AppHost e AspireSample.ServiceDefaults . Este modelo é útil quando você deseja começar do zero e adicionar seus próprios componentes e serviços.

  • Aplicativo .NET Aspire Starter: Este modelo inclui os projetos AspireSample.AppHost e AspireSample.ServiceDefaults , mas também inclui um exemplo Blazor App AspireSample.Web e uma API que fornece dados para ele AspireSample.ApiService. Esses projetos são pré-configurados com descoberta de serviço e outros exemplos básicos de funcionalidade comum do .NET Aspire .

Ambos os modelos Aspire fornecem um painel para monitorizar o estado dos serviços e o tráfego entre eles. O painel ajuda a melhorar sua experiência de desenvolvimento local, pois oferece uma visão geral do estado e da estrutura do seu aplicativo.

Há também três modelos de projeto disponíveis:

  • .NET Aspire App Host: um modelo que contém apenas um projeto de host de aplicativo (orquestrador).
  • Padrões de serviço do .NET Aspire : um modelo que contém apenas o projeto de padrões de serviço.
  • .NET Aspire Test Project: Um modelo que contém apenas testes de unidade para o projeto de host do aplicativo.

Criando 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 Arquivo>Novo>Projeto. Você também pode usar comandos da CLI do .NET. Para criar uma solução com o modelo .NET Aspire Application , você deve usar este comando:

dotnet new aspire 

Ou para usar o modelo .NET Aspire Starter Application , você deve usar 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 você pode alterar os padrões com sinalizadores opcionais. No próximo exercício, você verá como criar um novo projeto .NET Aspire usando ambos os métodos.

Explore 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. Esta 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 projetos AppHost e 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 para o 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 do 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();

Caminhando pelo código acima, linha por linha:

  • Crie uma builder variável que seja um IDistributedApplicationBuilderarquivo .

  • Crie uma cache variável que seja um IResourceBuilder<RedisResource>arquivo .

  • Chame AddProject com um parâmetro de tipo genérico contendo os IServiceMetadata detalhes 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 name 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 para WithReference passar as variáveis de cache e apiservice .

    A WithReference API é outra API fundamental do .NET Aspire, que injeta informações de descoberta de serviço ou configuração de cadeia de conexão no projeto que está sendo adicionado ao modelo de aplicativo.

  • Por fim, as builder chamadas Build e Run para iniciar a aplicação.