In conclusione a questa serie di script introduttivi del mondo .NET Aspire, che permette di partire dal livello zero ed arrivare a comprendere come portare le proprie applicazioni all'interno dell'architettura, non ci resta che parlare dei lifecycle events.
Ne abbiamo già parlato parzialmente in uno dei primi script: .NET Aspire permette di relazionare l'esecuzione di una risorsa sulla base della disponibilità di un'altra, come ad esempio un servizio API che attende la disponibilità di un database o una cache.
In questo script vedremo come intercettare manualmente questi cambiamenti di stato ed eseguire operazioni personalizzate. Al momento abbiamo a disposizione:
- OnInitializeResource: inizio elaborazione risorsa
- OnBeforeResourceStarted: prima che la risorsa venga eseguita
- OnConnectionStringAvailable: disponibilità delle connection string
- OnResourceEndpointsAllocated: creazione degli endpoint
- OnResourceReady: risorsa disponibile
- OnResourceStopped: stop della risorsa
Gli eventi coprono la maggior parte delle casistiche, e come possiamo vedere qui di seguito, l'implementazione rispetta i paradigmi classici a cui siamo abituati.
var database = builder.AddPostgres("postgres")
.AddDatabase("mio-db")
.OnConnectionStringAvailable(async (resource, evt, cancellationToken) =>
{
// Operazioni al momento della risoluzione della stringa di connessione
});
var api = builder.AddProject<Projects.Api>("api")
.WithReference(database)
.OnResourceEndpointsAllocated(async (resource, evt, cancellationToken) =>
{
// Enpoint disponibili
});
var db = builder.AddMongoDB("mongo")
.WithMongoExpress()
.AddDatabase("db")
.OnResourceReady(async (db, evt, ct) =>
{
// database pronto
// posso seguire un seed per inizializzare i dati all'interno
});Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ospitare n8n su Azure App Service
Cambiamenti in OpenAPI per la documentazione di ASP.NET
Creare una cache temporanea in JavaScript
Semplificare i deployment con le label in Azure Container App
Eliminare record doppi in Sql Server
Definire il metodo di rilascio in .NET Aspire
Nuove validazioni Form Blazor
Utilizzo del persistent state di Blazor nel prerendering
Migrare applicazioni legacy nel cloud con Azure App Service Managed Instance
Usare il metodo nameof con un tipo generico in C# 14
Gestire progetti .NET + React in .NET Aspire
Utilizzare Containers in .NET Aspire


