Nel precedente articolo abbiamo esplorato come .NET Aspire possa orchestrare risorse come Redis per lo sviluppo locale. Estendiamo questa configurazione integrando un database relazionale: SQL Server. In questo modo arriviamo a creare una vera applicazione in grado di persistere i dati.
Come per il caso precedente è necessario installare il pacchetto NuGet Aspire.Hosting.SqlServer nel progetto host, e configurare l'istanza di SQL Server all'interno del Program.cs
var builder = DistributedApplication.CreateBuilder(args);
var sql = builder.AddSqlServer("sql")
// permette di persistere il container nel tempo, velocizzando i tempi di avvio
.WithLifetime(ContainerLifetime.Persistent);
var db = sql.AddDatabase("database");
builder.AddProject<MiaSoluzione.ProgettoBackend>()
.WithReference(db)
.WaitFor(db);
Se, come è lecito pensare, il server SQL richieda una configurazione, un database o un set di dati, possiamo integrare uno script SQL che verrà lanciato immediatamente dopo la sua creazione.
var db = sql.AddDatabase("database")
.WithCreationScript("CREATE DATABASE [database]; [...]");
Per quanto riguarda le credenziali, .NET Aspire genera automaticamente credenziali predefinite per l'istanza, utilizzando l'utente sa e una password casuale che vengono archiviate nel secret store dell'app host e possono essere recuperate tramite configurazione.
Ora che il database è operativo, non resterà altro che uniformare l'applicazione Backend rendendo il DbContext disponibile all'interno dei Controller. Il primo passo è sempre installare la libreria NuGet ad-hoc Aspire.Microsoft.EntityFrameworkCore.SqlServer e modificare il file Program.cs
builder.Services.AddDbContext<MioDbContext>((serviceProvider, options) =>
{
var configuration = serviceProvider.GetRequiredService<IConfiguration>();
var connectionString = configuration.GetConnectionString("database");
options.UseSqlServer(connectionString);
});In conclusione, il monitoraggio della risorsa è gestito autonomamente da .NET Aspire, tramite controlli di integrità (health checks) e il tracciamento delle attività tramite OpenTelemetry, facilitando il monitoraggio delle operazioni del database.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eliminare record doppi in Sql Server
Anonimizzare i dati sensibili nei log di Azure Front Door
Proteggere l'endpoint dell'agente A2A delle Logic App
Le cron expression di un workflow di GitHub
Gestione delle issue type con GitHub
Analizzare il contenuto di una issue con GitHub Models e AI
Effettuare un clone parziale di un repository di GitHub
Ricerca delle GitHub issue tramite operatori logici
Utilizzare Containers in .NET Aspire
Utilizzare Intersect e Except per filtrare set di dati in TSql
Ridurre il reflow cambiando il CSS
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
I più letti di oggi
- Le DirectInk API nella Universal Windows Platform
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Gli oggetti CallOut di Expression Blend 4.0
- Inserire le news di Punto Informatico nel proprio sito
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Sfruttare una CDN con i bundle di ASP.NET


