.NET Aspire

Onlangs werd .NET Aspire “General Available” (GA), ofwel algemeen beschikbaar. Dit betekent dat ontwikkelaars vanaf nu kunnen gaan werken met .NET Aspire via Visual Studio 2022 17.10+, de .NET CLI of Visual Studio workflows. Deze stack staat bekend om ondersteuning bij het stroomlijnen van .NET cloud-native services. Meer weten over de functies, belangrijkste features en hoe je er als developer mee begint? Lees dan verder!

Wat is .NET Aspire?

.NET Aspire bestaat uit tooling en setup die ondersteunen bij het ontwikkelen en configureren van .NET cloud-native applicaties. Met de lancering van .NET 8 in november 2023 heeft Microsoft deze stack aangekondigd. .NET Aspire versimpelt het lokaal development voor ontwikkelaars. Door tools, project templates en NuGet pakketten bij elkaar te brengen, kunnen gedistribueerde applicaties in .NET makkelijker worden gebouwd. Hiermee kan een developer zowel bestaande applicaties optimaliseren als nieuwe .NET applicaties uitrollen naar productie in de Cloud.

Om te bepalen hoe gezond een service is, gebruikt .NET Aspire telemetriegegevens. Hiermee worden niet alleen het aantal behandelde aanvragen, maar ook specificaties als doorlooptijd van een aanvraag en de hoeveelheid opgetreden fouten gemeten. Telemetry omvat logboeken, metrische gegevens en traceringen. Samen zorgt het ervoor dat fouten in bestaande of nieuwe cloud-native applicaties effectief en snel worden opgespoord.

Hoe start je met deze stack?

Vereiste installaties

Om te starten met het gebruik van .NET Aspire, moet op de betreffende device een aantal lokale applicaties worden geïnstalleerd:

  • .NET 8.0
  • .NET Aspire workload. Te installeren via .NET CLI of Visual Studio
  • Een Open Container Initiative (OCI) compliant Container runtime. Denk bijvoorbeeld aan Podman of Docker Desktop. .NET Aspire applicaties zijn ontwikkeld om op Containers te runnen. Docker Desktop wordt het meeste gekozen, Podman is een open-source alternatief.
  • Een Integrated Developer Environment (IDE) of code editor. Visual Studio 2022 versie 17.10+ of Visual Studio Code (met de C# Dev Kit Extension) zijn goede opties.

Installatie van .NET Aspire

Wanneer alle benodigde applicaties voor het gebruik van .NET Aspire zijn geïnstalleerd op de lokale omgeving, kan de stack worden geïnstalleerd via één van de de volgende opties:

  1. .NET CLI. De workload kan worden geïnstalleerd door de volgende command in je terminal (MacOS) of PowerShell (Windows) te runnen: Dotnet workload update en vervolgens dotnet workload install aspire.
  2. Visual Studio 2022 17.10+. .NET Aspire is al onderdeel van het ASP .NET en web development workload van versie 17.10 en hoger. Je vindt het in de aanbevolen componenten. Dus: wanneer je Visual Studio 2022 17.10 of hoger hebt geïnstalleerd, heb je direct toegang tot het ASP .NET and web development component.
  3. Visual Studio Code, met de C# Dev Kit. Voor Visual Studio Code dien je .NET Aspire te installeren via .NET CLI zoals in punt 1 is beschreven. Daarna kan je de C# Dev Kit uitbreiding toevoegen aan de Visual Studio Code. Dit bevat de laatste versie.

User Interface: het dashboard

Om laagdrempelig te kunnen starten met de stack, is er het .NET Aspire Dashboard. Dit dashboard is geïntegreerd in de AppHost en is een uitgebreid hulpprogramma voor het inzien van logregels (door middel van OpenTelemetry) van applicaties die binnen de Aspire-omgeving draaien. Het dashboard geeft toegang tot verschillende aspecten van de applicatie. Denk hierbij aan traceringen, logboeken en configuraties van de omgeving. Dit is allemaal realtime. Het dashboard is ook ontworpen om de lokale ontwikkelervaring te optimaliseren voor developers. Het geeft namelijk een duidelijk overzicht van de status en structuur van de applicatie.

Implementatie van een .NET Aspire toepassing

Om te beginnen met .NET Aspire applicaties, zijn .NET applicaties en – configuraties benodigd die kunnen worden uitgerold naar de gewenste Cloudomgeving. .NET Aspire hanteert een sterke Container-first mentaliteit. Dit betekent dat de .NET SDK-native Container builds een waardevol hulpmiddel moeten zijn voor het publiceren van de apps naar Containers. Hiervoor is het Application Model, dat hulp biedt bij het implementeren van applicaties naar hun eindbestemming. Met behulp van Azure Container Apps kunnen .NET Aspire applicaties op een effectieve en snelle manier naar Azure worden overgezet. De Azure Developer CLI en .NET Aspire kan je combineren. Zo detecteer en begrijp je snel een .NET Aspire-omgeving en kan je snel aan de slag met de implementatie van Azure resources.

En nu? Bouw je je eerste .NET Aspire app. Als je dit niet allang hebt gedaan ;).

Wat zijn key features van .NET Aspire?

Scalability en resilience

.NET Aspire is een goed voorbeeld van een cloud-native app die optimaal gebruikmaakt van de schaalbaarheid en weerbaarheid van Cloud-infrastructures. In het geval van schaalbaarheid betekent dit dat de Cloud in staat is om IT-resources op- of af te schalen naar de benodigde en gewenste hoeveelheid, aangepast aan de hoeveelheid verkeer. Denk bijvoorbeeld aan het openen van een spitsstrook om files of langzaam verkeer te verminderen. Weerbaarheid houdt in dat de omgeving bestand is tegen verstoringen of deze razendsnel kan herstellen. De nodes waar de applicatie gebruik van maakt, moeten communiceren over netwerkgrenzen om zo antwoorden te leveren aan gebruikers. Onder andere in deze actie worden scalability en resilience optimaal benut.

Observability

De applicaties van .NET Aspire zijn in de basis te observeren. Een hoge mate van observeerbaarheid betekent dat je met de juiste gegevens en de juiste weergave op het juiste moment kunt inzien hoe een oplossing tot stand komt. Met name tijdens een storing of uitval is dit relevant op basis van alle gegevens die in de apps worden verzameld.

Service Discovery

Het aanroepen van andere interne services is één van de belangrijkste onderdelen van het bouwen van een gedistribueerde applicatie. Daarom heeft Microsoft, als onderdeel van de stack, een nieuw Service Discovery library gebouwd. Het Microsoft.Extensions.ServiceDiscovery, een NuGet package. Hierin vind je verschillende core implementaties van client-side Service Discovery en Load Balancing. Deze bieden een goede integratie met HttpClientFactory en YARP. Dit geldt ook voor geïmplementeerde omgevingen als Azure Container Apps en Kubernetes.

Integratie met het Azure-platform

Met het app-hostmodel waarmee .NET Aspire de ontwikkeling van lokale cloud-native apps vereenvoudigt, kunnen apps lokaal draaien met dezelfde configuratie en services als in Azure. De lokale app-host biedt een set aan API’s om Azure resources uit te drukken. In de .NET Aspire Azure hostingsbibliotheken zijn API’s beschikbaar als extension methods. Zo is DistributedApplicationBuilder een nieuw type applicationbuilder in de interface. Wanneer je Azure resources aan je app-host toevoegt, voegen ze automatische de juiste functionaliteit tot Cloud-provisioning toe.

Conclusie

.Net Aspire is ontworpen voor developers om het bouwen van cloud-native apps van .NET te stroomlijnen. Dit doet het op basis van een set tools en templates en is sinds kort algemeen beschikbaar. Door de integratie met het Azure platform en de voordelen van een Cloudomgeving, is het als een rots in de branding voor Cloud developers. Meer weten over het gebruik van .NET, .NET Aspire of sparren over andere Azure-integraties? Let us know!

Gerelateerd

Meer innformatie?

Wil je meer weten over Van production ready naar public release: .NET Aspire, neem dan contact met ons op.