in Architettura Software, Informatica

Ambiente di sviluppo con Docker, Asp.net core e Sql Server – ultima parte

Siamo arrivati all’ultimo post relativo alla configurazione del nostro ambiente di sviluppo.

Nei post precedenti abbiamo definito le componenti necessarie per la creazione di un ambiente di sviluppo basato su docker e dotnet core.

A questo punto, tutto è pronto a livello architetturale e possiamo concentrarci sulla parte relativa allo sviluppo dell’applicazione.

Trattandosi di un applicazione che dovrà utilizzare SQL server, sarà necessario aggiungere tra le dipendenze il pacchetto nuget per Entity Framework dedicato, e che può essere scaricato da questo link.

E’ possibile includere la dipendenza anche tramite l’interfaccia grafica di Visual Studio.

Il prossimo step consiste nella configurazione della stringa di connessione che dovrà essere utilizzata dall’applicazione, inserendola direttamente all’interno del file appsettings.json:

creando una nuova entry denominata “ConnectionStrings” ed la stringa di connessione denominata Default.

A questo punto tutto è pronto per poter procedere con la creazione del Context, che consentirà di accedere al database, tramite entity framework.

using Microsoft.EntityFrameworkCore;

namespace app.Context
{
    public class AppDbContext : DbContext
    {
        public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
        {
        }
    }
}

Nella fase di registrazione del context all’interno dell’applicazione verrà specificata la stringa di connessione, che verrà letta direttamente dal file di configurazione. Modifichiamo quindi il file Program.cs, includendo le righe:

...

builder.Services.AddDbContext(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("Default")));

...

A questo punto AppDbContext è registrato nell’applicazione e può essere iniettato all’interno dei vari controller.

Spesso può anche essere utile aggiungere al progetto la dipendenza Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore, che può essere scaricata da questo link.

Questa libreria consente di tenere traccia degli errori che coinvolgono entity framework durante il funzionamento dell’applicazione.

Anche in questo caso, se scaricata, è necessario attivare il middleware all’interno del file Program.cs, aggiungendo le righe:

...

  builder.Services.AddDatabaseDeveloperPageExceptionFilter();

...

Il setup dell’applicazione è quindi completata. Con il comando :

docker-compose build

possiamo completare la generazione dell’immagine dell’applicazione e di tutte le componenti necessarie al run dell’applicazione.