Lär dig mer om .NET Aspire-komponenter

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 eftersom du i stället lägger till en .NET Aspire-komponent. Det finns inbyggda komponenter 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 har börjat 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 komponenter som ingår i .NET Aspire out-of-the-box och hur du väljer den bästa komponenten för din mikrotjänst.

Använda .NET Aspire-komponenter

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

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

Kommentar

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

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

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

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

dotnet add package Aspire.StackExchange.Redis --prerelease

I AppHost-projektet måste du registrera komponenten 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 beroendeinmatning för att lägga till den i det förbrukande projektet:

build.AddRedisClient("cache");

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

Kommentar

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

Databaskomponenter

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 komponenter 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.

Kommentar

Komponenten .NET Aspire SQL Database 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-komponenter 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.

Lagringskomponenter

I .NET Aspire tillhandahålls lagringskomponenterna för mikrotjänster som behöver lagra filer, data eller meddelanden i Azure Storage-konton. Det finns en komponent för var och en av de tre tjänsterna i Azure Storage. Välj din komponent 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.

Meddelandekomponenter

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 som tillhandahåller köer, ämnen och prenumerationer i stället för direktkommunikation. .NET Aspire innehåller komponenter för följande tre meddelandetjänster. Välj komponenten 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: Den här meddelandekötjänsten finns i Azure och tillhandahåller köer och prenumerationsbaserad meddelandedistribution.

Cachelagringskomponenter

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 komponenter som fungerar med Redis. Välj en komponent baserat på cachelagringsuppgiften som du vill uppnå i mikrotjänsten:

  • Redis-komponent: Använd den här komponenten när du vill använda Redis som en minnesintern databas.
  • Redis Utdatacachelagringskomponent: Använd den här komponenten när du vill cachelagra fullständiga HTTP-svar, till exempel hela webbsidor.
  • Redis Distributed Cache-komponent: Använd den här komponenten 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-komponenten så att du enkelt kan lagra och hämta hemligheter i Azure Key Vault.

Läs mer