Informazioni su come creare un nuovo progetto .NET Aspire
Lo sviluppo nativo del cloud può richiedere agli sviluppatori di collegare tra loro diversi microservizi come database, code di messaggistica e cache. .NET Aspire semplifica questo processo fornendo una serie di modelli da utilizzare per creare e gestire le connessioni tra questi servizi.
In questa unità viene illustrato come creare un nuovo progetto .NET Aspire e comprendere le differenze tra i due modelli di progetto iniziale. Esplorare quindi la struttura della soluzione generata.
Prerequisiti di .NET Aspirare
Prima di poter creare un nuovo progetto .NET Aspire, è necessario installare in locale alcuni prerequisiti:
- .NET 8
- Anteprima di Visual Studio 2022
- Docker Desktop o Podman
- Carico di lavoro .NET Aspire in Visual Studio
Nell'esercizio successivo verranno illustrati i passaggi per installare questi prerequisiti.
Scegliere il miglior modello .NET Aspire per il progetto
Sono attualmente disponibili due modelli di avvio .NET Aspire:
Applicazione .NET Aspire: Questo modello è un buon punto di partenza per i nuovi progetti. Include solo i progetti AspireSample.AppHost e AspireSample.ServiceDefaults. Questo modello è utile quando si vuole iniziare da zero e aggiungere componenti e servizi personalizzati.
Applicazione di base .NET Aspire: Questo modello include i progetti AspireSample.AppHost e AspireSample.ServiceDefaults, ma include anche un esempio dell’ App Blazor AspireSample.Web e un'API che fornisce i dati AspireSample.ApiService. Questi progetti sono preconfigurati con l'individuazione dei servizi e altri esempi di base di funzionalità comuni di .NET Aspire.
Entrambi i modelli Aspire forniscono una dashboard per monitorare lo stato dei servizi e il traffico tra di essi. La dashboard contribuisce a migliorare l'esperienza di sviluppo locale, in quanto fornisce una panoramica dello stato e della struttura dell'app.
Sono disponibili anche tre modelli di progetto:
- Host dell'app .NET Aspire: Modello che contiene solo un progetto host dell'app (agente di orchestrazione).
- Impostazioni predefinite del servizio .NET Aspirare: Modello che contiene solo il progetto predefinito del servizio.
- Progetto di test .NET Aspire: Modello che contiene solo unit test per il progetto host dell'app.
Creazione di un nuovo progetto .NET Aspire usando un modello .NET Aspire
È possibile usare la finestra di dialogo di avvio di Visual Studio per creare un nuovo progetto .NET Aspire o File>Nuovo>Progetto. È anche possibile usare i comandi dell'interfaccia della riga di comando di .NET. Per creare una soluzione con il modello Applicazione .NET Aspire, usare questo comando:
dotnet new aspire
In alternativa, per usare il modello Applicazione di base .NET Aspire, usare questo comando:
dotnet new aspire-starter
Un vantaggio dell'uso di Visual Studio è la possibilità di scegliere le opzioni di configurazione attraverso le finestre di dialogo. I comandi dell'interfaccia della riga di comando di .NET sono utili quando si vuole creare un nuovo progetto .NET Aspire con impostazioni predefinite, ma è possibile modificare le impostazioni predefinite con i flag facoltativi. Nel prossimo esercizio, verrà illustrato come creare un nuovo progetto .NET Aspire utilizzando entrambi i metodi.
Esplorare la struttura delle soluzioni generate dai modelli .NET Aspire
I modelli .NET Aspire generano una soluzione con una struttura specifica. Questa struttura è un diagramma semplificato per l'applicazione di base, senza le opzioni di memorizzazione nella cache o di test abilitate:
────📂 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
Entrambi i modelli aggiungono i progetti AppHost e progetti ServiceDefaults. Questi progetti sono il nucleo di un'applicazione compilata con .NET Aspire. Il progetto AppHost è il punto di ingresso ed è responsabile di svolgere il ruolo di orchestratore.
Il progetto ServiceDefaults contiene la configurazione predefinita per l'applicazione. Queste configurazioni vengono riutilizzate in tutti i progetti della soluzione.
La soluzione precedente include anche i progetti Web e ApiService. Il progetto di Web è un'app WebAssembly Blazor con un contatore e chiama l’ApiService per ottenere i dati di previsione. L' ApiService è una semplice API che restituisce dati di previsione.
Esaminare la struttura del codice
Il progetto AspireSample.AppHost include il codice seguente 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();
Scorrere il codice precedente, riga per riga:
Creare una variabile
builder
che rappresenta unIDistributedApplicationBuilder
.Creare una variabile
cache
che rappresenta unIResourceBuilder<RedisResource>
.Chiamare
AddProject
con un parametro di tipo generico contenente i dettagli del progettoIServiceMetadata
, aggiungendo il progetto AspireSample.ApiService al modello applicativo.Si tratta di un blocco predefinito fondamentale di .NET Aspire. Il
AddProject
configura l'individuazione e la comunicazione dei servizi tra i progetti nell'app. L'argomento del nome apiservice viene usato per identificare il progetto nel modello applicativo e usato in seguito dai progetti che vogliono comunicare con esso.Chiamare di nuovo
AddProject
, questa volta aggiungendo il progetto AspireSample.Web al modello applicativo. Concatena inoltre più chiamate aWithReference
per passare le variabili di cache e apiservice.L'API
WithReference
è un'altra API fondamentale di .NET Aspire, che inserisce le informazioni di individuazione dei servizi o la configurazione della stringa di connessione nel progetto aggiunto al modello applicativo.Infine, il
builder
chiamaBuild
eRun
per avviare l'applicazione.