Gracias a todos por sus comentarios, he leido bastante informacion
sobre lo que ha propuesto, me ayudaria mucho el link de lo que comenta
Carlos Peix, link para DDD con repository, por cierto ya verifique el
problema que tenia y lo he solucionado, empezare a armar mi proyecto
de la forma en la que me sugieren

saludos y gracias

El día 5 de diciembre de 2009 12:17, Gustavo Ringel
<[email protected]> escribió:
> Un ejemplo de estructura de este tipo con NH, con alguna variacion por
> supuesto esta en el ejemplo de SessionManagement de uNHAddins. Sacado de la
> "arquitectura de goma" propuesta por Fabio...
> Para quien le gusta aplicar YAGNI esa arquitectura puede ser overkill en
> casos sencillos, pero a mi gusto es un buen comienzo para un proyecto...
>
> Gustavo.
> 2009/12/5 Carlos Peix <[email protected]>
>>
>> Hola Edgar,
>> Te propongo que dejemos de lado, por un instante, el tema del error que
>> estas teniendo. Te cuento como armo mis proyectos, asumiendo un punto
>> intermedio en la division en capas (esto es, ni el extremo de una sola capa
>> ni el extremo de cinco capas):
>> Estas serian las capas que yo definiria en una aplicacion estandar:
>> 1) Capa de presentacion, en tu caso, la aplicacion de consola
>> 2) Capa de logica de negocio: lo que serian tus entidades y las clases de
>> logica de negocios (ver nota 1). Tambien incluyo en esta capa las INTERFACES
>> a los servicios de infraestructura.
>> 3) Capa de infraestructura: IMPLEMENTACION (de las interfases definidas en
>> la logica de negocio) de los servicios de infraestructura, en tu caso, los
>> repositorios o DAOs basados en NH. En mi opinion, los mappings debe ir
>> ubicados en estra capa puesto que hacen a la implementacion de la capa de
>> persistencia.
>> El hecho de definir interfaces para tus servicios te permitira programar
>> implementaciones alternativas en caso de tener que realizar tests o
>> reemplazar implementaciones de servicio de acuerdo al ambiente en el que
>> corras tu aplicacion. Aqui ayudan mucho los frameworks de inyeccion de
>> dependencias.
>>
>> ----------------------------------
>> Carlos Peix
>>
>> 2009/12/4 Edgar Ramos <[email protected]>
>>>
>>> Nuevamente gracias por los comentarios, DAO lo ha estaba leyendo,
>>> Repository bajare informacion para enterarme.
>>>
>>> Seguire tu consejo y ha seguir leyendo...
>>>
>>> Al serparar mi proyecto en capas, por lo pronto, un proyecto de
>>> consola que haga las veces de capa de Presentacion,
>>> mis entidades con sus respecivos archivos de mapeo (archivos como
>>> recurso inscrustado) en otro proyecto biblioteca de clases para mis
>>> reglas del negocio y por ultimo otra biblioteca libreria de clases
>>> para trabajar con NHibernate.
>>>
>>> Ejecute cada aplicacion por separado (esto me genero una dll de cada
>>> proyecto y realice las referencias respectivas), pero al momento de
>>> ejecutar  save
>>> Obtuve el siguiente error, No persister for: Una Clase especifica de mi
>>> proyecto
>>>
>>> Alguna idea ??, verifique nuevamente que cada archivo de mapeo tenga
>>> la propiedad de Recurso incrustado, algo me falta pero no se que es
>>>
>>>
>>> El día 4 de diciembre de 2009 06:30, Carlos Peix
>>> <[email protected]> escribió:
>>> > Hola Edgar,
>>> > Si siguieras el diseño que estas proponiendo, abandonarias la POO a los
>>> > pocoas pasos de haber comenzado. Te conviene colocar el codigo
>>> > relacionado
>>> > con la consulta de objetos en una clase distinta.
>>> > En tu caso, no solo estarias violando SRP (single responsability
>>> > principle)
>>> > al colocar logica del movimiento y de consulta en la clase Movimiento
>>> > sino
>>> > que estarias acoplando logica propia del modelo del negocio con una
>>> > implementacion particular de acceso a datos (Nibernate).
>>> > Tu propuesta se parece mucho al patron Active Record definido por
>>> > Fowler y
>>> > el mismo no lo recomienda mas que para casos de diseños de muy baja
>>> > complejidad.
>>> > Entonces, creo que es mejor que crees otra clase destinada a las
>>> > consultas,
>>> > siguiendo las ideas del patron Repository, por ejemplo, o DAO.
>>> > Dado que se trata de logica de acceso a datos, tambien te recomiendo
>>> > que
>>> > definas interfaces para los repositories y que desarrolles la
>>> > implementacion
>>> > basada en NH en un proyecto separado. Hay muchisimos ejemplos en la
>>> > web.
>>> > ----------------------------------
>>> > Carlos Peix
>>> >
>>> > 2009/12/3 Edgar Ramos <[email protected]>
>>> >>
>>> >> Gracias a todos por sus comntarios pasados y futuros
>>> >>
>>> >> Soy totalmente nuevo en POO y NHibernate, asi que pido disculpas si
>>> >> pregunto cosas triviales
>>> >> Acabo de realizar mi primera persistencia, y despues de mucho leer
>>> >> logre lo siguiente
>>> >>
>>> >> Clase Abstracta Movimiento, de esta derivan Ingresos, Transferencias,
>>> >> Ventas y Produccion.
>>> >>  Movimiento tiene una asociacion one-to-many con
>>> >> DetalleMovimiento, en la base de datos SQLServer2000, aplique una
>>> >> tabla por toda la estructura que gira entorno a movimiento y la tabla
>>> >> para el DetalleMovimiento
>>> >>
>>> >> Hasta aqui todo perfecto (genial Nhibernate !!!), ahora necesito
>>> >> recuperar todos los movimientos realizados en una fecha especifica, de
>>> >> este resultado, seleccionare
>>> >> un movimiento y modificare su informacion (actualizar datos de
>>> >> movimiento o detalle, o eliminar lineas del detalle)
>>> >>
>>> >> Cual seria la mejor manera para hacer esto, por ejemplo se me ocurre
>>> >> metodos dentro de Movimiento getAllByDate(), y dentro de esto utilizar
>>> >> el poderoso lenguaje de consultas de NHibernate para recuperar los
>>> >> datos solicitados
>>> >>
>>> >>
>>> >>
>>> >> Gracias nuevamente por sus comentarios, todos son bienvenidos
>>> >>
>>> >>
>>> >
>>> >
>>> > >
>>> >
>>>
>>>
>>
>>
>>
>
>
> >
>

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