Un Data Layer neutro rispetto al managed provider con l'uso delle interfacce

di Daniele Bochicchio, in ASP.NET, ADO.NET, C#,

Una cosa abbastanza scomoda quando si realizza un'applicazione che deve funzionare con diversi database è la difficoltà dovuta al cambiamento che il passare da un managed provider ad un altro comporta.
Attraverso lo script di oggi vedremo come sfruttare le interfacce, che si trovano nel namespace System.Data, implementate dagli oggetti di cui è composto ogni managed provider.
Nel caso specifico, ecco come diventa un metodo che restituisce un DataReader all'interno del nostro data layer:

public IDataReader GetDataReader(string sql)
{
  // creazione di un SqlDataReader nella variabile dr
  return dr;
}

Quando dovremo accedere a questo metodo della nostra classe, ci basterà riferirci sempre all'interfaccia, in questo modo, anzichè alla classe specifica per il managed provider che stiamo utilizzando internamente:

using (IDataReader dr = myClass.GetDataReader(sql))
{
  dg.DataSource = dr;
  dg.DataBind();
}

Sfruttando questo accorgimento, l'eventuale cambio di managed provider ha un impatto minimo sull'applicazione, poichè il codice da cambiare risiede tutto nel DAL e non ha effetti sulla struttura delle pagine.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi