Pues el VAN de DDD lo vi anoche antes de acostarme y después de
postear aquí. Lo vi de casualidad y me encantó, mi principal problema
a la hora de encontrar info es que los nombres me suenan a "Chino",
para mi todo esto es totalmente nuevo y voy cogiendo el hilo poco a
poco, veo que hay cantidad de información de todo y además mucha en
español (lo cual me ayuda mucho) pero el problema es que no se como se
llama lo que busco en cada situación.

Ahora me pongo a ver el VAN de TDD.

Muchas gracias.

Muchas gracias Nelo

On 28 nov, 05:00, Nelo Pauselli <[email protected]> wrote:
> Si nadie te contesta es que nos mareamos leyendo el mail... quizás
> puedas probar con preguntas (mails) mas puntuales, aunque sean
> varias...
>
> respecto a la arquitectura, cada uno puede hacer lo que mas le guste y
> mas de adapte a los fines que busca... es diferente si le das
> prioridad el bajo acoplamiento, o la velocidad de desarrollo, la
> performance de tu aplicación.
>
> ¿viste la VAN de DDD de Angel Lopez?... esa creo que te puede dar
> ideas para la arquitectura (aunque DDD no sea solo arquitectura).
>
> En cuanto a los proyectos, yo agregaría algunos de test (y hasta te
> diría que empieces a programar por ahí), es una buena forma de limitar
> los "pedos mentales" como dice el filósofo Maulo. Esto te van marcando
> lo que necesitás...
>
> luego si, refactoring y a mejorar el código, para esto en breve vas a
> tener el video de la VAN del otro día que dio Martín Salias sobre
> Refactoring.
>
> En resumen, no pienses lo que vas a necesitar, pensá los test y ellos
> te van a decir lo que realmente necesitas y, teniendo test,
> refactoring y a mejorar las implementaciones. (También hay VANs sobre
> TDD creo)
>
> nelo.
>
> 2010/11/28 tolemaC <[email protected]>:
>
>
>
>
>
>
>
> > Hola de nuevo,
>
> > Creo haber dado con un modelo de diseño que me va bien para mi
> > aplicación.
> > He llegado a él usando el container Windsor de Castle Project, he
> > hecho unas pruebas y parece que todo "me" cuadra.
>
> > Para las pruebas he creado una solución, pongamos que se llama
> > "MiAplicacion", en la aplicación tengo dos formularios, uno para
> > visualizar, editar, modificar y eliminar (CRUD) cualquier entidad
> > (usando Generics) y otro especifico que trabaja con Animales y
> > Personas usando un negocio especifico.
>
> > Os enseño la estructura, será más facil de entender así. He intentado
> > aplicar lo que he aprendido viendo las VAN de Alt.net-hispano durante
> > estos días.
> > Me lo he organizado de la siguiente forma:
>
> > MiAplicacion (Solución)
> >    MiAplicacion.Dominio (Mis entidades)
> >        Animal.cs
> >        Persona.cs
> >        Entidad.cs (Base para animal y persona)
> >    MiAplicacion.Dominio.Impl (Los mappings de mis entidades en NH)
> >        Animal.hbm.xml
> >        Animal.hbm.xml
> >    MiAplicacion.Datos (Interfaces de acceso a datos)
> >        IDaoGenerico.cs
> >    MiAplicacion.Datos.Impl (Implementacion de acceso a datos con NH)
> >        DaoGenerico.cs
> >    MiAplicacion.Servicio (*)
> >        Negocio (Carpeta de proyecto)
> >            IPersonasAnimalesNegocio.cs (Negocio especifico para
> > animales y personas)
> >        Controlador (Carpeta de proyecto)
> >            ICRUDGenericoControlador.cs (Controlador para un
> > formulario CRUD)
> >            IPersonasAnimalesControlador.cs (Controlador específico)
> >    MiAplicacion.Servicio.Impl (*)
> >        Negocio (Carpeta)
> >            PersonasAnimalesNegocio.cs (Implementacion de
> > PersonasAnimalesNegocio)
> >        Controlador (Carpeta)
> >            CRUDGenericoControlador.cs (Implementación de
> > ICRUDGenericoControlador)
> >            PersonasAnimalesControlador.cs (Implementacion de
> > IPersonasAnimalesControlador)
> >    MiAplicacion.WinForm (Winform Application)
> >        CRUDGenericoForm.cs (Formulario genérico CRUD)
> >        PersonasAnimalesForm.cs (Formulario específico)
>
> > Bien, el proyecto "MiAplicacion.Servicio" y su implementación lo he
> > marcado con (*) debido a que creo que he hecho algo poco ortodoxo, en
> > "Servicio" tengo la intención de meter las clases e interfaces de
> > negocio y los controladores de las vistas, he pensado en ponerlos
> > juntos porque en cierto modo ambos tienen algo de negocio.
>
> > Mi idea es usar Vista Controlador para las interfaces por que las
> > interfaces no las hago yo, las hace un diseñador, por lo tanto de
> > arriba hacia abajo e intentado seguir el orden: Vista (WinForm),
> > Controlador, Negocio, Dao.
> > Lo curioso que me ha pasado es que al implementar el controlador del
> > CRUD Genérico me he dado cuenta de que no había negocio, no se como lo
> > veis vosotros, pero yo en un formulario que muestra una lista de
> > animales, en el que puedes editar, borrar y modificar no veo negocio
> > especifico, así pues lo que he hecho ha sido que en
> > "CRUDGenericoControlador" no he usado una clase de negocio, sino que
> > directamente uso el DaoGenerico para persistir y leer los datos. Esto
> > me ha abierto dos escenarios distintos, procesos que tienen un negocio
> > especifico donde podemos usar distintos Dao para obtener datos de
> > distintas entidades e interactuar con ellas y procesos tan triviales
> > en los que no existe un negocio especifico en los cuales solo se
> > trabaja con una entidad, por lo tanto me ahorro pasar por un
> > "NegocioGenerico" que solo haga de wrapper al Dao.
>
> > ¿Que opinais sobre esto? ¿Lo veis aceptable?
>
> > Bien, tanto en "DaoGenerico" como en "CRUDGenerico" como en
> > "CrudGenericoForm" he usado generics, por lo tanto pueden trabajar con
> > cualquier entidad, lo que me ha maravillado de Castle Windsor ha sido
> > que me he definido objetos para la vista, el controlador y el dao y me
> > ha funcionado perfectamente usando generics, en Spring.Net no lo
> > conseguí (aunque no soy un experto) de esta forma defino los objetos
> > así:
>
> >      <component id="DaoGenerico"
> > service="MiAplicacion.Datos.IDaoGenerico`1, Data"
> > type="MiAplicacion.Datos.Impl.GenericoDao`1, MiAplicacion.Datos.Impl">
> >      </component>
> >      <component id="CRUDGenericoControlador"
> > service="MiAplicacion.Servicio.Controlador.ICRUDGenericoControlador`1,
> > MiAplicacion.Servicio"
> > type="MiAplicacion.Servicio.Impl.Controlador.CRUDGenericoControlador`1,
> > MiAplicacion.Servicio.Impl">
> >        <parameter>
> >          <dao>${DaoGenerico}</dao>
> >        </parameter>
> >      </component>
> >      <component id="CRUDGenericoForm"
> > service="MiAplicacion.WinForm.CRUDGenericoForm`1,
> > MiAplicacion.WinForm" type="MiAplicacion.WinForm.CRUDGenericoForm`1,
> > MiAplicacion.Winform">
> >        <parameter>
> >          <controlador>${CRUDGenericoControlador}</controlador>
> >        </parameter>
> >      </component>
>
> > Y lo mejor es que para instanciar el form generico para editar
> > animales puedo hacer esto:
>
> > var FormularioCRUDAnimales =
> > windsorContainer.Resolve<CRUDGenericoForm<Animales>>();
>
> > Bien, una vez metido en Windsor he usado la Facility
> > NHibernateIntegration y las transacciones automáticas de Windsor
> > (usando atributos).
>
> > Ahora tanto en mis controladores como en mis clases de negocio puedo
> > hacer uso de la sesión NH con el SessionManager de Castle y de las
> > transacciones con los atributos, si no me equivoco con esto tengo una
> > sesión por petición (session per request creo que se llama) por lo
> > tanto lo que tengo que controlar es que cuando esté trajando con datos
> > en pantalla, dichos datos están fuera de cualquier sesión así que
> > podría tener problemas con el lazy load y demás. Pero, "si no me
> > equivoco", bastaría con asociar las entidades a una nueva sesión antes
> > de trabajar con ellas.
>
> > ¿Me equivoco?
>
> > Ya se que esta no es la lista de "Ayuda a "tolemaC"", y que quizás de
> > mucho la tabarra, si me paso preguntando sentiros libres en decirmelo,
> > lo aceptaré de buen grado.
>
> > Un saludo,
>
> > --
> > Para escribir al Grupo, hágalo a esta dirección: 
> > [email protected]
> > Para más, visite:http://groups.google.com/group/NHibernate-Hispano

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a