Cooperator framework

19/06/2006 - 18:25 por Daniel A. Calvin | Informe spam
Amigos, les cuento que hace unos meses empezamos a trabajar con un grupo de
amigos en un proyecto para crear un framework que saque provecho de las
ventajas de .Net 2.0
La idea original fue de Eugenio Serrano y me invito a trabajar junto a el y
otros amigos.
El proyecto es un framewok de desarrollo, seguramente estarán pensando: otro
más :-)
Nos decidimos a hacer este nuevo con la idea principal de que sea bien facil
de usar y de acercar los objetos a mas gente de una forma facil.

Hemos trabajado con mucha energía estos últimos meses y hemos logrado armar
algo muy interesante según nuestra opinion.

Los objetivos que nos planteamos fueron:

- 100% Orientado a objetos
- Aplanar la curva de aprendizaje y facilitar el camino de quienes aún están
condicionados por el modelo relacional.
- No usar datasets
- No usamos reflection.
- Modelo totalmente tipado, esto significa que las clases de persistencia y
recuperacion de objetos devuelven un tipo especifico y no un tipo object.
- Debido a la potencia de VS2005 se pueden bindear estos objetos a los
controles sin escribir una linea de codigo, y aporvechar las venjas de
edicion de VS2005
- No depende de la estructura relacional, soporta cualquier tipo de
estructura de base de datos.
- No hay que modificar la Primary Key o crear un campo unique en las tablas.
- Usa stored procedures.
- Soporta concurrencia
- Las condiciones de busqueda se expresan mediante objetos específicos
tipados y extendibles por el programador que terminan ejecutando un Stored
Procedure en forma transparente.
- En la capa de negocio todo se expresa en términos del dominio, incluido
los filtros y busquedas.
- Genera código en base a scripts escritos en el lenguaje que prefiera el
programador. Por defecto estan en c#, pero puedo escribir un script en c#,
para generar código SQL, o puedo escribir un script en vb.net para generar
código c#.
- Hay un modelo propuesto de las clases que se generaran que se basa en el
modelo de datos, pero el programador, antes de generar las clases edita
dicho modelo en una herramienta muy facil de usar y define como sera el
modelo que desea crear.
- Si las opciones de modelado que provee la herramienta no alcanzan, el
programador puede editar los templates y generar su propio modelo.
- La herramienta de generacion, genera 2 archivos por cada clase usando
clases parciales pensado para que el programador solo modifique una de las
2.
Si mas tarde se agrega un nuevo campo a una tabla, se puede volver a generar
el otro archivo de manera de no "pisar" cualquier codigo que el programador
ya haya escrito en esa clase.
- Soporta transacciones desconectadas.
- Licencia tipo open source, aún no hemos optado por cual, pero será de
código abierto.

Todo esto lo logramos de forma poco invasiva, implementando interfaces y
valiendonos de las nuevas características del net framework 2.0, sobre todo
Generics y clases parciales.

El framework será publicado en un término no mayor a 60 días.

Nos gustaría mucho contar con algún retorno por parte de la comunidad,
principalmente que cosas les molesta de otras herraminetas de este tipo,
incluso que les gustaría tener y aún no han encontrado en otros frameworks.

Desde ya muchas gracias

Daniel Calvin

Preguntas similare

Leer las respuestas

#6 Daniel A. Calvin
20/06/2006 - 02:14 | Informe spam
Hola Vyacheslav Popov

Gracias por el interes y el ofrecimiento.

Coopertor hace mapeo estático. Que quiere decir eso?, no usa ni atributos,
ni xml, ni nada que permita cambiar dinamicamente las realaciones de mapeo.
En cambio genera los mappers totalmente tipados.
La generación se hace en base a un modelo que se infiere del modelo
relacional, pero, tiene algunas particularidades.

El modelo inferido detecta relaciones que serán asociaciones potenciales.

Estas Asociaciones podrán ser o Agregaciones o ser tratadas como
Asociaciones virtuales digamos, se modelan pero no se implementan.
Todo esto se logra por que sobre el modelo inferido luego se aplica el
criterio del programador.
Cooperator provee un asistente que permite tomar desciciones sobre el moelo
inferido para mejorarlo.
Decir que asociaciones se implementan, que nombre reciben las propiedades,
etc, etc.
Con todo esto se ejecutan una serie de scripts que genran el codigo, crean
los store, etc, etc

Utilizamos clases parciales para que el código generado se pueda regenerar
sin pisar el código escrito por el programador para cada clase.
Ocultamos aquellas cosas que ensucian las entisades de negocio recurriendo a
la implementacion de interfaces que deben ser invocadas en forma explicita.
Es la unica formad ever ciertas propiedades o metodos.

Bue, un cantidad de cosas que no nos resultaban comodas de otros frameworks.

En cuanto a donde se puede ver
Eso lo estamos definiendo, aun no hemos decidido donde publicar.
El plazo de 60días es justamente por eso y para poder completar algunos
dealles menores, pero, importantes.

Un abarzo y espero mantenerlos al tanto.

Mientras tanto cualquier pregunta o sugerencia que quieran hcer será
bienvenida.

Daniel Calvin
MCP

"Vyacheslav Popov" escribió en el
mensaje news:
Mostrar la cita
#7 Daniel A. Calvin
20/06/2006 - 02:20 | Informe spam
Hola Tito

Podrás construir aplicaciones ASP.Net, Winforms y, si quieres, de consola.

Mostrar la cita
Este es el chiste Tito, todo lo que maneja Cooperator son objetos y/o listas
de objetos.
Esto permite que tu aplicación sea muy OOP y que puedas expresar todo en
base al dominio el problema.

Para los que aun están muy centrados en los datos van a existir ejemplitos y
un modelo que ponga las cosas muy a la mano, para que la transición sea mas
suave.

Daniel Calvin
MCP


"Tito" escribió en el mensaje
news:
Mostrar la cita
#8 Daniel A. Calvin
20/06/2006 - 02:40 | Informe spam
Mostrar la cita
Ninguna ventaja, simplemente podras aplicar LinQ sobre las colecciones y
entidades de Cooperator

Mostrar la cita
Cooperator no es un ORM, va a ir un paso mas alla, vas a poder integrar
facilmente WWF y WCF.
En la segunda versión que publiquemos, tal vez, solo tal vez, incluira algo
para implementar aplicaciones distribuidas en forma transparente.

Algo asi como un WCF del sub-desarrollo.. ;-)

Mostrar la cita
Creo que hay varias diferencias, no hay que luchar con los archivos de
mapeo, cripticos muchas veces y que la cosa trata de ir mas alla de la capa
de datos.
Con Cooperator podes bindear una coleccion de clientes a una DataGridView y
tratarla en tiempo de diseño, es totalemente tipado.
Es una de las ventajas.
Y pese a ser tipado, tarbaja con transaciones que resuelven colaboraciones
entre objetos de distinto tipo.

Igualmente, no pdemos comparar Cooperator con otros productos, vamos por la
primer version, tengan eso en cuenta

Daniel Calvin
MCP




"Vyacheslav Popov" escribió en el
mensaje news:%
Mostrar la cita
#9 Raul
20/06/2006 - 03:22 | Informe spam
Utiliza Store Procedures tambien para los cruds (insert, update, delete) de
las tablas ?


"Daniel A. Calvin" escribió en el mensaje
news:%
Mostrar la cita
#10 Daniel A. Calvin
20/06/2006 - 10:21 | Informe spam
Hola Raul

Si, para todo SP, es el único medio de acceso a la base de datos.

Daniel Calvin


"Raul" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida