Udostępnij za pośrednictwem


Omówienie integracji .NET.NET Aspire

.NET Aspire integracje to zestaw wyselekcjonowanych pakietów NuGet przeznaczonych do ułatwienia integracji aplikacji natywnych dla chmury z czołowymi usługami i platformami, takimi jak Redis i PostgreSQL. Każda integracja zapewnia podstawowe funkcje natywne dla chmury za pomocą automatycznych wzorców aprowizacji lub standardowych konfiguracji.

Napiwek

Zawsze staraj się korzystać z najnowszej wersji integracji .NET.NET Aspire, aby korzystać z najnowszych funkcji, ulepszeń i aktualizacji zabezpieczeń.

Obowiązki związane z integracją

Większość integracji .NET.NET Aspire składa się z dwóch oddzielnych bibliotek, z których każda ponosi inną odpowiedzialność. Jeden typ reprezentuje zasoby w projekcie hosta aplikacji — znanym jako hostowanie integracji. Inny typ integracji obejmuje biblioteki client, które łączą się z zasobami modelowanymi przez integracje hostujące, i są one znane jako integracje client.

Integracje hostingu

Integracje hostingu konfigurują aplikacje poprzez aprovisionowanie zasobów (takich jak kontenery lub zasoby w chmurze) lub wskazanie istniejących instancji (takich jak lokalna baza danych SQL server). Te pakiety modelują różne usługi, platformy lub funkcje, w tym pamięć podręczną, bazy danych, logowanie, przechowywanie i systemy obsługi komunikatów.

Integracje hostingu rozszerzają interfejs IDistributedApplicationBuilder, umożliwiając hostowi aplikacji dla projektu wyrażanie zasobów w ramach modelu aplikacji . Oficjalne hostowanie pakietów NuGet integracji są oznaczone aspire, integrationi hosting. Oprócz oficjalnych integracji hostingu społeczność stworzyła integracje hostingowe dla różnych usług i platform w ramach zestawu narzędzi Community Toolkit.

Aby uzyskać informacje na temat tworzenia niestandardowej integracji hostingu , zobacz Utwórz niestandardową integrację hostingu .NET.NET Aspire.

Client integracje

Client integracje podłącza biblioteki client w celu wstrzykiwania zależności (DI), definiowania schematu konfiguracji i dodawania kontroli kondycji , odpornościi telemetrii tam, gdzie ma to zastosowanie. .NET Aspire client biblioteki integracji są poprzedzone Aspire., a następnie zawierają pełną nazwę pakietu, z którą integrują się, na przykład Aspire.StackExchange.Redis.

Te pakiety konfigurują istniejące biblioteki client do połączenia z integracjami hostingu. Rozszerzają interfejs IHostApplicationBuilder, umożliwiając projektom, które zużywają client, takim jak aplikacja internetowa lub interfejs API, używanie połączonego zasobu. Oficjalne pakiety NuGet integracji client są oznaczone tagiem aspire, integrationi client. Oprócz oficjalnych integracji client społeczność stworzyła client integracje dla różnych usług i platform w ramach zestawu narzędzi Community Toolkit.

Aby uzyskać więcej informacji na temat tworzenia niestandardowej integracji client, zobacz Create custom .NET Aspireclient integrations (Tworzenie niestandardowych integracji .NET Aspireclient).

Relacja między hostingem a integracją client

Integracje hostingu i client najlepiej używać razem, ale nie są połączone i mogą być używane oddzielnie. Niektóre integracje hostingu nie mają odpowiadającej integracji client. Konfiguracja sprawia, że integracja hostingu współdziała z integracją client.

Rozważmy następujący diagram przedstawiający relację między hostingem a integracją client:

diagramu

Projekt hosta aplikacji to miejsce, w którym są używane integracje hostingu. Konfiguracja, w szczególności zmienne środowiskowe, jest wstrzykiwana do projektów, plików wykonywalnych i kontenerów, co pozwala client integracji na łączenie się z integracją hostingu.

Funkcje integracji

Po dodaniu integracji client do projektu w ramach rozwiązania .NET Aspire ustawienia domyślne usługi są automatycznie stosowane do tego projektu; oznacza, że odwołuje się do projektu Service Defaults i wywoływana jest metoda rozszerzenia AddServiceDefaults. Te wartości domyślne są zaprojektowane tak, aby działały dobrze w większości scenariuszy i można je dostosować zgodnie z potrzebami. Stosowane są następujące wartości domyślne usługi:

  • Obserwowalność i telemetrię: automatycznie ustawia konfiguracje rejestrowania, śledzenia i metryk:

    • Rejestrowanie: technika, w której kod jest przygotowywany, aby umożliwiać tworzenie dzienników interesujących zdarzeń, które wystąpiły podczas działania programu.
    • śledzenie: wyspecjalizowana forma rejestrowania, która ułatwia lokalizowanie błędów i problemów z wydajnością w aplikacjach rozproszonych na wielu maszynach lub procesach.
    • Metrics: Pomiary liczbowe rejestrowane w czasie w celu monitorowania wydajności i kondycji aplikacji. Metryki są często używane do generowania alertów w przypadku wykrycia potencjalnych problemów.
  • Sprawdzanie kondycji: uwidacznia punkty końcowe HTTP w celu zapewnienia podstawowej dostępności i informacji o stanie aplikacji. Kontrole kondycji służą do wywierania wpływu na decyzje podejmowane przez koordynatorów kontenerów, moduły równoważenia obciążenia, bramy interfejsu API i inne usługi zarządzania.

  • odporność: zdolność systemu do react awarii i nadal pozostaje funkcjonalna. Odporność wykracza poza zapobieganie awariom, aby uwzględnić odzyskiwanie i odtworzenie środowiska natywnego dla chmury z powrotem do stanu dobrej kondycji.

Oficjalne integracje

.NET .NET Aspire zapewnia wiele integracji, które ułatwiają tworzenie aplikacji natywnych dla chmury. Te integracje są zaprojektowane tak, aby bezproblemowo współdziałały z hostem aplikacji .NET Aspire i bibliotekami client. W poniższych sekcjach opisano niezależne od chmury, Azurespecyficzne dla platformy Amazon Web Services (AWS) i integracje zestawu narzędzi Community Toolkit.

Integracje niezależne od chmury

W poniższej sekcji szczegółowo omówiono niezależne od chmury .NET.NET Aspire integracje z linkami do odpowiednich pakietów docs i NuGet oraz krótki opis każdej integracji.

