Läs mer om .NET Aspire-integreringar

Slutförd

Även om varje mikrotjänst i din app sannolikt kommer att vara unik, har de ofta liknande krav för säkerhetskopiering av tjänster som databaser och cacheminnen. Det kan vara svårt att skriva kod i varje mikrotjänst som samverkar med dessa stödtjänster. I .NET Aspire minskas koden när du lägger till en .NET Aspire-integrering i stället. Det finns inbyggda integreringar för många vanliga säkerhetskopieringskrav som du sannolikt behöver i mikrotjänster.

Tänk dig att du arbetar för ett kläd- och utrustningsföretag utomhus. Dina utvecklingsteam börjar utforma sina mikrotjänster för den nya eShop-webbappen. Varje mikrotjänst kan behöva tjänster som databaser, meddelandetjänster och cacheminnen. Du vill utvärdera hur .NET Aspire kan hjälpa dig att interagera med dessa tjänster.

I den här lektionen får du lära dig mer om de integreringar som ingår i .NET Aspire och hur du väljer den bästa integreringen för din mikrotjänst.

Använda .NET Aspire-integreringar

Varje .NET Aspire-integrering är ett NuGet-paket och du kan lägga till det i projektet med hjälp av NuGet-pakethanteraren. I Visual Studio finns det ett nytt Lägg till > .NET Aspire-paket menyalternativet. Den här åtgärden visar pakethanteraren med ett filter som endast används för att visa .NET Aspire-integreringar:

Skärmbild som visar NuGet-pakethanteraren i Visual Studio som visar .NET Aspire-integreringar.

Not

Du får se hur du använder de här integreringsverktygen i övningen senare i den här modulen.

Visual Studio Code med tillägget C# Dev Kit stöder också tillägg av .NET Aspire-integreringar.

Skärmbild som visar Visual Studio Code-kommandopaletten med .NET Aspire-projekttyper.

Alternativt kan .NET CLI lägga till .NET-integreringar. Till exempel:

dotnet add package Aspire.StackExchange.Redis --prerelease

I projektet AppHost måste du registrera integreringen och använda den i de projekt som anropar den:

var cache = builder.AddRedis("cache");

builder.AddProject<Projects.AspireSample_Web>("webfrontend")
    .WithReference(cache);

Sedan kan du använda beroendeinjektion för att lägga till det i det projekt som använder det.

build.AddRedisClient("cache");

Annan användningskod varierar beroende på vilken integrering du använder.

Notera

Varje .NET Aspire-integreringstyp har vanligtvis ett motsvarande värdpaket. Värdpaket konfigurerar de resurser och beroenden som appen kräver och du installerar dem i AppHost- projekt, inte det förbrukande projektet.

Databasintegreringar

I molnbaserade appar ansvarar varje mikrotjänst för att lagra sina egna data och kan behöva en databas med strukturerade eller halvstrukturerade data att läsa från och skriva till. Eftersom varje mikrotjänst utvecklas oberoende av varandra kan det hända att flera olika databassystem används av olika delar av hela programmet.

.NET Aspire innehåller integreringar för följande relationsdatabasservrar:

  • PostgreSQL: En populär databasserver med öppen källkod med en implementering av SQL (Structured Query Language).
  • MySQL: En annan SQL-databasserver med öppen källkod.
  • SQL Database: Microsofts SQL-databassystem.

Anteckning

.NET Aspire SQL Database-integreringen kan fungera med Microsoft SQL Server eller Azure SQL Database, som är en implementering av SQL Server i Azure-molnet. På samma sätt inkluderar Azure PaaS-implementeringar (Platform-as-a-Service) av PostgreSQL och MySQL. Platsen där du kör en databas är ett beslut för varje mikrotjänstarkitekturteam, men .NET Aspire-integreringar kan stödja många molnplatser och inte framtvinga någon viss värdtjänst.

Om du vill arbeta med halvstrukturerade data innehåller .NET Aspire stöd för dessa NoSQL-system:

  • MongoDB: En plattformsoberoende, dokumentorienterad NoSQL-databasserver.
  • Azure Cosmos DB: Microsofts flexibla NoSQL-databassystem som finns i Azure.

Lagringsintegrationer

I .NET Aspire tillhandahålls lagringsintegreringarna för mikrotjänster som behöver lagra filer, data eller meddelanden i Azure Storage-konton. Det finns en integrering för var och en av de tre tjänsterna i Azure Storage. Välj din integrering enligt vad du vill göra med Azure Storage:

  • Azure Blob Storage-: Använd den här tjänsten för att lagra och hämta blobfiler, till exempel bilder och videor.
  • Azure Table Storage-: Använd den här tjänsten för att lagra och hämta rader i halvstrukturerade datatabeller.
  • Azure Queue Storage-: Använd den här tjänsten för att lägga till meddelanden i köer för distribution till andra prenumererande mikrotjänster.

Meddelandeintegreringar

Ett sätt att förbättra tillförlitligheten och flexibiliteten i kommunikationen mellan mikrotjänster i en molnbaserad app är att använda meddelandelösningar. I stället för direktkommunikation tillhandahåller de här lösningarna köer, ämnen och prenumerationer. .NET Aspire innehåller integreringar för följande tre meddelandetjänster. Välj integreringen baserat på den meddelandekö som utvecklaren vill använda:

  • RabbitMQ: Den här meddelandeköen används ofta med öppen källkod och har stöd för flera meddelandeprotokoll för att tillhandahålla köer, ämnen och prenumerationer.
  • Apache Kafka: Den här tjänsten bearbetar strömmar av händelser, som kan innehålla meddelanden, och innehåller Kafka Connect-API:et för att importera och exportera data till och från andra system.
  • Azure Service Bus-: Denna meddelandemäklare är värd i Azure och erbjuder köer och prenumerationsbaserad meddelandedistribution.

Cacheintegrationer

När en mikrotjänst tar emot en begäran från en användare eller en annan mikrotjänst kan den behöva konstruera ett svar med hjälp av data från flera platser eller komplexa åtgärder. Den här åtgärden kan ta tid. Genom att cachelagra delar av sådana svar kan du spara tid senare när liknande eller identiska begäranden tas emot. På så sätt optimerar cachelagring prestanda.

En populär cachetjänst är Redis. Den har funktioner för meddelandeköer och minnesintern databas, men används oftast för att cachelagrar svar i webbprogram och tjänster. .NET Aspire har tre olika integreringar som fungerar med Redis. Välj en integrering baserat på den cachelagringsuppgift som du vill uppnå i din mikrotjänst:

  • Redis-integrering: Använd den här integreringen när du vill använda Redis som en minnesintern databas.
  • Redis Utdatacachelagringsintegrering: Använd den här integreringen när du vill cachelagra fullständiga HTTP-svar, till exempel hela webbsidor.
  • Redis Distributed Cache-integrering: Använd den här integreringen när du vill skapa en enda cache för flera mikrotjänster i din app.

Säkerhet

I ett molnbaserat program är datasäkerhet ofta ett affärskritiskt ämne. Eftersom dina kunder kanske litar på dig med personliga och känsliga data måste du se till att de är krypterade och skyddade mot avlyssning eller manipulering. Digitala signaturer och kryptering kräver att du lagrar privata nycklar och hämtar dem för dekryptering. Azure Key Vault är en plats där du på ett säkert sätt kan lagra nycklar och andra hemligheter som lösenord och certifikat.

.NET Aspire innehåller Azure Key Vault-integreringen så att du enkelt kan lagra och hämta hemligheter i Azure Key Vault.

Lära sig mer