Compartilhar via


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, integratione 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, integratione 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:

um diagrama

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.