Dokumenty integracji i pakiety NuGet Opis
- Dowiedz się więcej: 📄 Apache Kafka
- Hosting: 📦Aspire.Hosting.Kafka
- Client: 📦Aspire. Confluent.Kafka
Biblioteka do generowania i używania komunikatów od brokera Apache Kafka.
- Dowiedz się więcej: 📄 Dapr
- hosting: 📦Aspire.Hosting.Dapr
- Client: Nie dotyczy
Biblioteka do tworzenia modelu Dapr jako zasobu .NET.NET Aspire.
- Dowiedz się więcej: 📄 Elasticsearch
- hosting: 📦Aspire. Hosting.Elasticsearch
- Client: 📦Aspire. Elastic.Clients.Elasticsearch
Biblioteka do uzyskiwania dostępu do Elasticsearch baz danych.
- Dowiedz się więcej: 📄 Keycloak
- hosting: 📦Aspire.Hosting.Keycloak
- Client: 📦Aspire.Keycloak. Uwierzytelnianie
Biblioteka do uzyskiwania dostępu do uwierzytelniania Keycloak.
- Dowiedz się więcej: 📄 Milvus
- hosting: 📦Aspire.Hosting.Milvus
- Client: 📦Aspire.Milvus.Client
Biblioteka do uzyskiwania dostępu do Milvus baz danych.
- Dowiedz się więcej: 📄MongoDB Driver
- hosting: 📦Aspire. Hosting.MongoDB
- Client: 📦Aspire.MongoDB.Driver
Biblioteka do uzyskiwania dostępu do MongoDB baz danych.
- Dowiedz się więcej: 📄 MySqlConnector
- hosting: 📦Aspire. Hosting.MySql
- Client: 📦Aspire. MySqlConnector
Biblioteka służąca do uzyskiwania dostępu do baz danych MySqlConnector.
- Dowiedz się więcej: 📄 NATS
- hosting: 📦Aspire. Gościnność.Nats
- Client: 📦Aspire.NATS.Net
Biblioteka do uzyskiwania dostępu do komunikatów NATS.
- Dowiedz się więcej: 📄Oracle — EF Core
- hosting: 📦Aspire. Hosting.Oracle
- Client: 📦Aspire.Oracle. EntityFrameworkCore
Biblioteka do uzyskiwania dostępu do baz danych Oracle przy użyciu Entity Framework Core.
- Dowiedz się więcej: 📄 Orleans
- hosting: 📦Aspire.Hosting.Orleans
- Client: Nie dotyczy
Biblioteka służąca modelowaniu Orleans jako zasób .NET.NET Aspire.
- Dowiedz się więcej: 📄MySQL Pomelo — EF Core
- hosting: 📦Aspire.Hosting.MySql
- Client: 📦Aspire. Pomelo.EntityFrameworkCore.MySql
Biblioteka do uzyskiwania dostępu do baz danych MySql przy użyciu Entity Framework Core.
- Dowiedz się więcej: 📄PostgreSQL — EF Core
- hosting: 📦Aspire. Hosting.PostgreSQL
- Client: 📦Aspire. Npgsql.EntityFrameworkCore.PostgreSQL
Biblioteka do uzyskiwania dostępu do baz danych PostgreSQL przy użyciu Entity Framework Core.
- Dowiedz się więcej: 📄 PostgreSQL
- hosting: 📦Aspire. Hosting.PostgreSQL
- Client: 📦Aspire. npgsql
Biblioteka do uzyskiwania dostępu do PostgreSQL baz danych.
- Dowiedz się więcej: 📄 Qdrant
- hosting: 📦Aspire. Hosting.Qdrant
- Client: 📦Aspire. Qdrant.Client
Biblioteka do uzyskiwania dostępu do baz danych Qdrant.
- Dowiedz się więcej: 📄 RabbitMQ
- hosting: 📦Aspire.Hosting.RabbitMQ
- Client: 📦Aspire.RabbitMQ.Client
Biblioteka umożliwiająca dostęp do RabbitMQ.
- Dowiedz się więcej: 📄Redis rozproszone buforowanie
- hosting: 📦Aspire.Hosting.Redis, 📦Aspire.Hosting.Garnetlub 📦Aspire.Hosting.Valkey
- Client: 📦Aspire.StackExchange.Redis.RozproszonaPamięćPodręczna
Biblioteka umożliwiająca dostęp do cache Redis na potrzeby buforowania rozproszonego .
- Dowiedz się więcej: buforowanie danych wyjściowych 📄Redis
- hosting: 📦Aspire.Hosting.Redis, 📦Aspire.Hosting.Garnetlub 📦Aspire.Hosting.Valkey
- Client: 📦Aspire. StackExchange.Redis. OutputCaching
Biblioteka do uzyskiwania dostępu do pamięci podręcznych Redis na potrzeby buforowania danych wyjściowych .
- Dowiedz się więcej: 📄 Redis
- Hosting: 📦Aspire.Hosting.Redis, 📦Aspire.Hosting.Garnetlub 📦Aspire.Hosting.Valkey
- Client: 📦Aspire. StackExchange.Redis
Biblioteka do uzyskiwania dostępu do pamięci podręcznych Redis.
- Dowiedz się więcej: 📄 Seq
- hosting: 📦Aspire. Hosting .Seq
- Client: 📦Aspire.Seq
Biblioteka do logowania do Seq.
- Dowiedz się więcej: 📄SQL Server — EF Core
- hosting: 📦Aspire.Hosting.SqlServer
- Client: 📦Aspire. Microsoft.EntityFrameworkCore.SqlServer
Biblioteka do uzyskiwania dostępu do baz danych SQL Server przy użyciu EF Core.
- Dowiedz się więcej: 📄 SQL Server
- hosting: 📦Aspire.Hosting.SqlServer
- Client: 📦Aspire. Microsoft.Data.SqlClient
Biblioteka do uzyskiwania dostępu do SQL Server baz danych.

Aby uzyskać więcej informacji na temat pracy z integracjami .NET Aspire w Visual Studio, zobacz narzędzia Visual Studio.

Azure integracje

