visão geral das integrações .NET.NET Aspire
Integrações .NET Aspire são um conjunto selecionado de pacotes NuGet projetados para facilitar a integração de aplicativos nativos para a nuvem com serviços e plataformas proeminentes, como Redis e PostgreSQL. Cada integração fornece funcionalidades nativas de nuvem essenciais por meio de provisionamento automático ou padrões de configuração padronizados.
Dica
Procure sempre usar as versões mais recentes das integrações .NET.NET Aspire para tirar proveito dos recursos, melhorias e atualizações de segurança mais atuais.
Responsabilidades de integração
A maioria das integrações .NET.NET Aspire são compostas por duas bibliotecas separadas, cada uma com uma responsabilidade diferente. Um tipo representa recursos dentro do host de aplicativo do projeto, conhecido como integrações de hospedagem . O outro tipo de integração representa bibliotecas cliente que se conectam aos recursos modelados por integrações de hospedagem, conhecidas como integrações de cliente.
Integrações de hospedagem
As integrações de hospedagem configuram aplicativos provisionando recursos (como contêineres ou recursos de nuvem) ou apontando para instâncias existentes (como um SQL Server local). Esses pacotes modelam vários serviços, plataformas ou funcionalidades, incluindo caches, bancos de dados, log, armazenamento e sistemas de mensagens.
As integrações de hospedagem estendem a interface IDistributedApplicationBuilder, permitindo ao host do aplicativo expressar recursos no projeto dentro do seu modelo de aplicativo . Os pacotes NuGet oficiais de integração de hospedagem são marcados com aspire
, integration
e hosting
. Além das integrações oficiais de hospedagem, a comunidade criou integrações de hospedagem para vários serviços e plataformas como parte do Kit de Ferramentas da Comunidade.
Para obter informações sobre como criar uma integração de hospedagem personalizada, consulte Criar integração de hospedagem .NET.NET Aspire personalizada.
integrações Client
Client integrações conectam bibliotecas de cliente a de di (injeção de dependência), definem o esquema de configuração e adicionam de verificações de integridade, de resiliência e de telemetria, quando aplicável.
.NET
.NET Aspire bibliotecas de integração de cliente são prefixadas com Aspire.
e incluem o nome completo do pacote com o qual se integram, como Aspire.StackExchange.Redis
.
Esses pacotes configuram bibliotecas de clientes existentes para se conectarem a integrações de hospedagem. Eles estendem a interface IHostApplicationBuilder, permitindo que projetos que utilizam o cliente, como, por exemplo, seu aplicativo web ou API, usem o recurso conectado. Os pacotes NuGet oficiais de integração do cliente são marcados com aspire
, integration
e client
. Além das integrações oficiais do cliente, a comunidade de criou integrações de clientes para vários serviços e plataformas como parte do Kit de Ferramentas da Comunidade.
Para obter mais informações sobre como criar uma integração personalizada de cliente, consulte Criar integrações de cliente personalizadas .NET.NET Aspire.
Relação entre hospedagem e integrações de cliente
As integrações de hospedagem e cliente são melhores quando usadas em conjunto, mas não acopladas e podem ser usadas separadamente. Algumas integrações de hospedagem não têm uma integração de cliente correspondente. A configuração é o que faz com que a integração de hospedagem funcione com a integração do cliente.
Considere o diagrama a seguir que ilustra a relação entre a hospedagem e as integrações de cliente:
O projeto de hospedagem do aplicativo é onde as integrações de hospedagem são utilizadas. A configuração, especificamente variáveis de ambiente, é injetada em projetos, executáveis e contêineres, permitindo que as integrações de cliente se conectem às integrações de hospedagem.
Recursos de integração
Quando você adiciona uma integração de cliente a um projeto dentro de sua solução de .NET.NET Aspire, os Service Defaults são aplicados automaticamente a esse projeto, que significa que o projeto Service Defaults é referenciado e o método de extensão AddServiceDefaults
é chamado. Esses padrões são projetados para funcionar bem na maioria dos cenários e podem ser personalizados conforme necessário. Os seguintes padrões de serviço são aplicados:
Observabilidade e Telemetria: configura automaticamente logs, rastreamentos e métricas.
- registro em log: uma técnica em que o código é instrumentado para produzir logs de eventos interessantes que ocorreram durante a execução do programa.
- rastreamento: uma forma especializada de registro em log que ajuda você a localizar falhas e problemas de desempenho em aplicativos distribuídos em vários computadores ou processos.
- Métricas: medidas numéricas registradas ao longo do tempo para monitorar o desempenho e a integridade do aplicativo. As métricas geralmente são usadas para gerar alertas quando possíveis problemas são detectados.
Verificações de integridade: expõe pontos de extremidade HTTP para fornecer informações básicas de disponibilidade e estado sobre um aplicativo. Verificações de integridade são usadas para influenciar decisões tomadas por orquestradores de contêineres, balanceadores de carga, gateways de API e outros serviços de gerenciamento.
resiliência: a capacidade do sistema de reagir à falha e ainda permanecer funcional. A resiliência vai além de evitar falhas para incluir a recuperação e a reconstrução de seu ambiente nativo de nuvem de volta a um estado íntegro.
Considerações sobre controle de versão
As integrações de hospedagem e cliente são atualizadas a cada versão para direcionar as versões estáveis mais recentes de recursos dependentes. Quando as imagens de contêiner são atualizadas com novas versões de imagem, as integrações de hospedagem são atualizadas para essas novas versões. Da mesma forma, quando uma nova versão do NuGet está disponível para uma biblioteca de clientes dependente, a integração de cliente correspondente é atualizada para a nova versão. Isso garante que os recursos mais recentes e as atualizações de segurança estejam disponíveis para aplicativos.
Quando grandes alterações disruptivas ocorrem em recursos dos quais dependem, as integrações podem ser divididas temporariamente em pacotes dependentes de versão para facilitar a atualização por causa da mudança disruptiva. Para obter mais informações, consulte o primeiro exemplo de uma alteração tão significativa.
Integrações oficiais
.NET .NET Aspire fornece muitas integrações para ajudá-lo a criar aplicativos nativos de nuvem. Essas integrações são projetadas para funcionar perfeitamente com as bibliotecas de host e cliente do aplicativo .NET.NET Aspire. As seções a seguir detalham as integrações agnósticas à nuvem, específicas para Azure, da Amazon Web Services (AWS) e do Kit de Ferramentas da Comunidade.
Integrações independentes de nuvem
A seção a seguir detalha as integrações .NET.NET Aspire agnósticas à nuvem, com links para suas respectivas documentações e pacotes NuGet, e fornece uma breve descrição de cada integração.
Documentos de integração e pacotes NuGet | Descrição |
---|---|
-
Saiba mais: 📄 Apache Kafka - Hospedagem: 📦Aspire. .Hosting.Kafka - Client: 📦Aspire. Confluent.Kafka |
Uma biblioteca para produzir e consumir mensagens de um broker Apache Kafka. |
-
Saiba mais: 📄 Dapr - de hospedagem: 📦Aspire. Hospedagem.Dapr - Client: N/A |
Uma biblioteca para a modelagem de Dapr como um recurso de .NETe.NET Aspire. |
-
Saiba mais: 📄 Elasticsearch - de hospedagem: 📦Aspire. Hospedagem.Elasticsearch - Client: 📦Aspire. Elastic.Clients.Elasticsearch |
Uma biblioteca para acessar bancos de dados Elasticsearch. |
-
Saiba mais: 📄 Keycloak - de hospedagem: 📦Aspire. Hospedagem.Keycloak - Client: 📦Aspire.Keycloak. autenticação |
Uma biblioteca para acessar a autenticação Keycloak. |
-
Saiba mais: 📄 Milvus - de hospedagem: 📦Aspire. Hospedagem.Milvus - Client: 📦Aspire.Milvus.Client |
Uma biblioteca para acessar bancos de dados Milvus. |
-
Saiba mais: 📄MongoDB Driver - de hospedagem: 📦Aspire. Hospedagem.MongoDB - Client: 📦Aspire.MongoDB.Driver |
Uma biblioteca para acessar bancos de dados MongoDB. |
-
Saiba mais: 📄 MySqlConnector - de hospedagem: 📦Aspire. Hosting.MySql - Client: 📦Aspire. MySqlConnector |
Uma biblioteca para acessar bancos de dados MySqlConnector. |
-
Saiba mais: 📄 NATS - Hosting: 📦Aspire.Hosting.Nats - Client: 📦Aspire.NATS.Net |
Uma biblioteca para acessar o sistema de mensagens NATS. |
-
Saiba mais: 📄Oracle – EF Core - de hospedagem: 📦Aspire. Hospedagem.Oracle - Client: 📦Aspire.Oracle. EntityFrameworkCore |
Uma biblioteca para acessar bancos de dados Oracle com Entity Framework Core. |
-
Saiba mais: 📄 Orleans - de hospedagem: 📦Aspire. Hospedagem.Orleans - Client: N/A |
Uma biblioteca para a modelagem de Orleans como um recurso de .NETe.NET Aspire. |
-
Saiba mais: 📄 Pomelo MySQL – EF Core - Hosting: 📦Aspire.Hosting.MySql - Client: 📦Aspire. Pomelo.EntityFrameworkCore.MySql |
Uma biblioteca para acessar bancos de dados MySql usando Entity Framework Core. |
-
Saiba mais: 📄PostgreSQL – EF Core - de hospedagem: 📦Aspire. Hospedagem.PostgreSQL - Client: 📦Aspire. Npgsql.EntityFrameworkCore.PostgreSQL |
Uma biblioteca para acessar bancos de dados PostgreSQL usando Entity Framework Core. |
-
Saiba mais: 📄 PostgreSQL - de hospedagem: 📦Aspire. Hospedagem.PostgreSQL - Client: 📦Aspire. Npgsql |
Uma biblioteca para acessar bancos de dados PostgreSQL. |
-
Saiba mais: 📄 Qdrant - Hosting: 📦Aspire. Hosting.Qdrant - Client: 📦Aspire. Qdrant.Client |
Uma biblioteca para acessar bancos de dados do Qdrant. |
-
Saiba mais: 📄 RabbitMQ - de hospedagem: 📦Aspire. Hospedagem.RabbitMQ - Client: 📦Aspire.RabbitMQ.Client |
Uma biblioteca para acessar RabbitMQ. |
-
Saiba mais: 📄Redis Cache Distribuído - de hospedagem: 📦Aspire.Hospedagem.Redis, 📦Aspire.Hospedagem.Garnet, ou 📦Aspire.Hospedagem.Valkey - Client: 📦Aspire.StackExchange.Redis.DistributedCaching |
Uma biblioteca para acessar caches de Redis para armazenamento em cache distribuído de . |
-
Saiba mais: 📄Redis Cache de Saída - de hospedagem: 📦Aspire.Hospedagem.Redis, 📦Aspire.Hospedagem.Garnet, ou 📦Aspire.Hospedagem.Valkey - Client: 📦Aspire. StackExchange.Redis. OutputCaching |
Uma biblioteca para acessar caches Redis para o cache de saída. |
-
Saiba mais: 📄 Redis - de hospedagem: 📦Aspire.Hospedagem.Redis, 📦Aspire.Hospedagem.Garnet, ou 📦Aspire.Hospedagem.Valkey - Client: 📦Aspire. StackExchange.Redis |
Uma biblioteca para acessar caches Redis. |
-
Saiba mais: 📄 Seq - de hospedagem: 📦Aspire. Hospedagem.Seq - Client: 📦Aspire.Seq |
Uma biblioteca para logar em Seq. |
-
Saiba mais: 📄SQL Server – EF Core - de hospedagem: 📦Aspire.Hospedagem.SqlServer - Client: 📦Aspire. Microsoft.EntityFrameworkCore.SqlServer |
Uma biblioteca para acessar bancos de dados SQL Server usando EF Core. |
-
Saiba mais: 📄 SQL Server - de hospedagem: 📦Aspire.Hospedagem.SqlServer - Client: 📦Aspire. Microsoft.Data.SqlClient |
Uma biblioteca para acessar bancos de dados SQL Server. |
Para obter mais informações sobre como trabalhar com integrações de .NET Aspire no Visual Studio, consulte as ferramentas Visual Studio.
integrações Azure
Azure integrações configuram aplicativos para usar Azure recursos. Essas integrações de hospedagem estão disponíveis nos pacotes NuGet Aspire.Hosting.Azure.*
, enquanto as integrações do cliente estão disponíveis nos pacotes NuGet Aspire.*
.
Documentos de integração e pacotes NuGet | Descrição |
---|---|
-
Saiba mais: 📄Configuração de AplicativoAzure - de hospedagem: 📦Aspire. Hospedagem.Azure. AppConfiguration - Client: N/A |
Uma biblioteca para interagir com a Configuração de Aplicativos Azure. |
-
Saiba mais: 📄 Azure Application Insights - de hospedagem: 📦Aspire. Hospedagem.Azure. ApplicationInsights - Client: N/A |
Uma biblioteca para interagir com Azure Application Insights. |
-
Saiba mais: 📄Azure Cosmos DB – EF Core - de hospedagem: 📦Aspire. Hospedagem.Azure. CosmosDB - Client: 📦Aspire. Microsoft.EntityFrameworkCore.Cosmos |
Uma biblioteca para acessar bancos de dados AzureAzure Cosmos DB usando Entity Framework Core. |
-
Saiba mais: 📄 Azure Cosmos DB - de hospedagem: 📦Aspire. Hospedagem.Azure. CosmosDB - Client: 📦Aspire. Microsoft.Azure. Cosmos |
Uma biblioteca para acessar bancos de dados Azure Cosmos DB. |
-
Saiba mais: 📄 Azure Event Hubs - de hospedagem: 📦Aspire. Hospedagem.Azure. EventHubs - Client: 📦Aspire.Azure. Messaging.EventHubs |
Uma biblioteca para acessar Azure Event Hubs. |
-
Saiba mais: 📄Azure Functions - de hospedagem: 📦Aspire. Hospedagem.Azure. Funções - Client: N/A |
Uma biblioteca para integração com as Funções Azure. |
-
Saiba mais: 📄 Azure Key Vault - de hospedagem: 📦Aspire. Hospedagem.Azure. KeyVault - Client: 📦Aspire.Azure. Security.KeyVault |
Uma biblioteca para acessar Azure Key Vault. |
-
Saiba mais: 📄Azure Insights Operacionais - de hospedagem: 📦Aspire.Hospedagem.Azure.OperationalInsights - Client: N/A |
Uma biblioteca para interagir com o Azure Operational Insights. |
-
Saiba mais: 📄 Azure AI OpenAI - de hospedagem: 📦Aspire. Hospedagem.Azure. serviços cognitivos - Client: 📦Aspire.Azure. IA.OpenAI |
Uma biblioteca para acessar a funcionalidade Azure AI OpenAI ou OpenAI. |
-
Saiba mais: 📄 Azure PostgreSQL - Hosting: 📦Aspire. Hospedagem.Azure.PostgreSQL - Client: N/A |
Uma biblioteca para interagir com o Banco de Dados Azure para PostgreSQL. |
-
Saiba mais: 📄Azure pesquisa de IA - Hospedagem: 📦Aspire. Hospedagem.Azure. Buscar - Client: 📦Aspire.Azure. Search.Documents |
Uma biblioteca para acessar a funcionalidade de busca de IA Azure. |
-
Saiba mais: 📄 Azure Service Bus - de hospedagem: 📦Aspire. Hospedagem.Azure. do ServiceBus - Client: 📦Aspire.Azure. Messaging.ServiceBus |
Uma biblioteca para acessar Azure Service Bus. |
-
Saiba mais: 📄 Azure SignalR Service - Hosting: 📦Aspire. Hospedagem.Azure.SignalR - Client: Microsoft.Azure.SignalR |
Uma biblioteca para acessar Azure SignalR Service. |
-
Saiba mais: 📄 Azure Blob Storage - : Hospedagem 📦Aspire.Hospedagem.Azure.Armazenamento - Client: 📦Aspire.Azure.Storage.Blobs |
Uma biblioteca para acessar Azure Blob Storage. |
-
Saiba mais: 📄 Azure Storage Queues - : Hospedagem 📦Aspire.Hospedagem.Azure.Armazenamento - Client: 📦Aspire.Azure.Storage.Queues |
Uma biblioteca para acessar Azure Storage Queues. |
-
Saiba mais: 📄 Azure Table Storage - : Hospedagem 📦Aspire.Hospedagem.Azure.Armazenamento - Client: 📦Aspire.Azure. Tabelas de Dados |
Uma biblioteca para acessar o serviço da Tabela |
-
Saiba mais: 📄Azure Web PubSub - de hospedagem: 📦Aspire. Hospedagem.Azure. WebPubSub - Client: 📦Aspire.Azure. Messaging.WebPubSub |
Uma biblioteca para acessar o serviço Azure Web PubSub. |
Integrações de hospedagem do AWS (Amazon Web Services)
Documentos de integração e pacotes NuGet | Descrição |
---|---|
-
Saiba mais: 📄 Hospedagem AWS - de hospedagem: 📦Aspire. Hosting.AWS - Client: N/A |
Uma biblioteca para modelagem recursos do AWS. |
Para obter mais informações, consulte GitHub: Aspire. A biblioteca Hosting.AWS.
Integrações do Kit de Ferramentas da Comunidade
Nota
As integrações do Kit de Ferramentas da Comunidade são controladas pela comunidade e mantidas pela comunidade .NET.NET Aspire. Essas integrações não têm suporte oficial da equipe de .NET.NET Aspire.
Documentos de integração e pacotes NuGet | Descrição |
---|---|
-
Saiba mais: 📄Azure emulador de aplicativos Web estáticos - Hospedagem: 📦 CommunityToolkit.Aspire. Hospedagem.Azure. StaticWebApps - Client: N/A |
Uma integração de hospedagem para o emulador Azure Aplicativos Web Estáticos (Observação: isso não dá suporte à implantação de um projeto para Azure Aplicativos Web Estáticos). |
-
Saiba mais: 📄 Bun hospedagem - Hospedagem: 📦 CommunityToolkit.Aspire. .Hosting.Bun - Client: N/A |
Uma integração de hospedagem para aplicativos Bun. |
-
Saiba mais: 📄Deno hospedagem - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Deno - Client: N/A |
Uma integração de hospedagem para aplicativos Deno. |
-
Saiba mais: 📄 Hospedagem - de Hospedagem: 📦 CommunityToolkit.Aspire. Hosting.Golang - Client: N/A |
Uma integração de hospedagem para aplicativos Go. |
-
Saiba mais: 📄 Hospedagem de Java/Spring - de Hospedagem: 📦 CommunityToolkit.Aspire. Host.Java - Client: N/A |
Uma integração para executar o código Java no .NET.NET Aspire usando o JDK local ou usando um contêiner. |
-
Saiba mais: 📄Node.js extensões de hospedagem - Hospedagem: 📦 CommunityToolkit.Aspire. Hosting.NodeJs.Extensions - Client: N/A |
Uma integração que contém algumas extensões adicionais para executar aplicativos Node.js |
-
Saiba mais: 📄 Ollama - de Hospedagem: 📦 CommunityToolkit.Aspire. Host.Ollama - Client: 📦Aspire. CommunitToolkit.OllamaSharp |
Um componente Aspire aproveitando o contêiner Ollama com suporte para baixar um modelo na inicialização. |
-
Saiba mais: 📄 hospedagem do Meilisearch - Hospedagem: 📦 CommunityToolkit.Aspire. Hosting.Meilisearch - Client: 📦Aspire. CommunitToolkit.Meilisearch |
Um componente Aspire utilizando o contêiner Meilisearch. |
-
Saiba mais: 📄 hospedagem Rust - de Hospedagem: 📦 CommunityToolkit.Aspire. Hosting.Rust - Client: N/A |
Uma integração de hospedagem para aplicativos Rust. |
-
Saiba mais: 📄 projetos do Banco de Dados SQL que hospedam - Hospedagem: 📦 CommunityToolkit.Aspire. Hosting.SqlDatabaseProjects - Client: N/A |
Uma integração de hospedagem Aspire para projetos do Banco de Dados SQL. |
Para obter mais informações, consulte .NET.NET Aspire Community Toolkit.