Compartilhar via


visão geral do .NET.NET Aspire

.NET Aspire é um conjunto de ferramentas, modelos e pacotes para criar aplicativos observáveis e prontos para produção. .NET Aspire é entregue por meio de uma coleção de pacotes NuGet que inicializam ou melhoram desafios específicos com o desenvolvimento de aplicativos modernos. Os aplicativos atuais geralmente consomem um grande número de serviços, como bancos de dados, mensagens e cache, muitos dos quais têm suporte por meio de integrações .NET.NET Aspire. Para obter informações sobre suporte, consulte a Política de Suporte .NET.NET Aspire.

Por que .NET.NET Aspire?

.NET .NET Aspire melhora a experiência de criação de aplicativos que têm uma variedade de projetos e recursos. Com aprimoramentos de produtividade em tempo de desenvolvimento que emulam cenários implantados, você pode desenvolver rapidamente aplicativos interconectados. Projetado para flexibilidade, .NET.NET Aspire permite substituir ou estender partes com suas ferramentas e fluxos de trabalho preferenciais. Os principais recursos incluem:

  • Dev-Time Orchestration: .NET.NET Aspire fornece recursos para executar e conectar aplicativos que abrangem vários projetos, recursos de contêiner e outras dependências para ambientes de desenvolvimento locais.
  • Integrações: .NET Aspire integrações são pacotes NuGet para serviços comumente usados, como Redis ou Postgres, com interfaces padronizadas assegurando que eles se conectem de forma consistente e harmoniosa com seu aplicativo.
  • Tooling: .NET Aspire vem com modelos de projeto e experiências de ferramentas para Visual Studio, Visual Studio Codee CLI .NET para ajudar você a criar e interagir com projetos .NET.NET Aspire.

Orquestração de tempo de desenvolvimento

Em .NET.NET Aspire, a "orquestração" concentra-se principalmente no aprimoramento da experiência de desenvolvimento local simplificando o gerenciamento da configuração e das interconexões do aplicativo. É importante observar que a orquestração de .NET.NET Aspirenão se destina a substituir os sistemas robustos usados em ambientes de produção, como Kubernetes. Em vez disso, é um conjunto de abstrações que simplificam a configuração de descoberta de serviço, variáveis de ambiente e configurações de contêiner, eliminando a necessidade de lidar com detalhes de implementação de baixo nível. Com .NET.NET Aspire, seu código tem uma experiência de inicialização consistente em qualquer computador de desenvolvimento sem a necessidade de etapas manuais complexas, facilitando o gerenciamento durante a fase de desenvolvimento.

.NET .NET Aspire orquestração auxilia nas seguintes questões:

  • Composição do aplicativo: especifique os projetos, contêineres, executáveis e recursos de nuvem .NET que compõem a aplicação.
  • Descoberta de serviço e gerenciamento de cadeia de conexão: o host do aplicativo injeta as cadeias de conexão corretas, as configurações de rede e as informações de descoberta de serviço para simplificar a experiência do desenvolvedor.

Por exemplo, usando .NET Aspire, o código a seguir cria um recurso de contêiner de Redis local, aguarda que ele fique disponível e, em seguida, configura a cadeia de conexão apropriada no projeto "frontend" com algumas chamadas de método auxiliar:

// Create a distributed application builder given the command line arguments.
var builder = DistributedApplication.CreateBuilder(args);

// Add a Redis server to the application.
var cache = builder.AddRedis("cache");

// Add the frontend project to the application and configure it to use the 
// Redis server, defined as a referenced dependency.
builder.AddProject<Projects.MyFrontend>("frontend")
       .WithReference(cache)
       .WaitFor(cache);

Para obter mais informações, consulte a visão geral da orquestração .NET.NET Aspire.

Importante

A chamada para AddRedis cria um novo contêiner de Redis em seu ambiente de desenvolvimento local. Se preferir usar uma instância de Redis existente, use o método AddConnectionString para fazer referência a uma cadeia de conexão existente. Para obter mais informações, consulte Referência de recursos existentes.

.NET .NET Aspire integrações

.NET .NET Aspire integrações são pacotes NuGet projetados para simplificar conexões com serviços e plataformas populares, como Redis ou PostgreSQL. .NET .NET Aspire integrações lidam com a configuração de recursos de nuvem e a interação para você por meio de padrões padronizados, como a adição de verificações de integridade e telemetria. As integrações são duplas – integrações de "hospedagem" representa o serviço ao qual você está se conectando e integrações de "cliente" representa o cliente ou o consumidor desse serviço. Em outras palavras, para muitos pacotes de hospedagem, existe um pacote de cliente correspondente que gerencia a conexão de serviço dentro do seu código.

Cada integração é projetada para funcionar com o host do aplicativo .NET.NET Aspire, e suas configurações são injetadas automaticamente por referenciando recursos nomeados. Em outras palavras, se Example.ServiceFoo referenciar Example.ServiceBar, Example.ServiceFoo herdará as configurações necessárias da integração para permitir que eles se comuniquem entre si automaticamente.

Por exemplo, considere o seguinte código usando a integração do Barramento de Serviço .NET.NET Aspire:

builder.AddAzureServiceBusClient("servicebus");

O método AddAzureServiceBusClient lida com as seguintes preocupações:

  • Registra um ServiceBusClient como um singleton no contêiner de DI para se conectar ao Azure Service Bus.
  • Aplica as configurações ServiceBusClient diretamente no código ou através de outras configurações.
  • Habilita verificações de integridade correspondentes, registro em log e telemetria específicas para o uso do Azure Service Bus.

Uma lista completa de integrações disponíveis é detalhada na página de visão geral de integrações .NET.NET Aspire.

Modelos de projeto e ferramentas

.NET Aspire fornece um conjunto de modelos de projeto e experiências de ferramentas para Visual Studio, Visual Studio Codee a CLI .NET. Esses modelos são projetados para ajudá-lo a criar e interagir com projetos .NET Aspire ou adicionar .NET Aspire à sua base de código existente. Os modelos incluem um conjunto de padrões opinativos para ajudá-lo a começar rapidamente - por exemplo, ele tem código clichê para ativar verificações de integridade e fazer logon em aplicativos .NET. Esses padrões são totalmente personalizáveis, para que você possa editá-los e adaptá-los de acordo com suas necessidades.

.NET .NET Aspire modelos também incluem métodos de extensão padrão que lidam com configurações de serviço comuns para você.

builder.AddServiceDefaults();

Para obter mais informações sobre o que AddServiceDefaults faz, consulte os padrões de serviço .NET.NET Aspire.

Quando adicionado ao arquivo Program.cs, o código anterior lida com as seguintes preocupações:

  • OpenTelemetry: configura o registro formatado, as métricas de tempo de execução, os medidores internos e o rastreamento para ASP.NET Core, gRPC e HTTP. Para obter mais informações, consulte .NET.NET Aspirede telemetria.
  • Verificações de integridade padrão: Adiciona endpoints de verificação de integridade padrão que as ferramentas podem consultar para monitorar seu aplicativo. Para obter mais informações, consulte .NET verificações de saúde do aplicativo no C#.
  • Descoberta de serviço: Habilita descoberta de serviço para o aplicativo e configura HttpClient adequadamente.

Próximas etapas