Informazioni su come creare un nuovo progetto .NET Aspire

Completato

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:

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 un IDistributedApplicationBuilder.

  • Creare una variabile cache che rappresenta un IResourceBuilder<RedisResource>.

  • Chiamare AddProject con un parametro di tipo generico contenente i dettagli del progetto IServiceMetadata, 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 a WithReference 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 chiama Build e Run per avviare l'applicazione.