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

#11 Lluís Franco
20/06/2006 - 11:26 | Informe spam
:-)
Hola Daniel,

Una estupenda iniciativa!
Ardo en deseos de empezar a probarlo.
Sólo una pregunta: Si no utilizáis DataSets ¿cómo manejáis las estructuras
maestro/detalle? Sobre todo la parte de las actualizaciones...

Saludos,

Lluís Franco i Montanyés
[MS-MVP-MCP Visual Basic]
Web: http://www.uyssoft.com
Blog: http://msmvps.com/lfranco
(Guía de netiquette del foro)
http://www.uyssoft.com/MSNews.aspx?sm
FIMARGE, S.A.
Principat d'Andorra

Tel.: +376 805 100
Fax: +376 824 500
Mi Perfil MVP en:
https://mvp.support.microsoft.com/profileaa1615-1a2f-4202-bc3f-aec297d967d2
This posting is provided "AS IS" with no warranties, and confers no rights.
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho
Respuesta Responder a este mensaje
#12 Vyacheslav Popov
20/06/2006 - 11:28 | Informe spam
Hoa Daniel,

¿Entonces la idea es generar el modelo de dominio a partir del modelo
relacional?
Si es así, ¿que criterios se tendrán en cuenta para generar generalizaciones
o herencias?
y ¿por que no generar el modelo relacional a partir del modelo de dominio?


Saludos.

"Daniel A. Calvin" escribió en el mensaje
news:OIITQ6$
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:
Hola Daniel, ¡Un proyecto muy ambicioso!

¿Como transcurrirá el mapeo objeto-relacional?

¿Donde se puede ver el proyecto y documentación?

¿Cómo se puede participar?

Saludos.

"Daniel A. Calvin" escribió en el
mensaje news:%
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









Respuesta Responder a este mensaje
#13 Carolina Alvarez
20/06/2006 - 12:18 | Informe spam

Modelo totalmente tipado, esto significa que las clases de persistencia y
recuperacion de objetos devuelven un tipo especifico y no un tipo object




Tiene ventajas reales ese esquema ?




"Daniel A. Calvin" escribió en el mensaje
news:%
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

Respuesta Responder a este mensaje
#14 Diego \(DCD\)
20/06/2006 - 12:32 | Informe spam
Hola,

parece muy interesante esta herramienta, servirá también para crear
aplicaciones para dispositivos moviles.

Un saludo.

"Daniel A. Calvin" escribió en el mensaje
news:%
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


Respuesta Responder a este mensaje
#15 Vyacheslav Popov
20/06/2006 - 12:44 | Informe spam
NHibirnate, ObjectMapper.Net, etc..?


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.



¿Entonces, la responsabilidad de hacer persistente a un objeto no se
delegará a la capa de datos sin el propio objeto del dominio será
responsable de hacerse persistente?
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida