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 reprezentuje biblioteki klienckie, które łączą się z zasobami modelowanymi przez integracje hostujące i są znane jako integracje klienckie.

Integracje hostingu

Integracje hostingu konfigurują aplikacje przez udostępnianie zasobów (takich jak kontenery lub zasoby w chmurze) lub wskazywanie istniejących instancji (takich jak lokalny serwer SQL). 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łączają biblioteki klienckie do wstrzykiwania zależności (DI), definiują schemat konfiguracji oraz dodają kontroli stanu , odporności i telemetrii tam, gdzie to ma zastosowanie. .NET .NET Aspire biblioteki integracji klienta 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 klienckie w celu łączenia się z integracją hostingu. Rozszerzają interfejs IHostApplicationBuilder, umożliwiając projektom korzystającym z klienta, takim jak aplikacja internetowa lub interfejs API, używanie połączonego zasobu. Oficjalne pakiety NuGet integracji klienta oznaczone są tagami aspire, integrationi client. Oprócz oficjalnych integracji klientów społeczność stworzyła integracje klientów dla różnych usług i platform w ramach zestawu narzędzi Community Toolkit.

Aby uzyskać więcej informacji na temat tworzenia niestandardowej integracji klienta, zobacz Tworzenie niestandardowych .NET.NET Aspire integracji klienta.

Relacja między integracją hostingu i klienta

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

Rozważmy następujący diagram przedstawiający relację między integracją hostingu i klienta:

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 umożliwia integrowanie klientów z integracją hostingu.

Funkcje integracji

Po dodaniu integracji klienta do projektu w ramach rozwiązania .NET.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 reagowania na awarie i nadal pozostając funkcjonalnym. Odporność wykracza poza zapobieganie awariom, aby uwzględnić odzyskiwanie i odtworzenie środowiska natywnego dla chmury z powrotem do stanu dobrej kondycji.

Zagadnienia dotyczące przechowywania wersji

Integracje hostingu i klienta oprogramowania są aktualizowane w każdej wersji w celu dostosowania do najnowszych stabilnych wersji zasobów zależnych. Gdy obrazy kontenerów są aktualizowane przy użyciu nowych wersji obrazów, integracja hostingu zostanie zaktualizowana do tych nowych wersji. Podobnie, gdy nowa wersja pakietu NuGet jest dostępna dla zależnej biblioteki klienta, integracja klienta jest aktualizowana do nowej wersji. Dzięki temu najnowsze funkcje i aktualizacje zabezpieczeń są dostępne dla aplikacji.

W przypadku wystąpienia poważnych zmian powodujących niezgodność w zasobach zależnych od wersji integracje mogą zostać tymczasowo podzielone na pakiety zależne od wersji, aby ułatwić aktualizowanie zmian powodujących niezgodność. Aby uzyskać więcej informacji, zobacz na temat pierwszego przykładu zmiany łamiącej zgodność.

Oficjalne integracje

.NET .NET Aspire zapewnia wiele integracji, które ułatwiają tworzenie aplikacji natywnych dla chmury. Te integracje zostały zaprojektowane tak, aby bezproblemowo współdziałały z .NET.NET Aspire hostem aplikacji i bibliotekami klienta. 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.Hosting.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 do tworzenia modelu Orleans jako zasobu .NET.NET Aspire.
- Dowiedz się więcej: 📄MySQL Pomelo — EF Core
- hosting: 📦Aspire.Hosting.MySql
- Client: 📦Aspire. Pomelo.EntityFrameworkCore.MySql
Biblioteka służąca do uzyskiwania dostępu do baz danych MySql za pomocą 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 klienta 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.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 umożliwiająca dostęp 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. przechowywanie
- 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. przechowywanie
- 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.