Enterprise Library 3.1 : Data Application Block

La Enterprise Library, la libreria curata da Microsoft Patterns & Practices è realizzata sfruttando le migliori pratiche di sviluppo e i principali design pattern architetturali.
L’Enterprise Library include una serie di application block, ognuno dei quali è pensato per fornire un set specifico di funzionalità di uso frequente nell’ambito delle applicazioni di tipo enterprise.
Uno degli application block è quello che riguarda l’accesso ai dati. Esso implementa una serie classi che danno l’opportunità di implementare un strato di accesso ai dati assolutamente indipendente dagli strati superiori (è possibile soltanto nella versione implementata per il framework 2.0 che trovate qui (rilasciata a maggio 2007), nella versione per il framework 1.1 si doveva creare un’istanza della classe Database nel presentation layer).
Per l’utilizzo del DAAB si devo seguire due operazioni molto semplici:

  1. Referenziare gli assembly Microsoft.Practices.EnterpriseLibrary.Common.dll e Microsoft.Practices.EnterpriseLibrary.Data.dll nello strato di accesso ai dati;
  2. Inserire nella configurazione dell’applicazione i seguenti nodi :
    <configSections>

    <section name=”dataConfiguration” type=”Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data”/>

    </configSections><dataConfiguration defaultDatabase=”default“/>

     <connectionStrings>
     <add name=”defaultproviderName=”System.Data.SqlClientconnectionString=”Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True“/>
    </connectionStrings>

Esempio Framework 2.0.


namespace MyApp.Data
{
    public class DataAccess
    {
        internal static Database intAppData = null;

        static DataAccess()
        {
             intAppData = DatabaseFactory.CreateDatabase();
        }

        public static IDataReader GetDataFromDb(params object [] values)
        {
             return intAppData.ExecuteReader (“StoreProc“, values);
        }
    }
    …
}

Lascia un commento