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