Meer informatie over het maken van een nieuw .NET Aspire-project
Cloudeigen ontwikkeling kan vereisen dat ontwikkelaars verbinding maken met verschillende microservices, zoals databases, berichtenwachtrijen en caches. .NET Aspire vereenvoudigt dit proces door een set sjablonen te bieden die u kunt gebruiken om de verbindingen tussen deze services te maken en te beheren.
In deze les leert u hoe u een nieuw .NET Aspire-project maakt en de verschillen tussen de twee startersprojectsjablonen begrijpt. Verken vervolgens de structuur van de gegenereerde oplossing.
Vereisten voor .NET Aspire
Voordat u een nieuw .NET Aspire-project kunt maken, zijn er enkele vereisten die u lokaal moet installeren:
- .NET 8
- Visual Studio 2022 Preview
- Docker Desktop of Podman
- .NET Aspire-workload in Visual Studio
In de volgende oefening doorloopt u de stappen voor het installeren van deze vereisten.
Kies de beste .NET Aspire-sjabloon voor uw project
Er zijn momenteel twee .NET Aspire Starter-sjablonen beschikbaar:
.NET Aspire Application: Deze sjabloon is een goed uitgangspunt voor nieuwe projecten. Het omvat alleen de projecten AspireSample.AppHost en AspireSample.ServiceDefaults . Deze sjabloon is handig als u helemaal opnieuw wilt beginnen en uw eigen onderdelen en services wilt toevoegen.
.NET Aspire Starter-toepassing: deze sjabloon bevat de projecten AspireSample.AppHost en AspireSample.ServiceDefaults , maar bevat ook een voorbeeld van blazor App AspireSample.Web en een API die gegevens aan het DoelSample.ApiService levert. Deze projecten zijn vooraf geconfigureerd met servicedetectie en andere basisvoorbeelden van algemene .NET Aspire-functionaliteit.
Beide Aspire-sjablonen bieden een dashboard voor het bewaken van de status van de services en het verkeer ertussen. Het dashboard helpt uw lokale ontwikkelervaring te verbeteren. In één oogopslag krijgt u een overzicht van de status en structuur van uw app.
Er zijn ook drie projectsjablonen beschikbaar:
- .NET Aspire App Host: een sjabloon die alleen een app-hostproject (orchestrator) bevat.
- Standaardinstellingen voor .NET Aspire-service: een sjabloon die alleen het standaardproject voor de service bevat.
- .NET Aspire Test Project: een sjabloon die alleen eenheidstests voor het app-hostproject bevat.
Een nieuw .NET Aspire-project maken met behulp van een .NET Aspire-sjabloon
U kunt het startdialoogvenster van Visual Studio gebruiken om een nieuw .NET Aspire-project of File>New>Project te maken. U kunt ook .NET CLI-opdrachten gebruiken. Als u een oplossing wilt maken met de .NET Aspire Application-sjabloon , gebruikt u deze opdracht:
dotnet new aspire
Of als u de .NET Aspire Starter-toepassingssjabloon wilt gebruiken, gebruikt u deze opdracht:
dotnet new aspire-starter
Een voordeel van het gebruik van Visual Studio is dat u uw configuratieopties kiest via dialoogvensters. De .NET CLI-opdrachten zijn handig wanneer u een nieuw .NET Aspire-project wilt maken met standaardinstellingen, maar u kunt de standaardinstellingen wijzigen met optionele vlaggen. In de volgende oefening ziet u hoe u een nieuw .NET Aspire-project maakt met behulp van beide methoden.
De structuur van oplossingen verkennen die zijn gegenereerd door de .NET Aspire-sjablonen
De .NET Aspire-sjablonen genereren een oplossing met een specifieke structuur. Deze structuur is een vereenvoudigd diagram voor de starterstoepassing, zonder dat de cache- of testopties zijn ingeschakeld:
────📂 AspireSample
├───📂 AspireSample.ApiService
│ ├───📂 Properties
│ │ └─── launchSettings.json
│ ├─── appsettings.json
│ ├─── AspireSample.ApiService.csproj
│ └─── Program.cs
├───📂 AspireSample.AppHost
│ ├───📂 Properties
│ │ └─── launchSettings.json
│ ├─── appsettings.json
│ ├─── AspireSample.AppHost.csproj
│ └─── Program.cs
├───📂 AspireSample.ServiceDefaults
│ ├─── AspireSample.ServiceDefaults.csproj
│ └─── Extensions.cs
├───📂 AspireSample.Web
│ ├───📂 Components
│ │ ├───📂 Layout
│ │ │ ├─── ...
│ │ ├───📂 Pages
│ │ │ ├─── ...
│ │ ├─── ...
│ ├───📂 Properties
│ │ └─── launchSettings.json
│ ├───📂 wwwroot
│ │ ├───...
│ ├─── appsettings.json
│ ├─── AspireSample.Web.csproj
│ ├─── Program.cs
│ └─── WeatherApiClient.cs
└─── AspireSample.sln
Beide sjablonen voegen AppHost- en ServiceDefaults-projecten toe. Deze projecten vormen de kern van een toepassing die is gebouwd met .NET Aspire. Het AppHost-project is het toegangspunt en is verantwoordelijk voor het fungeren als orchestrator.
Het ServiceDefaults-project bevat de standaardconfiguratie voor de toepassing. Deze configuraties worden opnieuw gebruikt voor alle projecten in uw oplossing.
De bovenstaande oplossing bevat ook web - en ApiService-projecten . Het webproject is een Blazor WebAssembly-app met een teller en roept de ApiService aan om prognosegegevens op te halen. De ApiService is een eenvoudige API die prognosegegevens retourneert.
De codestructuur doorlopen
Het Project AspireSample.AppHost heeft de volgende code in Program.cs:
var builder = DistributedApplication.CreateBuilder(args);
var cache = builder.AddRedis("cache");
var apiService = builder.AddProject<Projects.AspireStarterSample_ApiService>("apiservice");
builder.AddProject<Projects.AspireStarterSample_Web>("webfrontend")
.WithReference(cache)
.WithReference(apiService);
builder.Build().Run();
Door de bovenstaande code lopen, regel per regel:
Maak een
builder
variabele die eenIDistributedApplicationBuilder
.Maak een
cache
variabele die eenIResourceBuilder<RedisResource>
.Roep
AddProject
aan met een algemene parameter met de details vanIServiceMetadata
het project, waarbij het Project AspireSample.ApiService wordt toegevoegd aan het toepassingsmodel.Dit is een fundamentele bouwsteen van .NET Aspire. Hiermee
AddProject
configureert u servicedetectie en -communicatie tussen de projecten in uw app. Het naamargument apiservice wordt gebruikt om het project in het toepassingsmodel te identificeren en later te gebruiken door projecten die ermee willen communiceren.Roept
AddProject
opnieuw aan, deze keer voegt u het Project AspireSample.Web toe aan het toepassingsmodel. Het koppelt ook meerdere aanroepen om de variabelen voor de cache en apiservice door teWithReference
geven.De
WithReference
API is een andere fundamentele API van .NET Aspire, die servicedetectiegegevens of verbindingsreeks configuratie injecteert in het project dat wordt toegevoegd aan het toepassingsmodel.Ten slotte worden de
builder
aanroepen aanroepenBuild
enRun
de toepassing gestart.