Confessions of a Dangerous Mind

Brain.FlushBuffer()
posts - 176, comments - 234, trackbacks - 93

Data access layer: che tecnologie?

Ieri mi sono dedicato allo studio di un argomento che mi ha sempre appassionato: il Data Access Layer.

Amato o odiato che sia, rappresenta nella maggior parte dei progetti software il cuore della nostra applicazione, ed è inoltre una delle attività più "time-consuming". Che cosa impiegare allora, per migliorare la nostra produttività riducendo la possibilità di errori e, allo stesso tempo, favorendo una espansione e/o modifica futura del nostro strato di accesso ai dati? Bene o male abbiamo 4 possibilità:

  1. Scrivere tutto "a mano": con a mano intendo scriverci tutte le query e tutto l'accesso ai dati impiegando Datase, datareaders e quant'altro. La soluzione è certamente fattibile ma sicuramente non agevole nè breve. Inoltre utilizzando un approccio "query-like" perdiamo la possibilità di utilizzare degli oggetti di business, a meno di non crearci anche questi, con un aumento uteriore di tempo per la realizzazione della nostra applicazione.
  2. Utilizzare Enterprise Library: la nuova release di Enterprise Library per il .net Framework 2.0 è stata molto semplificata ed è sicuramente un buon punto di partenza per creare uno strato di accesso ai dati robusto ed affidabile; consideriamo, infatti, che in questo caso gran parte dei metodi per l'accesso ai dati sono già pronti e si basano su pattern robusti e ben conosciuti. Anche in questo caso, però, l'approccio che si utilizzerà è molto "database oriented" e poco "object-oriented", per cui in alcuni casi potrebbe non essere una buona soluzione.
  3. Utilizzare un ORM (Object Relational Mapper): il mercato offre degli ottimi ORM, gratuiti o a pagamento, che possono essere impiegati per implementare un accesso ai dati object oriented. Mi vengono in mente Genome oppure ORM.net o ancora NHibernate. In questo caso perdiamo il controllo della specifica query, ma otteniamo un accesso ai dati più coerente ed uniforme. Può piacere o meno, ma una cosa è certa: impiegare un ORM velocizza lo sviluppo.
  4. Impiegare i Dataset Tipizzati di Visual Studio 2005: una parola per definirli? Belli! Onestamente nella prima versione del Framework li ho sempre "snobbati" in quanto estremamente pesanti e difficili da modificare; non è possibile "imbroccare" tutto il design delle tabelle del DB al primo colpo e farsi generare lo strato di accesso ai dati!! Con la nuova versione sono stati introdotte così tante features da farmi rivedere in toto il mio atteggiamento verso i Dataset Tipizzati, infatti:
    1. Sono query-oriented
    2. Sono object-oriented
    3. Hanno un editor interno a VS2005 che ci permette di restare all'interno dello stesso ambiente di sviluppo per aggiungere tabelle, stored procedures o sistemare i nostri dataset.
    4. I dataset possono attraversare i layer e possono essere quindi condivisi tra tier (lo so, non è SOA puro, ma alla fine della fiera...è il risultato che conta )
    5. Si possono impiegare comandi SQL oppure Stored Procedures.
    6. Facilitano l'accesso ai dati e permettono di estendere le funzionalità dei TableAdapters impiegando delle classi Partial

A proposito di questo ultimo argomento, ovvero i dataset tipizzati, consiglio a tutti il tutorial scritto da Scott.

Happy programming!

 

 

powered by IMHO 1.3

Print | posted on giovedì 23 febbraio 2006 17:45 |

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET