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
Evitare la compressione degli artefatti in un workflow di GitHub
Microsoft Fabric: la piattaforma unificata per l'ecosistema dati moderno
Ciclo di vita risorse con .NET Aspire
Gestire gli errori nelle Promise JavaScript con try()
Utilizzo delle Feature flag in ASP.NET Core
Gestione dei codeowners in GitHub
Proteggere l'endpoint dell'agente A2A delle Logic App
Utilizzare le librerie native di .NET per comprimere uno o più file in formato ZIP
GitHub Quick Review per la valutazione dello stato di compliance dell'organizzazione aziendale
Integrare OpenAI tramite Aspire
Analizzare il contenuto di una issue con GitHub Models e AI
Integrare email esterne con Azure Functions e Managed Connectors


