Canal RSS

Cooperator Framework

Publicado en

Hace un tiempo que vengo usando la versión del SVN de Cooperator Framework, mientras lo pruebo, voy ayudando al grupo de desarrollo comunicándole los bugs que encuentro y dando alguna que otra sugerencia. Creo que el estado actual del framework permite que los desarrolladores lo vayan probando y conociendo. El motivo de este post es hacerlo público y que la gente se entere de que se trata y para que sirve.

¿Que es?

Cooperator Framework es un conjunto de herramientas y librerías que agilizan el desarrollo de aplicaciones en Microsoft .Net Framework 2.0, distribuido bajo licencia Open Source.

La tarea principal que desempeña esta herramienta es el mapeo de objetos sobre una base de datos relacional, caracterizándose por la generación semiautomática de las clases a partir del modelo que obtiene accediendo a la Base de datos.

Este framework fue desarrollado con el objetivo de lograr un modelo 100% orientado a objetos, facilitándole el camino a quienes todavía están condicionados por el modelo relacional.

Para personalizar el código a generar, el Framework dispone de una herramienta llamada Cooperator Modeller, que permite seleccionar las clases que van a generarse y editar sus características, también, permite generar el código en el lenguaje que prefiera el programador, ya que se vale de Scripts de generación para realizar esta tarea. El modelo resultante puede ser guardado y editado posteriormente, ayudando al mantenimiento y crecimiento del sistema, y el código generado es extensible mediante el uso de clases parciales.

Una de las base de diseño del Framework que no utiliza Datasets ni Reflexion, y que las clases de persistencia y recuperación de objetos devuelven un tipo especifico y no un tipo genérico u ‘Object’. Estos objetos aprovechan las nuevas características de .Net Framework 2.0, como Generics, evitan el acoplamiento implementando Interfaces y se pueden enlazar a controles de formularios, tanto Windows como Web.

El código generado

Los grupos de clases generados por Cooperator son, a grandes rasgos, Rows, Gateways, Entitys y Mappers.

Las clases del grupo Rows son una por cada tabla de la base de datos y representan un registro de la misma. A cada una le corresponde una clase del tipo Rowset que representa un grupo de Rows. Ambas, Row y Rowset, son cargadas y guardadas en base de datos por su correspondiente Gateway, que ejecuta stores procedures en llamadas a sus métodos para realizar las tareas de mapeo.

Las clases del grupo Entitys heredan de Rows y las extienden con propiedades de los tipos generados por el Framework. Dependiendo de las relaciones de las tablas en la Base de Datos, estas van a ser un objeto o una colección de objetos, y van a representar una relación simple, o una agregación a la Entidad, esto es bastante importantes de entender e identificar, ya que los Mappers, objetos encargados de realizar las tareas de mapeo de Entitys, cambian su comportamiento con respecto a estas propiedades dependiendo de lo que representan conceptualmente.

Más allá del Mapeo

Además de las funciones de ORM, Cooperator posiblita trabajar con Units of Works e implementa herramientas de seguridad y de validación de datos.

»

  1. Pingback: Cooperator Framework « IBlogMgr blogMgr = (IBlogMgr)Factory.Create(Ezequiel Jadib);

  2. ¿Conoces NHibernate?

    Responder
  3. No, la verdad es que nunca lo usé, ¿que tal está?

    Responder
  4. tengo entendido que nhybernate no soporta strored procedures, hay una nueva version?

    Responder

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: