.NET Aspire fornece um conjunto de padrões inteligentes para serviços que são comumente usados em aplicações .NET. Esses padrões são projetados para ajudá-lo a começar rapidamente e fornecer uma experiência consistente em diferentes tipos de aplicações. Isso inclui:
- Telemetria: Métricas, Rastreamento, Log
- Resiliência
- Verificações de Saúde do Ambiente (Health Checks)
- Descoberta de Serviço (Service Discovery)
-
Adicione um novo projeto à solução chamado
ServiceDefaults
:- Clique com o botão direito na solução e selecione
Add
>New Project
. - Selecione o modelo de projeto
.NET Aspire Service Defaults
. - Nomeie o projeto como
ServiceDefaults
. - Clique em
Next
>Create
.
- Clique com o botão direito na solução e selecione
-
Crie um novo projeto usando o comando
dotnet new aspire-servicedefaults
:dotnet new aspire-servicedefaults -n ServiceDefaults
-
Adicione uma referência ao projeto
ServiceDefaults
nos projetosApi
eMyWeatherHub
:- Clique com o botão direito no projeto
Api
e selecioneAdd
>Reference
.- Selecione o projeto
ServiceDefaults
e clique emOK
.
- Selecione o projeto
- Clique com o botão direito no projeto
MyWeatherHub
e selecioneAdd
>Reference
.- Selecione o projeto
ServiceDefaults
e clique emOK
.
- Selecione o projeto
Dica: No Visual Studio 2022, você pode arrastar e soltar o projeto em outro projeto para adicionar uma referência.
- Clique com o botão direito no projeto
-
Nos projetos
Api
eMyWeatherHub
, atualize seus arquivosProgram.cs
, adicionando a seguinte linha imediatamente após a linhavar builder = WebApplication.CreateBuilder(args);
:builder.AddServiceDefaults();
-
Nos projetos
Api
eMyWeatherHub
, atualize seus arquivosProgram.cs
, adicionando a seguinte linha imediatamente após a linhavar app = builder.Build();
:app.MapDefaultEndpoints();
-
Execute a aplicação usando uma configuração de execução multiprojeto no Visual Studio ou Visual Studio Code.
- Visual Studio: Clique com o botão direito na solução
MyWeatherHub
e vá para propriedades. SelecioneApi
eMyWeatherHub
como "startup projects", selecioneOK
. - Visual Studio Code: Execute os projetos
Api
eMyWeatherHub
usando o painelRun and Debug
. Fornecemos um arquivolaunch.json
com as configurações necessárias para executar ambos.
- Visual Studio: Clique com o botão direito na solução
-
Teste a aplicação navegando para os seguintes URLs:
- https://localhost:7032/swagger/index.html - API
- https://localhost:7274/ - MyWeatherHub
-
Você deve conseguir accessar a API e a página inicial do MyWeatherHub no Swagger.
-
Você também pode accessar as verificações de saúde (health checks) da API navegando para https://localhost:7032/health.
-
Você também pode visualizar as verificações de saúde (health checks) do MyWeatherHub navegando para https://localhost:7274/health.
-
Veja os logs no terminal para ver as verificações de saúde (health checks) e outros dados de telemetria, como resiliência com Polly:
Polly: Information: Execution attempt. Source: '-standard//Standard-Retry', Operation Key: '', Result: '200', Handled: 'False', Attempt: '0', Execution Time: '13.0649'
-
Clique em 5 cidades diferentes e um erro "aleatório" será lançado. Você verá a política de nova tentativa do Polly em ação.
Polly: Warning: Execution attempt. Source: '-standard//Standard-Retry', Operation Key: '', Result: '500', Handled: 'True', Attempt: '0', Execution Time: '9732.8258' Polly: Warning: Resilience event occurred. EventName: 'OnRetry', Source: '-standard//Standard-Retry', Operation Key: '', Result: '500' System.Net.Http.HttpClient.NwsManager.ClientHandler: Information: Sending HTTP request GET http://localhost:5271/forecast/AKZ318