Meer informatie over .NET Aspire-onderdelen

Voltooid

Hoewel elke microservice in uw app waarschijnlijk uniek is, hebben ze vaak vergelijkbare vereisten voor back-upservices, zoals databases en caches. Het kan lastig zijn om code te schrijven in elke microservice die interfaces met deze backing-services uitvoert. In .NET Aspire wordt die code gereduceerd naarmate u in plaats daarvan een .NET Aspire-onderdeel toevoegt. Er zijn ingebouwde onderdelen voor veel veelgebruikte back-upvereisten die u waarschijnlijk nodig hebt in microservices.

Stel dat u voor een buitenkleding- en apparatuurbedrijf werkt. Uw ontwikkelteams zijn begonnen met het ontwerpen van hun microservices voor de nieuwe eShop-web-app. Elke microservice heeft mogelijk services nodig, zoals databases, berichtenservices en caches. U wilt evalueren hoe .NET Aspire kan helpen om met deze services te communiceren.

In deze les leert u meer over de onderdelen die zijn opgenomen in .NET Aspire out-of-the-box en hoe u het beste onderdeel voor uw microservice kiest.

.NET Aspire-onderdelen gebruiken

Elk .NET Aspire-onderdeel is een NuGet-pakket en u kunt het toevoegen aan uw project met behulp van nuGet-pakketbeheer. In Visual Studio is er een nieuw menu-item add > .NET Aspire component. Met deze actie wordt pakketbeheer weergegeven met een filter dat is toegepast om alleen .NET Aspire-onderdelen weer te geven:

Schermopname van NuGet-pakketbeheer in Visual Studio met .NET Aspire-onderdelen.

Notitie

Verderop in deze module ziet u hoe u deze hulpprogramma's voor onderdelen gebruikt in de oefening.

Visual Studio Code met de C# Dev Kit-extensie biedt ook ondersteuning voor het toevoegen van .NET Aspire-onderdelen.

Schermopname van het opdrachtenpalet van Visual Studio Code met .NET Aspire-projecttypen.

U kunt ook .NET CLI.NET-onderdelen toevoegen. Voorbeeld:

dotnet add package Aspire.StackExchange.Redis --prerelease

In het AppHost-project moet u het onderdeel registreren en gebruiken in de projecten die het noemen:

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

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

Vervolgens kunt u afhankelijkheidsinjectie gebruiken om deze toe te voegen aan het verbruikende project:

build.AddRedisClient("cache");

Andere gebruikscode is afhankelijk van het onderdeel dat u gebruikt.

Notitie

Elk .NET Aspire-onderdeeltype heeft meestal een equivalent hostingpakket. Hostingpakketten configureren de resources en afhankelijkheden die de app nodig heeft en u installeert ze in het AppHost-project , niet het verbruikende project.

Databaseonderdelen

In cloudeigen apps is elke microservice verantwoordelijk voor het opslaan van eigen gegevens en heeft mogelijk een database met gestructureerde of semi-gestructureerde gegevens nodig om van en naar te schrijven. Aangezien elke microservice onafhankelijk is ontwikkeld, kan het zijn dat verschillende databasesystemen worden gebruikt door verschillende onderdelen van uw volledige toepassing.

.NET Aspire bevat onderdelen voor de volgende relationele databaseservers:

  • PostgreSQL: een populaire opensource-databaseserver met een implementatie van de Structured Query Language (SQL).
  • MySQL: Een andere opensource-SQL-databaseserver.
  • SQL Database: het SQL-databasesysteem van Microsoft.

Notitie

Het .NET Aspire SQL Database-onderdeel kan werken met Microsoft SQL Server of Azure SQL Database. Dit is een implementatie van SQL Server in de Azure-cloud. Op dezelfde manier bevat Azure PaaS-implementaties (Platform-as-a-Service) van PostgreSQL en MySQL. De locatie waar u een database uitvoert, is een beslissing voor elk microservicearchitectuurteam, maar .NET Aspire-onderdelen kunnen veel cloudlocaties ondersteunen en geen specifieke hostingservice afdwingen.

Als u met semi-gestructureerde gegevens wilt werken, bevat .NET Aspire ondersteuning voor deze NoSQL-systemen:

  • MongoDB: Een platformoverschrijdende, documentgerichte NoSQL-databaseserver.
  • Azure Cosmos DB: het flexibele NoSQL-databasesysteem van Microsoft, gehost in Azure.

Opslagonderdelen

In .NET Aspire worden de opslagonderdelen geleverd voor microservices die bestanden, gegevens of berichten moeten opslaan in Azure Storage-accounts. Er is één onderdeel voor elk van de drie services in Azure Storage. Kies uw onderdeel op basis van wat u wilt doen met Azure Storage:

  • Azure Blob Storage: gebruik deze service om blobbestanden op te slaan en op te halen, zoals afbeeldingen en video's.
  • Azure Table Storage: gebruik deze service om rijen op te slaan en op te halen in semi-structuurgegevenstabellen.
  • Azure Queue Storage: gebruik deze service om berichten toe te voegen aan wachtrijen voor distributie aan andere abonnerende microservices.

Berichtenonderdelen

Een manier om de betrouwbaarheid en flexibiliteit van communicatie tussen microservices in een cloudeigen app te verbeteren, is door berichtenoplossingen te gebruiken die wachtrijen, onderwerpen en abonnementen bieden in plaats van directe communicatie. .NET Aspire bevat onderdelen voor de volgende drie berichtenservices. Kies het onderdeel op basis van de berichtenbroker die uw ontwikkelaar wilt gebruiken:

  • RabbitMQ: Deze berichtenbroker wordt veel gebruikt, opensource en ondersteunt verschillende berichtenprotocollen voor het bieden, wachtrijen, onderwerpen en abonnementen.
  • Apache Kafka: deze service verwerkt stromen gebeurtenissen, waaronder berichten, en bevat de Kafka Connect-API voor het importeren en exporteren van gegevens naar en van andere systemen.
  • Azure Service Bus: deze berichtenbroker wordt gehost in Azure en biedt wachtrijen en op abonnementen gebaseerde berichtdistributie.

Onderdelen opslaan in cache

Wanneer een microservice een aanvraag van een gebruiker of een andere microservice ontvangt, moet deze mogelijk een antwoord maken met behulp van gegevens van meerdere locaties of complexe bewerkingen. Deze bewerking kan tijd in beslag nemen. Door delen van dergelijke antwoorden in de cache op te slaan, kunt u later tijd besparen wanneer vergelijkbare of identieke aanvragen binnenkomen. Op deze manier optimaliseert caching de prestaties.

Een populaire cacheservice is Redis. Het heeft berichtbroker en in-memory databasefunctionaliteit, maar wordt meestal gebruikt voor het opslaan van reacties in webtoepassingen en -services. .NET Aspire heeft drie verschillende onderdelen die met Redis werken. Kies een onderdeel op basis van de cachetaak die u wilt bereiken in uw microservice:

  • Redis-onderdeel: gebruik dit onderdeel als u Redis wilt gebruiken als een in-memory database.
  • Redis Output Caching-onderdeel: gebruik dit onderdeel als u volledige HTTP-antwoorden in de cache wilt opslaan, zoals volledige webpagina's.
  • Redis Distributed Cache-onderdeel: gebruik dit onderdeel als u één cache wilt maken voor meerdere microservices in uw app.

Beveiliging

In een cloudeigen toepassing is gegevensbeveiliging vaak een bedrijfskritiek onderwerp. Omdat uw klanten u mogelijk vertrouwen met persoonlijke en gevoelige gegevens, moet u ervoor zorgen dat deze zijn versleuteld en beschermd tegen onderschepping of manipulatie. Voor digitale handtekeningen en versleuteling moet u persoonlijke sleutels opslaan en ophalen voor ontsleuteling. Azure Key Vault is één locatie waar u veilig sleutels en andere geheimen, zoals wachtwoorden en certificaten, kunt opslaan.

.NET Aspire bevat het Azure Key Vault-onderdeel, zodat u eenvoudig geheimen kunt opslaan en ophalen in Azure Key Vault.

Meer informatie