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

#96 Esther Rodriguez
22/06/2006 - 14:11 | Informe spam
Mostrar la cita
Pero quien discute esto? Sin embargo, cuando intentas decir que tener las
reglas de gestión en una capa separada de la base de datos y te contesta
diciendo que la clave primaria lo debe gestionar la base de datos o SGBD
como él lo llamo, te deja un poco fuera de lugar porque te das cuenta de que
no esta hablando coherentemente. No distingue entre lo que es la integridad
de datos y las reglas de negocio.

Mostrar la cita
Nadie ha dicho lo contrario. Yo puedo también crear un formulario con
Assembly, pero de ahí a que sea eficiente o rentable hay un mundo.

Mostrar la cita
Claro que no y perdona si he dicho algo así, que no creo. Lo que digo que
hay maneras de discutir las cosas. El fin no justifica los medios.

Mostrar la cita
A menos que seas el productor, no :)
#97 Esther Rodriguez
22/06/2006 - 14:12 | Informe spam
Mostrar la cita
Más razón para ser más educado y amable.
#98 Vyacheslav Popov
22/06/2006 - 14:58 | Informe spam
Hola Eugenio, tengo 3 preguntas.

1. ¿Cual será la necesidad de modificar posteriormente los procedimientos
almacenados generados de forma automática?

2. ¿En que consiste el modelado de las entidades con la herramienta?
¿Diagramas de clases UML?

3. ¿Cómo se crean las clases? me explico:
Al usar cualquier ORM genérico se "exige" declarar las propiedades de la
clase en modo lectura-escritura lo que a mi, personalmente, no termina de
convencer. Por ejemplo:

public class Factura
{
.
public Factura() {...}

public int Numero
{
get { return numero; }
set { numero= value; }
}
.
}

// Preferería

public class Factura
{
.
public Factura(int numero) {...}

public int Numero
{
get { return numero; }
}
.
}

Saludos.


"Eugenio Serrano" escribió en el
mensaje news:
Mostrar la cita
#99 Eugenio Serrano
22/06/2006 - 15:10 | Informe spam
Va por partes...

Mostrar la cita
Entiendo amigo, a todos nos pasa eso.. No hace falta que te tardes 2 años
para darte cuenta si la cosa no resulta. Lo mejor es tratar de ir viendo las
distintas alternativas y probando. Y no dije que LINQ tiene un ORM por
dentro, solo digo que aqui no hay magia, y en LINQ no estas trabajando sobre
la base de datos presicamente.

Mostrar la cita
Me parece perfecto que todo el que queira este por aqui, y todos podemos no
estar de acuerdo con monton de cosas, pero siempre en un ambiente de respeto.

Saludos,
Eugenio
#100 Eugenio Serrano
22/06/2006 - 15:21 | Informe spam
Va por partes

"Vyacheslav Popov" wrote:

Mostrar la cita
Que pasa si te aparece un nuevo campo en la tabla ? Para esos casos, puedes
generar los procedimientos almacenados nuevamente, y tambien puedes decirle
al generador que te genere las clases nuevamente, pero solo la parte
automatica. De esta forma no te pisa el codigo que tu ya hayas escrito en
ellas.

Mostrar la cita
No es UML, es una aplicacion windows donde aparecen todas la entidades y por
cada entidad (y sus propiedades) tienes distintas opciones para el generador.

Mostrar la cita
Una de las cosas que puedes personalizar antes de generar, es justamente
eso. Solamente tienes que seleccionar que propiedad quieres que sea ReadOnly
y listo. El generador ya te lo genera como tu quieres. Y ademas, si hay
alguna otra opcion que tu quieres agregar y nosotros no lo hemos incluido,
puedes editar los templates, que estan escritos en C# y modificarlos para que
le generador genere lo que tu quieras.
Y si no te gusta C#, puedes crearte tu propia plantilla en cualquier
lenguaje .Net que desees

Un abrazo,
Eugenio Serrano

Mostrar la cita
Ads by Google
Search Busqueda sugerida