Lägga till orkestrering i en befintlig .NET-app
.NET Aspire kan delas upp i lösningar för tre problem som står inför moderna molnbaserade appar. Dessa är:
- Hantera komplexiteten i orkestreringen mellan mikrotjänster.
- Förenkla hur dina mikrotjänster använder komponenter via NuGet-paket.
- Stöd för utvecklarhastighet genom verktyg och mallar.
I den här lektionen kan du se hur användning av .NET Aspire-orkestrering medför fördelar för dina befintliga molnbaserade appar. Se sedan hur du registrerar din app i .NET Aspire-orkestrering och undersöker de ändringar som gjorts i din lösning.
Fördelar med .NET Aspire-orkestrering
Orkestrering är samordning och hantering av de olika tjänsterna i en molnbaserad app. .NET Aspire tillhandahåller abstraktioner för att hantera lösningens tjänstidentifiering, miljövariabler och containerkonfigurationer. Dessa abstraktioner ger också konsekventa installationsmönster för appar med många komponenter och tjänster.
.NET Aspire har tre grundläggande beräkningstyper som stöds med orkestrering:
- ProjectResource: Ett .NET-projekt, till exempel ASP.NET Core-webbappar.
- ContainerResource: En containeravbildning, till exempel en Docker-avbildning som innehåller Redis.
- ExecutableResource: En körbar fil.
Jämför .NET Aspire med hur du hanterar tjänstidentifiering med Docker Compose. Docker Compose är utmärkt men börjar bli improduktiv när allt du behöver göra är att köra flera projekt eller körbara filer. Du måste skapa containeravbildningar, skapa YAML för att ansluta dem och sedan köra appar i containrar. Dessutom finns det miljövariabelersättningar (och inkluderar) och ingen IntelliSense, och det är svårt att avgöra exakt vad som körs och varför. Felsökning kan också vara svårt.
Konfiguration via deklarativ kod är bättre. Med hjälp av .NET Aspire behöver du inte lära dig något utöver det du redan vet. .NET Aspire är en bättre upplevelse som är enkel att komma igång med och som skalar upp till en orkestrerare som Docker Compose med ett riktigt programmeringsspråk.
.NET Aspire-orkestrering stöder även din utveckling på följande sätt:
- Appsammansättning: .NET Aspire anger de .NET-projekt, containrar, körbara filer och molnresurser som utgör programmet.
- Tjänstidentifiering och anslutningssträng hantering: Appvärden hanterar inmatning av rätt anslutningssträng och identifieringsinformation för tjänsten för att förenkla utvecklarupplevelsen.
Registrera en befintlig app i .NET Aspire-orkestrering
Visual Studio innehåller menyer för att registrera ett befintligt projekt i .NET Aspire-orkestrering.
Första gången du lägger till orkestrering i lösningen frågar en dialogruta efter projektnamnprefixet och förklarar att projekten .NET Aspire AppHost och ServiceDefaults läggs till. När du lägger till fler projekt i en redan orkestrerad lösning meddelar dialogrutan dig att AppHost-projektet har uppdaterats för att inkludera dessa projekt.
Om du skapar ett nytt projekt frågar Visual Studio under det nya projektarbetsflödet om du vill ta med i .NET Aspire-orkestrering.
Ändringar som Aspire gör i en befintlig lösning
När du lägger till .NET Aspire-orkestrering i din lösning sker följande ändringar:
- Ett AppHost-projekt läggs till. Projektet innehåller orkestreringskoden. Den blir startpunkten för din app och ansvarar för att starta och stoppa appen. Den hanterar även tjänstidentifiering och anslutningssträng hantering.
- Ett ServiceDefaults-projekt läggs till. Projektet konfigurerar OpenTelemetry, lägger till standardslutpunkter för hälsokontroll och aktiverar tjänstidentifiering via
HttpClient
. - Lösningens standardstartprojekt ändras till AppHost.
- Beroenden för de projekt som registrerats i orkestrering läggs till i AppHost-projektet .
- .NET Aspire-instrumentpanelen läggs till i din lösning, vilket gör det möjligt för genvägar att komma åt alla projektslutpunkter i din lösning.
- Instrumentpanelen lägger till loggar, spårningar och mått för projekten i din lösning.
Om du lägger till orkestrering i ett webbappsprojekt lägger .NET Aspire automatiskt till en referens till ServiceDefaults-projektet . Sedan gör den följande ändringar i koden i Program.cs:
- Lägger till ett anrop till
AddServiceDefaults
som aktiverar standardidentifieringen OpenTelemetry, meter och service. - Lägger till ett anrop till
MapDefaultEndpoints
som aktiverar standardslutpunkterna, till exempel/health
och/alive
.