Y ya para finalizar mi intervención en este "thread", que os estaré
aburriendo, alguno conocéis la arquitectura SDO de IBM? sirve para
atajar más o menos esta problemática...

2007/1/29, Francisco A. Lozano <[EMAIL PROTECTED]>:
> Creo que hay más motivos por los que pasar entidades fuera del
> contexto local de la aplicación no es una buena idea, incluso con un
> modelo de dominio completamente anémico como los tuyos. Por ejemplo,
> la seguridad... Compruebas que el cliente haya modificado únicamente
> lo que tu le dejes, antes de hacer un update, (o saveOrUpdate, o
> merge, o lo que sea) con el objeto que te viene de fuera? O te fías
> del "cliente"? (grave fallo de seguridad, en tal caso). Aparte,
> serializas los proxies de las propiedades lazy-loading?  o qué
> serializas?
> Eso de "Limpiar" objetos Nhibernate mediante reflexión es una
> grandísima idea y me gusta mucho, he hecho algún intento en el pasado
> (intentando pasarle objetos Hibernate a Google Web Toolkit, por
> ejemplo :) pero no lo he usado nunca en nada serio. Cómo defines los
> fetch-plans? es decir, hasta qué profundidad del grafo de objetos
> preparas para ser transferido? Y cómo le das esa info a la capa de
> reflexión? Xquery o algo así?
>
> Creo que escupir entidades completas por un canuto de red está mas
> cerca de arquitecturas cliente-servidor de-antes que de arquitecturas
> 3(omás)-tier modernas.
>
> Prefiero limitar los DTOs a
> la-información-que-necesita-ese-caso-de-uso-y-nada-más en vez de ir
> pasando grafo de entidades completo que requiera o pueda requerir + la
> habilidad de lazy loading remoto. Así, los "mensajes" que atraviesan
> la red están predefinidos (representaciones de DTOs serializados en
> XML o en binario o en lo que corresponda), lo cual es mucho más
> correcto desde el punto de vista de un protocolo de red.
>
> 2007/1/29, "Andrés G. Aragoneses [ knocte ]" <[EMAIL PROTECTED]>:
> >
> > Angel "Java" Lopez escribió:
> > > Hmmm.... Dario, en mi opinion, lo mas limpio es enviar un mensaje, un DTO.
> > > El mapeo del NHibernate, lazy loading, y demas, queda mas claro puesto y
> > > visto solamente desde el servidor. Lo ideal, desde un modelo de dominio.
> > >
> > > Pero a una aplicacion externa, a un cliente remoto, y demas, le enviara un
> > > clasico DTO, adecuado a lo que necesita en ese momento. Apareceran 
> > > entonces
> > > fachadas remotas, encargadas de resolver como conversar con lo que ya
> > > tenias, y enviar y recibir DTOs en cada servicio expuesto remotamente.
> > >
> > > Claro, por ahi hay que armar clases adicionales, y conversores de objetos 
> > > de
> > > dominio a DTOs y demas.... Pero ya estaras adivinando quien generara el
> > > codigo... :-)
> >
> > Vaya, parece que llego un poco tarde a esta conversación tan interesante :)
> >
> > Por si a alguien le interesa, yo he enfocado la solución a este problema
> > desde otro punto de vista:
> >
> > Las clases de mi modelo (que son leídas por NHibernate) se podría decir
> > que no tienen ningún tipo de lógica de negocio (prefiero sacarla al
> > Controlador en lugar de que se queden en el Modelo; ya sabéis, MVC ;) ),
> > por tanto se podrían calificar de DTOs.
> >
> > Como uso NHibernate en lugar de ActiveRecord, los únicos "metadatos" que
> > tengo que eliminar para transferir objetos son las colecciones internas
> > de NHibernate y los objetos con proxy, que se traducen en objetos o
> > colecciones vagas.
> >
> > Esta transformación la hago mediante un método que usa Reflection para
> > examinar su contenido. He optimizado el método lo máximo posible con las
> > técnicas de optimización de Reflection que he ido aprendiendo.
> >
> > El resultado final es que no hacen falta generadores de código ni clases
> > adicionales, por lo que yo creo que no está nada mal.
> >
> > Más info:
> >
> > http://knocte.blogspot.com/2006/12/serializacin-binaria-con-nhibernate.html
> >
> >
> > Por cierto, en cuanto a diferencias entre el framework 2.0 e Indigo
> > (WCF), a mí se me ocurren dos importantes:
> >
> > - Posibilidad de conexión bidireccional directa sin pérdida de canal en
> > cada llamada (algo al estilo del canal bi-direccional de Ingo Rammer).
> > [Aunque aún no he investigado cómo se hace :D ]
> > - Posibilidad de serialización XML de objetos cíclicos. [Idem]
> >
> > Un saludo,
> >
> >         Andrés  [ knocte ]
> >
> > --
> >
> >
> >
> > > >
> >
>

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

Responder a