Azure integracje konfigurują aplikacje do korzystania z zasobów Azure. Te integracje hostingu są dostępne w pakietach NuGet Aspire.Hosting.Azure.*, podczas gdy ich integracje client są dostępne w pakietach NuGet Aspire.*:

Dokumenty integracji i pakiety NuGet Opis
- Dowiedz się więcej: 📄Azure Konfiguracja aplikacji
- hosting: 📦Aspire.Hosting.Azure.AppConfiguration
- Client: Nie dotyczy
Biblioteka do interakcji z usługą Azure App Configuration.
- Dowiedz się więcej: 📄 Azure Application Insights
- Hosting: 📦Aspire.Hosting.Azure.ApplicationInsights
- Client: Nie dotyczy
Biblioteka do interakcji z Azure Application Insights.
- Dowiedz się więcej: 📄Azure Cosmos DB — EF Core
- hosting: 📦Aspire. Hosting.Azure.CosmosDB
- Client: 📦Aspire. Microsoft.EntityFrameworkCore.Cosmos
Biblioteka do uzyskiwania dostępu do baz danych AzureAzure Cosmos DB za pomocą Entity Framework Core.
- Dowiedz się więcej: 📄 Azure Cosmos DB
- hosting: 📦Aspire.Hosting.Azure. usługi CosmosDB
- Client: 📦Aspire. Microsoft.Azure. Usługa Cosmos
Biblioteka do uzyskiwania dostępu do Azure Cosmos DB baz danych.
- Dowiedz się więcej: 📄 Azure Event Hubs
- hosting: 📦Aspire. Hosting.Azure. EventHubs
- Client: 📦Aspire.Azure. Messaging.EventHubs
Biblioteka umożliwiająca dostęp do Azure Event Hubs.
- Dowiedz się więcej: 📄Azure Functions
- hosting: 📦Aspire. Hosting.Azure. Funkcje
- Client: Nie dotyczy
Biblioteka do integracji z funkcjami Azure.
- Dowiedz się więcej: 📄 Azure Key Vault
- Hosting: 📦Aspire. Hosting.Azure. KeyVault
- Client: 📦Aspire.Azure. Security.KeyVault
Biblioteka umożliwiająca dostęp do Azure Key Vault.
- Dowiedz się więcej: 📄Azure Operational Insights
- Hosting: 📦Aspire.Hosting.Azure.OperationalInsights
- Client: Nie dotyczy
Biblioteka umożliwiająca interakcję z Azure Operational Insights.
- Dowiedz się więcej: 📄 Azure AI OpenAI
- hosting: 📦Aspire.Hosting.Azure.CognitiveServices
- Client: 📦Aspire.Azure. AI.OpenAI
Biblioteka do uzyskiwania dostępu do funkcji Azure AI OpenAI lub OpenAI.
- Dowiedz się więcej: 📄 Azure PostgreSQL
- hosting: 📦Aspire.Hosting.Azure.PostgreSQL
- Client: Nie dotyczy
Biblioteka do interakcji z bazą danych Azure dla PostgreSQL.
- Dowiedz się więcej: 📄Azure wyszukiwanie sztucznej inteligencji
- hosting: 📦Aspire. Hosting.Azure. wyszukiwanie
- Client: 📦Aspire.Azure. Search.Documents
Biblioteka umożliwiająca dostęp do funkcji wyszukiwania sztucznej inteligencji Azure.
- Dowiedz się więcej: 📄 Azure Service Bus
- hosting: 📦Aspire.Hosting.Azure.ServiceBus
- Client: 📦Aspire.Azure. Messaging.ServiceBus
Biblioteka do uzyskiwania dostępu do Azure Service Bus.
- Dowiedz się więcej: 📄 Azure SignalR Service
- hosting: 📦Aspire. Hosting.Azure.SignalR
- Client: Microsoft.Azure.SignalR
Biblioteka umożliwiająca dostęp do Azure SignalR Service.
- Dowiedz się więcej: 📄 Azure Blob Storage
- hosting: 📦Aspire. Hosting.Azure. przechowywanie
- Client: 📦Aspire.Azure. Storage.Blobs
Biblioteka umożliwiająca dostęp do Azure Blob Storage.
- Dowiedz się więcej: 📄 Azure Storage Queues
- hosting: 📦Aspire.Hosting.Azure. magazynu
- Client: 📦Aspire.Azure.Storage.Queues
Biblioteka umożliwiająca dostęp do Azure Storage Queues.
- Dowiedz się więcej: 📄 Azure Table Storage
- hosting: 📦Aspire. Hosting.Azure. magazynu
- Client: 📦Aspire.Azure. Dane.Tabele
Biblioteka służąca do uzyskiwania dostępu do usługi Table Azure.
- Dowiedz się więcej: 📄Azure Web PubSub
- hosting: 📦Aspire.Hosting.Azure.WebPubSub
Messaging.WebPubSub - Client: 📦Aspire.Azure.
Biblioteka umożliwiająca dostęp do usługi Azure Web PubSub.

Integracje hostingu usług Amazon Web Services (AWS)

Dokumenty integracji i pakiety NuGet Opis
- Dowiedz się więcej: 📄 Hosting AWS
- hosting: 📦Aspire. Hosting.AWS
- Client: Nie dotyczy
Biblioteka do modelowania zasobów platformy AWS.

Aby uzyskać więcej informacji, zobacz GitHub: Aspire. Biblioteka Hosting.AWS.

Integracje z zestawem narzędzi Community Toolkit

Notatka

Integracja zestawu narzędzi Community Toolkit jest oparta na społeczności i utrzymywana przez społeczność .NET.NET Aspire. Te integracje nie są oficjalnie obsługiwane przez zespół .NET.NET Aspire.

Dokumenty integracji i pakiety NuGet Opis
- Dowiedz się więcej: 📄Azure emulator Static Web Apps
- hosting: 📦 CommunityToolkit.Aspire.Hosting.Azure. StaticWebApps
- Client: Nie dotyczy
Integracja hostingu dla emulatora Azure Static Web Apps (Uwaga: nie obsługuje wdrożenia projektu do Azure Static Web Apps).
- Dowiedz się więcej: 📄 Bun hosting
- hosting: 📦 CommunityToolkit.Aspire.Hosting.Bun
- Client: Nie dotyczy
Integracja hostingu dla aplikacji bun.
- Dowiedz się więcej: 📄Deno hosting
- Hosting: 📦 CommunityToolkit.Aspire.Hosting.Deno
- Client: Nie dotyczy
Integracja hostingu dla aplikacji Deno.
- Dowiedz się więcej: 📄 Go hosting
- hosting: 📦 CommunityToolkit.Aspire. Hosting.Golang
- Client: Nie dotyczy
Integracja hostingu dla aplikacji języka Go.
- dowiedz się więcej: 📄 hosting Java/Spring
- Hosting: 📦 CommunityToolkit.Aspire.Hosting.Java
- Client: Nie dotyczy
Integracja uruchamiania kodu Java w .NET.NET Aspire przy użyciu lokalnego zestawu JDK lub kontenera.
- Dowiedz się więcej: 📄Node.js rozszerzenia hostingu
- hosting: 📦 CommunityToolkit.Aspire. Hosting.NodeJs.Extensions
- Client: Nie dotyczy
Integracja zawierająca kilka dodatkowych rozszerzeń do uruchamiania aplikacji Node.js
- dowiedz się więcej: 📄 Ollama
- hosting: 📦 CommunityToolkit.Aspire. Hosting.Ollama
- Client: 📦Aspire.CommunitToolkit.OllamaSharp
Składnik Aspire korzystający z kontenera Ollama z możliwością pobrania modelu podczas uruchamiania.
- Dowiedz się więcej: 📄 hosting Meilisearch
- hosting: 📦 CommunityToolkit.Aspire.Hosting.Meilisearch
- Client: 📦Aspire.CommunitToolkit.Meilisearch
Składnik Aspire wykorzystujący kontener Meilisearch.
- Dowiedz się więcej: hosting Rust📄
- Hosting: 📦 CommunityToolkit.Aspire.Hosting.Rust
- Client: Nie dotyczy
Integracja hostingu dla aplikacji Rust.
- Dowiedz się więcej: 📄 hostowanie projektów bazy danych SQL
- Hosting: 📦 CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects
- Client: Nie dotyczy
Integracja hostingu Aspire dla projektów baz danych SQL.

Aby uzyskać więcej informacji, zobacz .NET.NET Aspire Community Toolkit.