Design pattern per il Data Access Layer

di: Giuseppe Marchi     09 Aprile 2008

Con l'aggiunta delle strutture secondo il pattern Template, la selezione di informazioni sulla base di dati risulta ancora più semplice.

Listato 9. Esempio di utilizzo del mapping

CustomerReader reader = new CustomerReader();
List<Customer> customers = reader.GetAll();

GridView1.DataSource = customers;
GridView1.DataBind();

Ora il nostro Data Access Layer è quasi pronto per l'utilizzo, manca solamente la definizione di tutte le entity proprie del Domain Model dell'applicazione e la relativa definizione di tutte le classi concrete di mapping su tali entità e di lettura.

Per semplificare la gestione delle entity (e non solo), soprattutto all'interno di progetti di grosse dimensioni, risulta spesso molto utile appoggiarsi ad un ORM. Nel nostro caso, solo per la generazione della classi entità mappate sulla struttura della base di dati, ci potrebbe essere d'aiuto SubSonic, un progetto open-source che a partire dalla definizione di un database, genera in automatico entity e classi manager da inserire all'interno del proprio progetto.

Utilizzo di un ORM

Pensare che tutto quello che abbiamo visto fin'ora lo può fare in automatico "qualcun altro" è sicuramente gratificante. Esattamente, un ORM, definisce il mapping tra gli oggetti della propria applicazione e quelli presenti all'interno della base di dati, fornendo anche tutti i metodi per l'accesso e la modifica delle informazioni. Risulta quindi ovvio che l'utilizzo di uno strumento del genere nei propri progetti semplifica notevolmente il lavoro, soprattutto per piccole applicazioni da dover sviluppare in poco tempo (quindi come nella maggior parte dei casi).

Per quanto riguarda invece, progetti di grosse dimensioni architetturali, è sempre bene affiancare ad un ORM una propria gestione personalizzata del DAL dell'applicazione; così facendo si può avere il controllo completo sull'accesso ai dati, soprattutto per quanto riguarda le performance dell'applicazione, e allo stesso tempo è possibile avvalersi di uno strumento potente che evita errori di base sui nomi e soprattutto la stesura di una grossa quantità di righe di codice.

Conclusioni

L'accesso ai dati richiede particolare attenzione nello sviluppo di applicazioni Web (e non) e mantenere questi meccanismi in un livello a parte è vantaggioso, specie per lo sviluppo degli altri strati dell'applicazione come l'interfaccia utente.

Rispettare precisi pattern architetturali, rende ancora più facile esporre funzionalità agli altri livelli, diminuire la scrittura di codice ripetitivo ed ottenere applicazioni più flessibili.

Giuseppe Marchi è consulente informatico in ambito Microsoft .NET e dottore in Comunicazione Digitale; co-autore del libro "Pocket C#", editore Apogeo, collabora con community on-line di sviluppatori fornendo articoli e materiale. Dal 2006 è certificato Microsoft su ASP.NET 2.0 e Microsoft Certified Technology Specialist su Windows Sharepoint Services 3.0. Il suo sito Web personale www.peppedotnet.it contiene ulteriori informazioni ed esempi di codice.

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

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto