Aspire | CSharp
- Aspire | CSharp
Aspire é para ambiente de desenvolvimento para facilitar a integração de vários componentes complexos. Ele abstrai a complexidade de Docker-Compose
Slogan: Aspire são ferramentas, templates e pacotes que tornam mais rápido e fácil construir apps <inserir palavra - seguros, observáveis, escaláveis, resilientes, etc>
Tomar cuidado ao criar projetos com o ASPIRE em que ambos tem INSTRUÇÕES DE NÍVEL SUPERIOR, pois ambos podem conflitar.
Situação ocorreu entre um projeto do tipo WORKER e ASPIRE.
AppHost | Aspire
- Como orquestrador central, o AppHost coordena a execução de todos os projetos no aplicativo .NET Aspire. Ele gerencia dependências, define definições de configuração e garante integração perfeita entre diferentes componentes, como ApiService e Web.
var builder = DistributedApplication.CreateBuilder(args);
var apiservice = builder.AddProject<Projects.OrangeFinance>("api-orange");
builder.Build().Run();
ServiceDefault | Aspire
- Esse componente é crucial no gerenciamento e na configuração de dependências no aplicativo. Ele fornece uma abordagem padronizada para configurar serviços, permitindo escalabilidade e manutenção mais fáceis do aplicativo.
Adiciona a parte de logs, health checks, instrumentações
Nos nossos projetos, precisamos adicionar o builder.AddServiceDefaults(); que vem da referência do projeto AspireApp.ServiceDefaults porque ele realiza as seguintes coisas:
🧩 1. Configura padrões de observabilidade
Adiciona automaticamente:
- OpenTelemetry para logs, métricas e traces.
- Integração com Aspire Dashboard, Prometheus, Grafana, Jaeger ou outros.
- Configuração de logging estruturado (JSON por padrão).
Ou seja, você não precisa configurar manualmente cada parte de observabilidade em cada projeto.
🔗 2. Configura service discovery e health checks
Registra o servi ço com o service discovery usado pelo Aspire (por exemplo, via Dapr, Consul ou o próprio Aspire host) e adiciona endpoints como:
/health/alive/ready
Isso permite que o Aspire saiba quando sua API está pronta e saudável para receber tráfego.
🧰 3. Aplica boas práticas de hospedagem
Inclui convenções padrão para:
- Configuração de Kestrel, HTTP/HTTPS;
- Configuração unificada via
appsettings.json, variáveis de ambiente e secrets; - Dependency Injection e Configuration alinhadas com o ecossistema do Aspire.
⚙️ 4. Simplifica a integração com outros serviços Aspire
Ao usar AddServiceDefaults(), seu serviço automaticamente:
- Participa da malha de observabilidade;
- Herda configurações padrão de rede, telemetry e health;
- Usa a mesma configuração base aplicada aos demais serviços no projeto Aspire.
🧠 Exemplo simples:
var builder = WebApplication.CreateBuilder(args);
// Aplica padrões Aspire
builder.AddServiceDefaults();
builder.Services.AddControllers();
var app = builder.Build();
// Configura endpoints padrões
app.MapDefaultEndpoints();
app.MapControllers();
app.Run();
Aqui:
AddServiceDefaults()adiciona configurações padrão de serviço.MapDefaultEndpoints()mapeia endpoints de health e telemetry.
✅ Em resumo:
builder.AddServiceDefaults();
➡️ Centraliza e aplica configurações padrão para observabilidade, descoberta de serviços, health checks e boas práticas de hosting, de acordo com o padrão Aspire.