Tutorial Data Access Application Block Enterprise Library

En este tutorial exploraremos como configurar y utilizar Data Access Application Bloc (DAAB). Como pre-requisito debe instalar Enterprise Library.

Utilizaremos la base de datos Adventure Works que es la base de datos de ejemplo de SQL Server. Si no la tiene instalada puede descargarla desde CodePlex.

El tutorial se concentra solo en los pasos relacionados con Enterprise Library, no detallaremos tareas simples como crear un proyecto o agregar elementos a una solución Visual Studio. Puede descargar el código fuente del proyecto. Para ejecutar la aplicación de ejemplo debe configurar la conexión a la base de datos como se detalla en este tutorial.

Configuración

El primer paso para utilizar Data Access Application Block es configurar la conexión a la base de datos. Se usa el mismo archivo de configuración de la aplicación (app.config o web.config). Enterprise Library incluye una herramienta de configuración que facilita la edición de este archivo.

Para acceder a la herramienta desde Visual Studio haga click con el botón derecho del mouse sobre el archivo de configuración de la aplicación y en menú contextual haga click en “Edita Enterprise Library v5 Configuration”.

La herramienta permite agregar configución para cada uno de los bloques de Enterprise Library. En el caso de DAAB el bloque ya esta agregado con información de las conexiones por defecto de .NET que se encuentran en el archivo machine.config. En el caso de la Figura vemos dos conexión por defecto: a SQL Sever y a MySql. Estas conexiones se meten un poco en el medio, no se pueden eliminar, solo hay que ignorarlas.
Debemos crear una nueva conexión, para ello extendemos el elemento “DataBase Settings”, hacemos click en el signo mas y luego en “Add DataBase Conection String”.

Primero debemos definir el nombre de la conexión, usaremos “AdventureWorks”. En el código fuente nos referiremos a este nombre para conectarnos a la base de datos.
Luego debe indicar el proveedor .NET que debe utilizar la conexión, para SQL Server seleccionamos desde la lista “System.Data.SqlClient”.
Finalmente ingresamos el string de conexión, en este caso estamos conectando a una instancia de SQL Express, a la base de datos AdventureWorks, usando seguridad integrada.
Si su aplicación se conecta a mas de una base de datos puede definir varias conexiones e identificarlas por nombre. Si hay una conexión que usa mas puede definiría como conexión predeterminada. Para esto haga click en el chevron a la izquierda de “Database Settings” y seleccionamos AdventureWorks en "Default DataBase".

Guardamos los cambios y cerramos la herramienta de configuración, con esto hemos terminado la primera parte.

Referencias y Espacios de Nombre

Para utilizar Data Access Application Block debemos agregar referencias a los siguientes ensamblados:

  • Microsoft.Practices.EnterpriseLibrary.Data.dll
  • Microsoft.Practices.EnterpriseLibrary.Common.dll

Estos ensamblados se encuentran en el directorio en que instalo Enterprise Library, por defecto: "C:\Program Files\Microsoft Enterprise Library 5.0\Bin\".

Para usar Data Access Application Block el proyecto debe ser compilado con el profile “.NET Framework 4”, no es suficiente con “.NET Framework 4 Client Profile”. Cuando crea un nuevo proyecto de aplicación Windows Forms o WPF este apunta por defecto a Client Profile, debe cambiarlo sino no podra agregar las referencias a los ensamblados necesarios.

En los archivos de codigo fuente donde usemos el bloque importamos los siguientes espacios de nombres:

using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data;
Ejemplo Obtener una DataTable

Para acceder a la base de datos lo primero es obtener una instancia del objeto DataBase. Este objeto represeta una conexión a una de las bases de datos configuradas. Identificamos las conexiones por nombre. Hay varias formas de obtener el objeto DataBase: Dependency Injection, Service Locator. En este tutorial usaremos la forma mas simple, el metodo “DatabaseFactory.CreateDatabase()”. Pasamos como parametro a este metodo el nombre de la base de datos a la cual queremos conectar según definimos en la configuración "AdventureWorks. En caso de haberla definido como Conexion por Defecto podemos omitir el nombre.
Luego definimos la SQL que vamos a ejecutar, en este caso traeremos toda la tabla de empleados de la base de datos Adventure Works.
El metedo ExecuteDataSet permite obtener una o mas tablas a partir de una intruccion SQL o procedimiento almacenado. En este caso usamos una instruaccion SQL por lo cual pasamos como primer parametro el enumerado ComandType.Text y como segundo parametro la instruccion SQL.
Las filas que devuelve la consulta se convierten en la primera tabla del dataset, devolvemos esta tabla.

public DataTable GetEmpleados()
{
    Database dataBase = DatabaseFactory.CreateDatabase("AdventureWorks");
    string sql = "SELECT * FROM HumanResources.Employee";
    DataSet dataset = dataBase.ExecuteDataSet(CommandType.Text, sql);
    DataTable tabla = dataset.Tables[0];
    return tabla;
}

El metodo ExecuteDataSet abre una conexión a la base de datos AdentureWorks, ejecuta la consulta, y luego inmediatamente cierra la conexión. Esta es la practica recomendada en acceso a bases de datos, las conexiones son recursos escasos y deben mantenerse abiertas el menor tiempo posible.

Con esto terminamos el tutorial basico de Data Access Application Block. Configuramos la conexion, obtuvimos el objeto DataBase con el cual ejecutamos una consulta SQL cuyo resultado quedo almacenado en una DataTable.
Suegiero continuar con el articulos Ejemplos Data Access Application Block Tareas mas Comunes que presenta varios ejemplos de operaciones que se pueden realizar con DAAB partiendo como base de la configuracion que realizamos en este tutorial.


Vea tambien