Design pattern per il Data Access Layer

di: Giuseppe Marchi     09 Aprile 2008

Abbiamo già parlato dell'importanza che riveste l'astrazione in livelli delle applicazioni Web, in un articolo precedente in cui indicavamo un modello a 3 livelli: Data Access Layer, Business Logic Layer, User Interface). In questo articolo approfondiamo l'accesso ai dati.

Il Data Access Layer (da ora in poi DAL) di un'applicazione è il livello di interazione con la base di dati, dove si effettuano le connessioni e si eseguono query di selezione, inserimento, aggiornamento o cancellazione. Detto questo dovrebbe essere chiaro il grado di importanza di questo "strato".

L'implementazione di tutta la logica di accesso alle informazioni deve essere allo stesso tempo di facile utilizzo e strutturalmente robusta, questo sia per garantire una corretta astrazione dal tipo di database che si intende utilizzare, sia per fornire ai livelli superiori un modello unificato e semplice da usare, in modo tale che a livello di presentazione (le Web Form), ci si limiti a trattare solo la visualizzazione delle informazioni.

Le prime versioni di ASP.NET (1.0 e 1.1) non offrivano strumenti o classi apposite per la realizzazione dell'architettura del DAL e del Domain Model delle proprie applicazioni; si era costretti a scrivere tutto a mano, dalla gestione della connessione al mapping degli oggetti della base di dati, implementando i design pattern più appropriati alle proprie esigenze.

La versione 2.0 del .NET Framework ha introdotto classi che implementassero questi pattern architetturali, il che ad esempio, ha facilitato molto la creazione di DAL indipendenti dal database (attraverso le classi del namespace System.Data.Common).

Successivamente sono arrivati gli ORM, soluzioni diventate vieppiù robuste e che offrono oggi una via ottimale per gestire l'accesso ai dati, con meccanismi di mapping degli oggetti (a formare il Domain Model) e persistenza delle informazioni in memoria. Le più famose implementazionei di ORM per applicazioni .NET sono sicuramente NHibernate e LINQ to SQL (di casa Microsoft).

Durante lo sviluppo di grossi progetti quindi, risulta ormai impossibile evitare l'utilizzo di un DAL per la gestione dell'interazione con la base di dati e, allo stesso tempo, non è sempre possibile affidare tale compito interamente ad un ORM, ma dovrebbe essere buona regola scrivere per intero l'architettura del proprio livello di accesso ai dati facendosi aiutare da un ORM per le parti più ripetitive.

Vediamo ora come utilizzare due dei pattern architetturali più famosi per la creazione di un DAL personalizzato per l'accesso alle informazioni presenti nel database Northwind.

Nota: per il corretto funzionamento del codice allegato e per comprendere a fondo il codice presente in questo articolo, bisogna prima scaricare il database Northwind dal download center di Microsoft ed installarlo in locale, in quanto questo non è presente nella versione 2005 di SQL Server.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

20 Febbraio 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto