Ciclo di vita risorse con .NET Aspire

di Morgan Pizzini, in ASP.NET Core,

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

Visualizza/aggiungi commenti

| Condividi su: LinkedIn, Facebook

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi