Compartilhar via


visão geral do .NET.NET Aspire

.NET Aspire é um conjunto de ferramentas, modelos e pacotes avançados para criar aplicativos prontos para produção e observáveis. .NET Aspire é entregue por meio de uma coleção de pacotes NuGet que lidam com preocupações específicas nativas da nuvem. Os aplicativos nativos de nuvem geralmente consistem em peças ou microsserviços pequenos e interconectados, em vez de uma única base de código monolítica. Os aplicativos nativos de nuvem geralmente consomem um grande número de serviços, como bancos de dados, mensagens e cache. Para obter informações sobre suporte, consulte a Política de Suporte .NET.NET Aspire.

Um aplicativo distribuído é aquele que usa recursos computacionais em vários nós, como contêineres em execução em hosts diferentes. Esses nós devem se comunicar através de limites de rede para fornecer respostas aos usuários. Um aplicativo nativo de nuvem é um tipo específico de aplicativo distribuído que aproveita ao máximo a escalabilidade, a resiliência e a capacidade de gerenciamento de infraestruturas de nuvem.

Por que .NET.NET Aspire?

.NET Aspire foi projetado para melhorar a experiência de criação de aplicativos .NET nativos de nuvem. Ele fornece um conjunto consistente e opinativo de ferramentas e padrões que ajudam você a criar e executar aplicativos distribuídos. .NET .NET Aspire foi projetado para ajudá-lo com:

  • Orquestração: .NET.NET Aspire fornece recursos para executar e conectar aplicativos multiprojeto e suas dependências para ambientes de desenvolvimento local.
  • 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

Em , 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 nativo de nuvem. É 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, ele fornece 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. Essas abstrações garantem um padrão de configuração consistente entre aplicativos com inúmeras integrações e serviços, facilitando o gerenciamento de aplicativos complexos 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 consegue injetar as cadeias de conexão corretas ou 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 diversas preocupações inerentes à nuvem através de padrões de configuração padronizados, como adicionando verificações de integridade e telemetria. As integrações são duplas, pois um lado representa o serviço ao qual você está se conectando e o outro representa o client ou consumidor desse serviço. Em outras palavras, para cada pacote de hospedagem, há um pacote de client correspondente responsável pela conexão do serviço.

Cada integração foi projetada para funcionar com .NET.NET Aspire orquestração e suas configurações são injetadas automaticamente 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.NET Aspire. Os modelos são opinativos e vêm com um conjunto de padrões que ajudam você a começar rapidamente. Eles incluem código clichê e configurações comuns a aplicativos nativos de nuvem, como telemetria, verificações de integridade e descoberta de serviço. Para obter mais informações, consulte .NET.NET Aspire modelos.

.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