Enterprise Library 2.0 Bloque de Acceso a Datos

 

Ya ha habido varias personas que leen mi blog (que gente rara esa) que me han preguntado como utilizar Enterprise Library, no es que sea un experto pero voy a tratar de forma resumida, aunque creo que a Miguel Jimenez no le va a gustar este post de lo extenso que es.

Es una forma simple y eficiente para trabajar con bases de datos comunes (Sql Server, Oracle…), nos permite transparencia en el desarrollo de múltiples tipos de bases de datos, así como una abstracción entre la base de datos física y lógica. Por ultimo es una forma fácil de ajustar y validar la configuración de la base de datos.

Resumiendo nos permite de una manera facil y comoda poder desarrollar nuestra aplicación y que este abierta a cualquier base de datos en la cual queramos implementar, pero lo mas importante es que se va a estandarizar el manejo de la base de datos en todo la aplicación, evitando diferentes formas de desarrollo y evitando errores comunes.

Vamos a ver el siguiente trozo de código

En este trozo de código podemos ver que la base de datos a utilizar tiene que ser Sql Server, se inicia una transacción, se asigna el comando, se asigna los parámetros y se ejecuta el comando.

Si cambiase a Oracle, debería de cambiar el tipo de comando y las arrobas de los parámetros, significa realmente cambiar mucho código la migración de una base de datos a otra.

Como Utilizar Enterprise Library

Lo primero que debemos de hacer es configurarlo, para ello ejecutaremos la herramienta EntLibConfig.exe que se encuentra junto a las dll’s de Enterprise Library,

Veremos que al ejecutarla aparece la siguiente pantalla

Abrimos un fichero de configuración de la aplicación (web.config o app.config)

Exportar_diapositiva001

Exportar_diapositiva014

Nos muestra la siguiente pantalla

Exportar_diapositiva019

Como podemos observar nos muestra el Connection Strings que tenemos configurado en nuestro fichero de configuración. Tambien podiamos añadirlo desde aquí.

Ahora deberemos de utilizar Enterprise manager.

En el trozo de código anterior podemos ver que no indicamos el tipo de base de datos, porque enterprise manager cuando lea el fichero de configuración instanciar a las clases correspondientes a la base de datos adecuada.

Lo único que hacemos es crear una instancia de la base de datos a traves de la Interface DataBaseFactory, que no sabemos cual es. En el primer trozo cojera la por defecto del fichero de configuración, y si tenemos mas de una base de datos, en el constructor podemos indicarle cual de ellas.

Una vez instanciada la base de datos debemos de ejecutar las sentencias o procedimientos almacenados, no voy a entrar en que es mejor o no para eso hay multiples discusiones en todos los foros.

En la siguiente tabla tenemos los comandos mas utilizados que tienen multiples overloads

  • ExecuteReader():Ejecuta el commando y retorna un IDataReader. Es responsabilidad del llamador cerrar la connexion para que el reader sea destruido.
  • ExecuteDataSet():Ejecuta un comando y retorna un resultado en el Dataset.
  • LoadDataSet():Ejecuta un commando y añade una nueva DataTable al Dataset.
  • ExecuteNonQuery():Ejecuta el commando y retorna el número de filas afectadas.
  • ExecuteScalar():Ejecuta el commando y retorna la primera columna de la primera fila del resultado.
  • UpdateDataSet()_Llma a los respective INSERT, UPDATE, o DELETE sentencias pata cada fila insertada, modificada o borrada en el Dataset.

Como podeis ver realmente las sentencias son muy parecidas a las de .NET solo que en este caso nos abstrae del tipo base de datos a utilizar que configuramos en nuestro app.config o web.config.

5 comentarios sobre “Enterprise Library 2.0 Bloque de Acceso a Datos”

  1. Hola, sabrías decirme de qué manera trabaja la Enterprise Library en el acceso a datos con widows azure? no he encontrado nada y a lo mejor tú puedes echarme una mano. Gracias

  2. Hola, ¿podrías decirme de qué manera trabaja la Enterprise library a la hora de acceder a datos en windows azure? lo he estado mirando y no encuentro absolutamente nada que no sea relativo al loggin. Gracias

Responder a anonymous Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *