Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Aspire integraties zijn een gecureerde suite met NuGet-pakketten die zijn geselecteerd om de integratie van cloudeigen toepassingen met prominente services en platforms, zoals Redis en PostgreSQL, te vergemakkelijken. Elke integratie levert essentiële cloudeigen functionaliteiten via automatische inrichting of gestandaardiseerde configuratiepatronen.
Fooi
Probeer altijd de nieuwste versie van Aspire integraties te gebruiken om te profiteren van de nieuwste functies, verbeteringen en beveiligingsupdates.
Waarschuwing
Integraties voeren code uit in uw ontwikkelomgeving. Zorg ervoor dat integraties van derden worden vertrouwd voordat ze worden gebruikt. Zie Best practices voor een veilige software-toeleveringsketen voor meer informatie.
Integratieverantwoordelijkheden
De meeste Aspire integraties bestaan uit twee afzonderlijke bibliotheken, elk met een andere verantwoordelijkheid. Eén type vertegenwoordigt resources in het AppHost-project , ook wel hostingintegraties genoemd. Het andere type integratie vertegenwoordigt clientbibliotheken die verbinding maken met de resources die zijn gemodelleerd door hostingintegraties, en ze worden ook wel clientintegratiesgenoemd.
Hosting integraties
Hostingintegraties configureren toepassingen door resources (zoals containers of cloudresources) in te richten of door te verwijzen naar bestaande exemplaren (zoals een lokale SQL-server). Deze pakketten modelleren verschillende services, platforms of mogelijkheden, waaronder caches, databases, logboekregistratie, opslag en berichtensystemen.
Hostingintegraties breiden de IDistributedApplicationBuilder interface uit, waardoor het AppHost-project resources kan uitdrukken binnen het app-model. Hostingintegraties werken met elk type toepassing, niet alleen .NET toepassingen. Ze bieden infrastructuur en injecteren configuratiegegevens (zoals verbindingsreeksen, eindpunten en referenties) als omgevingsvariabelen in elk project, uitvoerbaar bestand of container die ernaar verwijzen.
De officiële hostingintegratie NuGet-pakketten zijn gelabeld met aspire, integrationen hosting. Naast de officiële hostingintegraties heeft de community hostingintegraties gemaakt voor verschillende services en platforms als onderdeel van de Community Toolkit.
Zie Aangepaste hostingintegratie maken voor meer informatie over het maken van een aangepaste Aspire hostingintegratie.
Client-integraties
Client integraties koppelen clientbibliotheken aan afhankelijkheidsinjectie (DI), het configuratieschema definiëren en statuscontroles toevoegen, tolerantieen telemetrie indien van toepassing.
Aspire clientintegratiebibliotheken worden voorafgegaan door Aspire. en bevatten vervolgens de volledige pakketnaam waarmee ze zijn geïntegreerd, zoals Aspire.StackExchange.Redis.
Deze pakketten configureren bestaande clientbibliotheken om verbinding te maken met hostingintegraties. Ze breiden de IHostApplicationBuilder interface uit waarmee clientverbruikende projecten, zoals uw web-app of API, de verbonden resource kunnen gebruiken. De officiële NuGet-pakketten voor clientintegratie zijn gelabeld met aspire, integrationen client. Naast de officiële clientintegraties heeft de community clientintegraties gemaakt voor verschillende services en platforms als onderdeel van de Community Toolkit.
Belangrijk
Aspire integraties vereisen IHostApplicationBuilder en zijn niet compatibel met HostingStartup implementaties, die alleen toegang bieden tot IWebHostBuilder. Als u HostingStartup gebruikt voor modulaire configuratie, raadpleeg dan dat HostingStartup niet wordt ondersteund met Aspire integraties voor migratierichtlijnen.
Zie Aangepaste clientintegraties maken voor meer informatie over het maken van een aangepaste Aspire clientintegratie.
Relatie tussen hosting en clientintegraties
Hosting- en clientintegraties zijn het beste wanneer ze samen worden gebruikt, maar niet gekoppeld en kunnen afzonderlijk worden gebruikt. Sommige hostingintegraties hebben geen bijbehorende clientintegratie. Configuratie is wat ervoor zorgt dat de hostingintegratie werkt met de clientintegratie.
Client integraties zijn .NET-specifiek en bieden handige en op meningen gebaseerde manieren om .NET toepassingen te configureren. U kunt echter hostingintegraties gebruiken zonder clientintegraties voor niet-toepassingen.NET of wanneer u verbindingen liever handmatig configureert. In deze scenario's biedt de hostingintegratie nog steeds de infrastructuur en maakt de verbindingsgegevens beschikbaar via omgevingsvariabelen die elke toepassingstechnologie kan gebruiken.
Bekijk het volgende diagram waarin de relatie tussen hosting en clientintegraties wordt weergegeven:
Het AppHost-project is waar hostingintegraties worden gebruikt. Configuratie, met name omgevingsvariabelen, wordt geïnjecteerd in projecten, uitvoerbare bestanden en containers, waardoor clientintegraties verbinding kunnen maken met de hostingintegraties.
Integratie functies
Wanneer u een clientintegratie aan een project in uw Aspire oplossing toevoegt, worden de standaardinstellingen van de service automatisch toegepast op dat project. Dit betekent dat er naar het project servicestandaarden wordt verwezen en de AddServiceDefaults extensiemethode wordt aangeroepen. Deze standaardinstellingen zijn ontworpen om goed te werken in de meeste scenario's en kunnen indien nodig worden aangepast. De volgende servicestandaardinstellingen worden toegepast:
waarneembaarheid en telemetrie: hiermee worden configuraties voor logboekregistratie, tracering en metrische gegevens automatisch ingesteld:
- Logboekregistratie: een techniek waarbij code wordt geïnstrueerd om logboeken te produceren van interessante gebeurtenissen die plaatsvonden tijdens het uitvoeren van het programma.
- Tracering: een speciale vorm van logboekregistratie waarmee u fouten en prestatieproblemen kunt lokaliseren binnen toepassingen die zijn gedistribueerd over meerdere computers of processen.
- metrische gegevens: numerieke metingen die in de loop van de tijd zijn vastgelegd om de prestaties en status van toepassingen te bewaken. Metrische gegevens worden vaak gebruikt om waarschuwingen te genereren wanneer potentiële problemen worden gedetecteerd.
Gezondheidscontroles: biedt HTTP-eindpunten die basisinformatie over de beschikbaarheid en status van een applicatie verschaffen. Statuscontroles worden gebruikt om beslissingen te beïnvloeden die worden genomen door containerorchestrators, load balancers, API-gateways en andere beheerservices.
Tolerantie: de mogelijkheid van uw systeem om te reageren op fouten en nog steeds functioneel te blijven. Veerkracht gaat verder dan het enkel voorkomen van fouten; het omvat ook het herstellen en reconstrueren van uw cloudeigen omgeving naar een gezonde staat.
Begrijp methoden voor hostintegratie-uitbreidingen
Aspire hosting-integraties bieden uitbreidingsmethoden die beginnen met ofwel Add, of With. Deze methoden voldoen aan het volgende patroon:
-
Add*methoden:Add*methoden maken en registreren nieuwe resources binnen de AppHost en retourneren eenIResourceBuilder<TResource>, waarbijTResourcehet concreet toegevoegde resourcetype is. Hiermee kunt u naadloze configuratie voortzetten op de geretourneerde bouwer. Als u bijvoorbeeld AddAzureServiceBus aanroept, wordt eenIResourceBuilder<AzureServiceBusResource>geretourneerd, en als u vervolgens AddServiceBusQueue op die naamruimtebouwer aanroept, wordt eenIResourceBuilder<AzureServiceBusQueueResource>geretourneerd. Dit patroon modelleert bovenliggende en onderliggende relaties (bijvoorbeeld een Service Bus-naamruimte en de bijbehorende wachtrijen of onderwerpen) met behoud van een consistente Fluent Builder-API. -
With*methoden: GebruikWith*methoden om een bestaande resource te configureren of te verbeteren. Deze methoden retourneren doorgaans hetzelfde objecttype als het ouderobject, zodat u aanvullende configuratie-aanroepen kunt ketenen.
Belangrijk
Wanneer u methoden gebruikt Add , moet u ervoor zorgen dat u het juiste resourceobject doorgeeft aan uw clientintegratie. Het doorgeven van het verkeerde object kan leiden tot onjuist geconfigureerde verbindingen of runtimefouten.
Houd rekening met deze code:
var serviceBus = builder.AddAzureServiceBus(name: "serviceBus")
.AddServiceBusTopic(name: "messagetopic");
var apiService = builder.AddProject<Projects.servicebusexp_ApiService>("apiservice")
.WithHttpHealthCheck("/health")
.WithReference(serviceBus);
// The serviceBus is an IResourceBuilder<AzureServiceBusTopicResource> type
U kunt verwachten dat serviceBus de Azure Service Bus resource vertegenwoordigt, maar omdat u AddServiceBusTopic op dezelfde regel hebt aangeroepen, is serviceBus een Azure Service Bus onderwerpresource. Plaats AddServiceBusTopic op een aparte regel om dit resultaat te voorkomen.
var serviceBus = builder.AddAzureServiceBus(name: "serviceBus");
var topic = serviceBus.AddServiceBusTopic(name: "messagetopic");
var apiService = builder.AddProject<Projects.servicebusexp_ApiService>("apiservice")
.WithHttpHealthCheck("/health")
.WithReference(serviceBus);
// The serviceBus is an IResourceBuilder<AzureServiceBusResource> type
U kunt er nu voor kiezen om de resource aan te reiken die het project nodig heeft. Ofwel, zoals in het voorbeeld, de Service Bus-resource of de topicresource.
Dit onderscheid helpt u de infrastructuur van uw toepassing nauwkeurig te modelleren en ervoor te zorgen dat clientintegraties de juiste verbindingsgegevens ontvangen.
Overwegingen voor versiebeheer
Hosting en clientintegraties worden elke release bijgewerkt om de nieuwste stabiele versies van afhankelijke resources te bereiken. Wanneer containerimages worden geüpdatet met nieuwe versies, worden de hostingsintegraties geüpdatet naar deze nieuwe versies. Wanneer een nieuwe NuGet-versie beschikbaar is voor een afhankelijke clientbibliotheek, wordt de bijbehorende clientintegratie bijgewerkt naar de nieuwe versie. Dit zorgt ervoor dat de nieuwste functies en beveiligingsupdates beschikbaar zijn voor toepassingen. Het Aspire updatetype (groot, klein, patch) duiden niet per se het type update in afhankelijke bronnen aan. Zo nodig kan een nieuwe primaire versie van een afhankelijke resource worden bijgewerkt in een Aspire patchrelease.
Wanneer belangrijke wijzigingen die fouten veroorzaken in afhankelijke resources plaatsvinden, kunnen integraties tijdelijk worden gesplitst in versieafhankelijke pakketten om het bijwerken van de wijziging die fouten veroorzaken te vereenvoudigen. Zie het eerste voorbeeld van een dergelijke belangrijke wijzigingvoor meer informatie.
Officiële integraties
Aspire biedt veel integraties om u te helpen bij het bouwen van cloudtoepassingen. Deze integraties zijn ontworpen om naadloos te werken met de Aspire AppHost- en clientbibliotheken. In de volgende secties worden cloudagnostische, Azure-specifieke, Amazon Web Services (AWS) en Community Toolkit-integraties beschreven.
Cloudagnostische integraties
De volgende sectie bevat informatie over cloudagnostische Aspire integraties met koppelingen naar hun respectieve documenten en NuGet-pakketten en biedt een korte beschrijving van elke integratie.
| Integratiedocumenten en NuGet-pakketten | Beschrijving |
|---|---|
|
-
Meer informatie: 📄 Apache Kafka - Hosting: 📦Aspire. Hosting.Kafka - Client: 📦Aspire. Confluent.Kafka |
Een bibliotheek voor het produceren en gebruiken van berichten van een Apache Kafka broker. |
|
-
Meer informatie: 📄 Dapr - Hosting: 📦Aspire. Gastvrijheid.Dapr - Client: n.v.t. |
Een bibliotheek voor modellering van Dapr als een Aspire bron. |
|
-
Meer informatie: 📄 Docker - Hosting: 📦Aspire. Gastvrijheid.Docker - Client: n.v.t. |
Een bibliotheek voor het uitrollen van Aspire toepassingen met behulp van Compose Docker. |
|
-
Meer informatie: 📄 Elasticsearch - Hosting: 📦Aspire. Gastvrijheid.Elasticsearch - Client: 📦Aspire. Elastic.Clients.Elasticsearch |
Een bibliotheek voor toegang tot Elasticsearch databases. |
|
-
Meer informatie: 📄 Keycloak - Hosting: 📦Aspire. Gastvrijheid.Keycloak - Client: 📦Aspire.Keycloak. Verificatie |
Een bibliotheek voor toegang tot Keycloak verificatie. |
|
-
Meer informatie: 📄 Milvus - Hosting: 📦Aspire. Gastvrijheid.Milvus - Client: 📦Aspire.Milvus.Client |
Een bibliotheek voor toegang tot Milvus databases. |
|
-
Meer informatie: 📄MongoDB stuurprogramma - Hosting: 📦Aspire. Gastvrijheid.MongoDB - Client: 📦Aspire.MongoDB. Stuurprogramma |
Een bibliotheek voor toegang tot MongoDB databases. |
|
-
Meer informatie: 📄 MySqlConnector- - Hosting: 📦Aspire. Hosting.MySql - Client: .📦Aspire MySqlConnector |
Een bibliotheek voor toegang tot MySqlConnector databases. |
|
-
Meer informatie: 📄 NATS - Hosting: 📦Aspire. Hosting.Nats - Client: 📦Aspire.NATS. Net |
Een bibliotheek voor toegang tot NATS messaging. |
|
-
Meer informatie: 📄Oracle - EF Core - Hosting: 📦Aspire. Gastvrijheid.Oracle - Client: 📦Aspire.Oracle. EntityFrameworkCore |
Een bibliotheek voor toegang tot Oracle databases met Entity Framework Core. |
|
-
Meer informatie: 📄 OpenAI - Hosting: 📦Aspire. Gastvrijheid.OpenAI - Client: .📦AspireOpenAI |
Een bibliotheek voor toegang tot OpenAI API's. |
|
-
Meer informatie: 📄 Orleans - Hosting: 📦Aspire. Gastvrijheid.Orleans - Client: n.v.t. |
Een bibliotheek voor het modelleren van Orleans als een Aspire bron. |
|
-
Meer informatie: 📄 Pomelo-MySQL - EF Core - Hosting: 📦Aspire. Hosting.MySql - Client: .📦Aspire Pomelo.EntityFrameworkCore.MySql |
Een bibliotheek voor toegang tot MySql-databases met Entity Framework Core. |
|
-
Meer informatie: 📄PostgreSQL - EF Core - Hosting: 📦Aspire. Gastvrijheid.PostgreSQL - Client: 📦Aspire. Npgsql.EntityFrameworkCore.PostgreSQL |
Een bibliotheek voor toegang tot PostgreSQL databases met behulp van Entity Framework Core. |
|
-
Meer informatie: 📄 PostgreSQL - Hosting: 📦Aspire. Gastvrijheid.PostgreSQL - Client: .📦Aspire Npgsql |
Een bibliotheek voor toegang tot PostgreSQL databases. |
|
-
Meer informatie: 📄 Qdrant - Hosting: 📦Aspire. Hosting.Qdrant - Client: 📦Aspire. Qdrant.Client |
Een bibliotheek voor toegang tot Qdrant--databases. |
|
-
Meer informatie: 📄 RabbitMQ - Hosting: 📦Aspire. Gastvrijheid.RabbitMQ - Client: 📦Aspire.RabbitMQ.Client |
Een bibliotheek voor toegang tot RabbitMQ. |
|
-
Meer informatie: 📄Redis gedistribueerd cachen - Hosting: 📦Aspire.Hosting.Redis, 📦Aspire.Hosting.Garnetof 📦Aspire.Hosting.Valkey - Client: 📦Aspire.StackExchange.Redis.GedistribueerdeCaching |
Een bibliotheek voor toegang tot Redis caches voor gedistribueerde caching. |
|
-
Meer informatie: 📄Redis Outputcaching - Hosting: 📦Aspire.Hosting.Redis, 📦Aspire.Hosting.Garnetof 📦Aspire.Hosting.Valkey - Client: 📦Aspire. StackExchange.Redis. OutputCaching- |
Een bibliotheek voor toegang tot Redis caches voor uitvoercaching. |
|
-
Meer informatie: 📄 Redis - Hosting: 📦Aspire.Hosting.Redis, 📦Aspire.Hosting.Garnetof 📦Aspire.Hosting.Valkey - Client: 📦Aspire. StackExchange.Redis |
Een bibliotheek voor toegang tot Redis caches. |
|
-
Meer informatie: 📄 Seq - Hosting: 📦Aspire. Gastvrijheid.Seq - Client: .📦AspireSeq |
Een bibliotheek voor loggen naar Seq. |
|
-
Meer informatie: 📄SQL Server - EF Core - Hosting: 📦Aspire. Hosting.SqlServer - Client: 📦Aspire. Microsoft.EntityFrameworkCore.SqlServer |
Een bibliotheek voor toegang tot SQL Server databases met behulp van EF Core. |
|
-
Meer informatie: 📄 SQL Server - Hosting: 📦Aspire. Hosting.SqlServer - Client: 📦Aspire. Microsoft.Data.SqlClient |
Een bibliotheek voor toegang tot SQL Server databases. |
Voor meer informatie over werken met Aspire-integraties in Visual Studio, zie Visual Studio-hulpprogramma's.
Azure-integraties
Azure-integraties configureren toepassingen voor het gebruik van Azure resources. Deze hostingintegraties zijn beschikbaar in de Aspire.Hosting.Azure.* NuGet-pakketten, terwijl hun clientintegraties beschikbaar zijn in de Aspire.* NuGet-pakketten:
Amazon Web Services (AWS) hosting integraties
| Integratiedocumenten en NuGet-pakketten | Beschrijving |
|---|---|
|
-
Meer informatie: 📄 AWS Hosting- - Hosting: 📦Aspire.Hosting.AWS- - Client: n.v.t. |
Een bibliotheek voor het modelleren AWS-resources. |
Zie GitHub: Aspirevoor meer informatie. Hosting.AWS-bibliotheek.
Kubernetes hostingintegraties
| Integratiedocumenten en NuGet-pakketten | Beschrijving |
|---|---|
|
-
Meer informatie: 📄Kubernetes hosting - Hosting: 📦Aspire. Gastvrijheid.Kubernetes - Client: n.v.t. |
Een bibliotheek voor het genereren van Kubernetes implementatiemanifesten van uw .NETAspire toepassingsmodel. |
Community Toolkit-integraties
Notitie
De Community Toolkit-integraties zijn communitygestuurd en onderhouden door de Aspire community. Deze integraties worden niet officieel ondersteund door het Aspire team.
| Integratiedocumenten en NuGet-pakketten | Beschrijving |
|---|---|
|
-
Meer informatie: 📄 Bun-hosting - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Bun - Client: n.v.t. |
Een hostingintegratie voor Bun-apps. |
|
-
Meer informatie: 📄Deno hosting - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Deno - Client: n.v.t. |
Een hostingintegratie voor Deno apps. |
|
-
Meer informatie: 📄 Go hosting - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Golang - Client: n.v.t. |
Een hostingintegratie voor Go-apps. |
|
-
Meer informatie: 📄 Java/Spring-hosting - Hosting: 📦 CommunityToolkit.Aspire.Hosting.Java- - Client: n.v.t. |
Een integratie voor het uitvoeren van Java-code in Aspire de lokale JDK of met behulp van een container. |
|
-
Meer informatie: 📄Node.js hostingextensies - Hosting: 📦 CommunityToolkit.Aspire. Hosting.NodeJs.Extensions - Client: n.v.t. |
Een integratie met enkele extra extensies voor het uitvoeren van Node.js-toepassingen |
|
-
Meer informatie: 📄 Ollama - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Ollama - Client: .📦Aspire CommunitToolkit.OllamaSharp |
Een Aspire onderdeel dat gebruikmaakt van de Ollama-container met ondersteuning voor het downloaden van een model bij het opstarten. |
|
-
Meer informatie: 📄 Meilisearch hosting - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Meilisearch - Client: .📦Aspire CommunitToolkit.Meilisearch |
Een onderdeel Aspire dat gebruikmaakt van de Meilisearch-container . |
|
-
Meer informatie: 📄 Rust-hosting - Hosting: 📦 CommunityToolkit.Aspire. Hosting.Rust - Client: n.v.t. |
Een hostingintegratie voor Rust-apps. |
|
-
Meer informatie: 📄 SQL Database-projecten die als host fungeren voor - Hosting: 📦 CommunityToolkit.Aspire. Hosting.SqlDatabaseProjects - Client: n.v.t. |
Een Aspire hostingintegratie voor SQL Database Projects. |
|
-
Meer informatie: 📄 RavenDB - Hosting: 📦 CommunityToolkit.Aspire. Hosting.RavenDB - Client: .📦Aspire CommunityToolkit.RavenDB.Client |
Een Aspire onderdeel dat gebruikmaakt van de RavenDB-container . |
Zie Aspire Community Toolkit voor meer informatie.