Visão geral .NET.NET Aspire
.NET Aspire é um conjunto de ferramentas, modelos e pacotes poderosos para criar aplicativos observáveis e prontos para produção. .NET Aspire é fornecido por meio de uma coleção de pacotes NuGet que lidam com preocupações específicas nativas da nuvem. Os aplicativos nativos da nuvem geralmente consistem em pequenas partes ou microsserviços interconectados, em vez de uma única base de código monolítica. Os aplicativos nativos da 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 utiliza recursos computacionais em vários nós, como contentores em execução em hosts diferentes. Esses nós devem se comunicar através dos limites da rede para fornecer respostas aos usuários. Um aplicativo nativo da nuvem é um tipo específico de aplicativo distribuído que aproveita ao máximo a escalabilidade, resiliência e capacidade de gerenciamento das infraestruturas de nuvem.
Porquê .NET.NET Aspire?
.NET Aspire foi projetado para melhorar a experiência de criação de .NET aplicativos nativos da 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 concebido para o ajudar com:
- Orchestration: .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 que garantem que eles se conectem de forma consistente e fluida com o seu aplicativo.
- Tooling: .NET Aspire vem com modelos de projeto e experiências de uso de ferramentas para Visual Studio, Visual Studio Codee .NET CLI para facilitar a criação e interação com projetos .NET.NET Aspire.
Orquestração
Além
.NET .NET Aspire a orquestração ajuda com as seguintes preocupações:
- Composição da aplicação: especifique os .NET projetos, contêineres, executáveis e recursos de nuvem 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 configurações de rede e 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 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 .NET.NET Aspire visão geral da orquestração.
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, você pode usar o método AddConnectionString para fazer referência a uma cadeia de conexão existente. Para obter mais informações, consulte Fazer referência a 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 muitas preocupações nativas da nuvem para você por meio de padrões de configuração padronizados, como a adição de verificações de integridade e telemetria. As integrações são de dois lados, porque um lado representa o serviço ao qual se está a conectar e o outro lado representa o client ou consumidor desse serviço. Em outras palavras, para cada pacote de hospedagem, há um pacote client correspondente que lida com a conexão de serviço.
Cada integração é projetada para trabalhar com orquestração .NET.NET Aspire, e suas configurações são injetadas automaticamente por fazendo referência a 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 os serviços se comuniquem entre si automaticamente.
Por exemplo, considere o seguinte código usando a integração do .NET.NET Aspire Service Bus:
builder.AddAzureServiceBusClient("servicebus");
O método AddAzureServiceBusClient lida com as seguintes preocupações:
- Registra um ServiceBusClient como um singleton no contêiner DI para conexão com Azure Service Bus.
- Aplica configurações ServiceBusClient diretamente através de código ou configuração.
- Permite verificações de integridade, registos de log e telemetria correspondentes específicas para o uso do Azure Service Bus.
Uma lista completa das integrações disponíveis é detalhada na página de visão geral de integrações .NET.NET Aspire.
Modelos e ferramentas de projeto
.NET Aspire fornece um conjunto de modelos de projeto e experiências de ferramentas para Visual Studio, Visual Studio Codee a .NET CLI. Esses modelos são projetados para ajudá-lo a criar e interagir com projetos .NET.NET Aspire. Os modelos são estruturados segundo opiniões definidas e vêm com um conjunto de predefinições que ajudam a começar rapidamente. Eles incluem código clichê e configurações comuns a aplicativos nativos da nuvem, como telemetria, verificações de integridade e descoberta de serviços. Para obter mais informações, consulte .NET.NET Aspire modelos.
.NET .NET Aspire modelos também incluem métodos de extensão pré-definidos que lidam com configurações de serviço comuns para você.
builder.AddServiceDefaults();
Para obter mais informações sobre o que AddServiceDefaults
faz, consulte .NETpredefinições de serviço.NET Aspire.
Quando adicionado ao seu arquivo Program.cs, o código anterior lida com as seguintes preocupações:
- OpenTelemetry: Configura registro formatado, métricas de tempo de execução, medidores internos e rastreamento para ASP.NET Core, gRPC e HTTP. Para obter mais informações, consulte .NET.NET Aspire telemetria.
- Verificações de integridade padrão: adiciona endpoints padrão de verificação de integridade que as ferramentas podem consultar para monitorizar o seu aplicativo. Para obter mais informações, consulte .NET verificações de integridade do aplicativo em C#.
- de descoberta de serviço: habilita de descoberta de serviço para o aplicativo e configura HttpClient de acordo.