Hola gente! No segui toda la discusion ultima, estan hablando de repositorio en terminos de DDD?.
Si es asi, si del repositorio llamamos a un DAO? Algo como: - Repositorio en el dominio - IDAO, DAO en la capa de infraestructura - Repositorio llama a DAO - Puede haber entonces FacturasPendientesRepositorio, FacturasCanceladasRepositorio, o cosas asi, o simplemente RepositorioFacturas - Por debajo DAOFacturas. Ahi esta NHibernate - En infraestructura esta el el manejo de trasacciones - Desde app u otros, se llama a infraestructura para las transacciones - Si cambio NHibernate por otra cosa, cambio el DAO, no el repositorio (aunque claro, lo mas dificil de reemplazar la navegacion con lazy) - No se me dio, pero no hice DAO en memoria, si tuve que hacer algo en memoria, hay un FacturasXRepositorioEnMemoria. Cuando se corren los tests, solo hace falta entonces referenciar a Dominio. - Cuando quiero reusar DAOFactura y demas, lo puedo reusar desde otro sistema sin DDD. - Puedo testear los DAO separado de repositorio y DDD. En lo descripto arriba, Repositorio es mas relacionado al dominio, puede ser reemplazado por "todo en memoria", y el DAO es un servicio de la capa de infraestructura, que repositorio consume. Puede que quede un Repositorio delgado, pero me piacce. Nos leemos! Angel "Java" Lopez http://www.ajlopez.com/ ----- Original Message ----- From: Gustavo Ringel To: [email protected] Sent: Friday, July 11, 2008 9:01 AM Subject: [NHibernate-Hispano] Re: Jeffrey Palermo y su uso de NHibernate Carlos, no estoy seguro de si abogar por dario, pero en mi caso en los repositorios "oculto" a nhibernate, pero paso DetachedCriteria con Order, o un namedsql...es decir, no me privo de usar las facilidades de NHibernate. Quizas dario se referia a evitar usar DetachedCriteria por ejemplo para pasar a un repositorio porque sino no puedo cambiar maniana a linqtosomething... Si no permitis pasas detachedcriteria tenes que crearte tu propio lenguaje para adentro del repositorio pasar a linq o criteria y eso suena para la mayoria de las apps demasiado complejo... En mi caso afuera de los repositorios si tengo algo con NHibernate puede ser en los servicios de dominio la creacion de un DetachedCriteria nada mas...pero el repositorio esta fuertemente orientado a NHibernate. Gustavo. 2008/7/11 Carlos Peix <[EMAIL PROTECTED]>: Hola Dario, Creo que yo soy de esos que ocultan NH dentro de repositorios. Se que tiene pros y contras. Por supuesto manejo la sesion y transaccion mas arriba, manualmente o con las respectivas facilities de Castle. De todas maneras, no esta de mas preguntar: ¿Por que no te gusta tener NH dentro de los repositorios? Carlos Peix ---------------------------------------------------------------------------- De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Dario Quintana Enviado el: Jueves, 10 de Julio de 2008 12:19 a.m. Para: [email protected] Asunto: [NHibernate-Hispano] Re: Jeffrey Palermo y su uso de NHibernate Hola gente Por el titulo del articulo pensé que estabamos envolviendo un repositorio, pero no fué así por suerte, estos repositorios que sepultan a NHibernate dejándole respirar por 4 agujeritos, lease 4 métodos para hacer ABML ya empiezan a asustarme. Para requerimientos simples de manejo de Session me parece bárbaro, según lo que pinta el blog-autor. Hay que ver que están, o que están por experimentar los muchachos de Burrow en el manejo de Session Non-Web, habrá que esperar. Un abrazo On Wed, Jul 9, 2008 at 11:32 PM, Carlos Peix <[EMAIL PROTECTED]> wrote: Hola Angel, Es un enfoque bastante simple pero efectivo. No le permite mucha variante en el manejo de sesion como, segun escuche, permite Burrow. Por otra parte, yo uso la exactamente la misma idea para ASP.NET pero usando el stack the Castle: - NHibernateFacility te provee el manejo de session factory - NHibernateSessionWebModule se encarga de manejar el session-per-request - ATM o Automatic transaction facility (a veces), que se integra con los anteriores mediante Windsor. Tambien manejo los controllers de monorail y las fachadas de servicio registradas en Windsor, de esa manera reciben automaticamente las dependencias (repository factory, etc) En pocas palabras, es un buen enfoque si no tenes requerimientos complejos de manejo de session. Un abrazo Carlos Peix -- Dario Quintana http://darioquintana.com.ar --~--~---------~--~----~------------~-------~--~----~ Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano -~----------~----~----~----~------~----~------~--~---
