2.27.2010

Usando el ObjectDataSource en una Aplicación n-Layer

Uno de los controles menos utilizando cuando se desarrollan aplicaciones en .NET es el objeto ObjectDataSource. He visto en muchas ocasiones el uso del objeto SqlDataSource para conectarse directamente a una base de datos SQL y realizar operaciones contra la misma, pero en raras ocasiones he visto a los desarrolladores aprovecharse del objecto ObjectDataSource y sacarle verdaderamente provecho. Para entender como funciona este objeto, vamos a crear una aplicación Web que nos va a permitir obtener registros a través de este control y despelgarlos en un DataGrid.

El ObjectDataSource es un objeto que se pega directamente a los métodos contenidos en una clase específica. Idealmente a los métodos de nuestra lógica de negocios. Por esta razón vamos a construir una tabla llamada temarios y vamos a crear una capa de acceso a datos utilizando el Entity Framework.

En la siguiente imagen se muestra la tabla temarios la cual es con la que vamos a trabajar.

image

Seguidamente vamos a crear nuestra capa de acceso a datos y agregar un modelo del Entity Framework para tener acceso vía ORM al repositorio de datos.

image

image

El siguiente paso es crear nuestra logica de negocios. Para esto vamos a crear otra librería en la cual vamos a agregar las clases y la lógica de negocio necesario desde nuestra página de temarios. En esta capa vamos a usar LinqToEntities. Nótese el nombre de los métodos resaltado, porque los vamos a utilizar desde el ObjectDataSource.

image

Seguidamente creamos una página Web y le agregamos un DataGrid el cual llamaremos dgTemarios.

image

Ahora procedemos a agregar un objectDataSource dentro de nuestra pantalla y le damos click en el tag de ayuda donde dice “Configure Data Source”.

image

En la primera pantalla del wizard, seleccionamos el componente y la clase del cual queremos utilizar los métodos para acceder al repositorio de datos, en nuestro caso vamos a utilizar la clase Temario_BL de la lógica de negocios de la aplicación.

image

En la siguiente pantalla del wizard procedemos a configurar el ObjectDatasource. Como podemos ver en la figura siguiente, el wizard nos presenta las cuatro operaciones básicas y nos permite seleccionar los métodos que queremos para cada una de las operaciones. En nuestro caso, vamos a seleccionar ObtenerTemarios, el cual retorna una lista genéricas de la entidad Temario - List<Temario>.

image

El objectDataSource debe verse así una vez configurado con el método select – Nótese que no estamos obligados a configurar todos los métodos del objectDataSource.

image

El último paso es ligar el Datagrid con el ObjectDataSource. Para lograr esto, procedemos a modificar la propiedad DataSourceId a través del tag inteligente del grid y seleccionado el datasource deseado en el combo de Choose Data Source tal y como lo muestra la siguiente figura.

image

Con esto, ya podemos obtener los registros desde el repositorio de datos.

3 comentarios:

Anónimo dijo...

Muy buen tema.
Pero me queda la duda de como haria el metodo update en el entity framework para enlazarlo.
Tienes algun ejemplo?

Diego Rojas dijo...

Que tal? gracias por leer el blog. Si, en los siguientes posts que tengo previstos, voy a hacer el borrado, la inserción y la actualización de un registro.

Saludos y gracias de nuevo

Anónimo dijo...

Amigo espero no te hayas olvidado de ese post sobre el borrado y la inserción ya que lo sigo esperando :)

Saludos.