Visão geral .NET.NET Aspire
.NET Aspire é um conjunto de ferramentas, modelos e pacotes para criar aplicativos observáveis e prontos para produção. .NET Aspire é fornecido 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 são suportados por meio do .NET.NET Aspire Integrations. Para obter informações sobre suporte, consulte a Política de Suporte .NET.NET Aspire.
Porquê .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, o .NET.NET Aspire permite que você substitua ou estenda peças com suas ferramentas e fluxos de trabalho preferidos. Os principais recursos incluem:
- Dev-Time Orchestration: .NET.NET Aspire fornece recursos para executar e conectar aplicativos de vários projetos, recursos de contêiner e outras 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 durante o desenvolvimento
Além .NET.NET Aspire, a "orquestração" se concentra principalmente em aprimorar a experiência de desenvolvimento local, simplificando o gerenciamento da configuração e das interconexões do seu aplicativo. É importante notar que a orquestração do .NET.NET Aspirenão se destina a substituir os sistemas robustos usados em ambientes de produção, como o Kubernetes. Em vez disso, é um conjunto de abstrações que simplificam a configuração da descoberta de serviços, 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 máquina de desenvolvimento sem a necessidade de etapas manuais complexas, facilitando o gerenciamento durante a fase de desenvolvimento.
.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 injeta as cadeias de conexão, configurações de rede e informações de descoberta de serviço corretas 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 a configuração e interação de recursos na nuvem por meio de padrões padronizados, como a adição de verificações de integridade e telemetria. As integrações são duplas - as integrações de "hospedagem" representam o serviço ao qual se está a conectar e as integrações de "cliente" representam o cliente ou consumidor desse serviço. Em outras palavras, para muitos pacotes de hospedagem, há um pacote de cliente correspondente que lida com 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 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 .NET Aspire projetos 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 login em aplicativos .NET. Esses padrões são totalmente personalizáveis, para que você possa editá-los e adaptá-los para atender às suas necessidades.
.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.