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
-~----------~----~----~----~------~----~------~--~---

Responder a