Ya te deben una cerveza. 2011/6/6 Carlos Peix <[email protected]>
> Hola Arlen, > > 2011/6/1 Arlen <[email protected]> > >> ¿Los DTO deberian soportar la navegacion entre entidades? No se muy >> bien como se le llama a esto. Pero es que si tengo una entidad Usuario >> y otra Rol, por ejemplo, a traves del usuario puedo navegar hasta el >> rol o referenciar el rol. Disculpen mi mala explicacion. >> > > Los DTOs debe estructurarse en funcion de las necesidades del consumidor > *de ese webservice en particular*. en otras palabras, cada servicio o > familia de servicios, deberian tener su propio juego de DTOs. > > Dentro de esa estructura de DTO pueden tener cualquier estructura, sin > embargo suele buscarse la simplificacion o aplanamiento de la estructura (lo > contrario de un modelo muy profundo). > > > ¿Donde deberia ubicar los DTO en la capa de datos o en la de negocio? >> > > Ninguna de las dos, los DTOs deben estar bien cerca del servicio al que > asisten, entonces, deben estar en la capa de servicios. Incluso, ante algun > cambio de la version del servicio, deberias prever un cambio completo del > juego de DTOs > > > >> ¿Es factible crear varios DTO de una misma entidad? ¿Como aseguro que >> si la entidad que representa cambia el DTO correspondiente cambie? >> > > Si, si tenes varias "familias de servicios" cada una deberia tener su > propio juego de DTOs ajustados a las necesidades de los servicios y sus > clientes. > Con respecto al cambio, usualmente se busca lo contrario. Uno no quiere > cambiar las interfaces de los servicios externos ante cada cambio del modelo > interno o, por lo menos, uno desea desacoplar eficazmente cambios en ambos > entornos. > Por supuesto, cuando cambia el modelo interno seguramente debe cambiar el > codigo de mapeo entre ese modelo interno y los DTOS, pero los DTOs no > cambian. > > Por ejemplo, en los servicios publicos (XML webservices), comienzo con una > estrucura mas o menos asi: > > {webroot}/Clima/v1/Hoy.asmx > {webroot}/Clima/v1/DTOs/Temperatura.cs > {webroot}/Clima/v1/DTOs/Viento.cs > > Luego, cuando llega la version 2 del servicio, duplico todo y hago los > cambios necesarios y promuevo gentilmente los clientes de la version 1 a la > 2. > > ---------------------------------- > Carlos Peix > > -- > 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
