Si entendiste la idea de los visitors DomainEvents es una forma de hacer lo mismo pero en forma menos explicita, fijate en el comentario de Fabio al post de Jose, y acordate que por mas lindo que sea el martillo nuevo se usa un destornillador para un tornillo.
Gustavo. 2010/2/15 Roberto Ramírez <[email protected]> > Muchas gracias d00t > > Entonces a lo que veo es que me toca buscar sobre Domain Events para > resolver mi problema, dejando fuera a NH de esto... y pues Visitor ya > lo había entendido, pero al parecer no me servirá.. > > Saludos... =) > > On 15 feb, 11:15, Gustavo Ringel <[email protected]> wrote: > > No, mas bien algo como esto: > > > > http://www.udidahan.com/2009/06/14/domain-events-salvation/ > > > > <http://www.udidahan.com/2009/06/14/domain-events-salvation/>Listeners > de NH > > para algo que no es especifico de datos como la creacion de un movimiento > > quiere decir que a una regla de negocios la estas todavia atendiendo a > nivel > > de datos. > > > > A mi gusto Listeners de NH se pueden usar para auditoria, tracing, o > cosas > > que son especificas de la capa de datos y que el dia que tiras la capa de > > datos no tienen mas utilidad para tu negocio. > > > > Con Domain Events la idea es en el momento en que pasa algo avisar que > paso > > por ejemplo DomainEvents.FacturaGuardada(new FacturaGuardadaEvent() { > > Factura = factura, Detalles = detallesList }) > > > > Vos tenes en algun lado un SalvarMovimientosHandler : > > Handles<FacturaGuardadaEvent> y al atender el evento guarda un movimiento > en > > la base por cada detalle. > > > > Gustavo. > > > > 2010/2/15 Roberto Ramírez <[email protected]> > > > > > > > > > Muchas gracias por la respuesta Gustavo, me queda claro lo que > > > comentas. > > > > > Una cuestión pequeñita... ¿un evento de dominio == listeners de nh? > > > > > On 15 feb, 10:51, Gustavo Ringel <[email protected]> wrote: > > > > No entiendo exactamente donde entra NH en la consullta. > > > > Es decir, el codigo que yo pienso para resolver eso al menos es > > > > independiente de la capa de persistencia, tambien los visitors de > Jose > > > son > > > > independientes de la capa de persistencia. > > > > > > Creo que NH no es un factor para la decision de negocio. Podrias > > > > transformarlo en un factor si quisieras usar Listeners o alguna cosa > > > > especifica de NH para guardar el movimiento. > > > > > > En mi caso el servicio que guarda la factura y los detalles llama al > > > > Dao/Repositorio que sabe guardar una factura y sus detalles y se > genera > > > un > > > > evento de dominio para cada detalle de factura. > > > > > > Otro componente recibe esos eventos y se encarga de guardar los > > > movimientos. > > > > > > Los visitors de Jose hacen algo parecido a eso, pero creo que tambien > > > Jose > > > > para esos casos favorece domain events hoy en dia :) > > > > > > Gustavo. > > > > > > 2010/2/15 Roberto Ramírez <[email protected]> > > > > > > > Buenos días a todos. > > > > > > > ¿Puedo resolver con nhibernate esto o es un error en mi modelo? > > > > > > > Yo guardo una factura con su respectivo detalle, dentro de mi > modelo > > > > > yo necesito generar un movimiento en inventario y por cada > movimiento > > > > > guardar la referencia del detalle de la factura así: > > > > > > > Factura ==> Detalle ==> Movimiento > > > > > > > El proceso del movimiento al inventario es un paso intermedio al > > > > > momento de guardar-actualizar mi factura. > > > > > > > En mi modelo, el detalle de la factura no conoce los movimientos en > el > > > > > inventario, pero el movimiento si conoce a que detalle de factura > > > > > pertenece. > > > > > > > ¿Como identificar la referencia del detalle para insertarla en el > > > > > movimiento si todo se ejecuta en un solo request > (Session-Per-Request) > > > > > y aun no conozco la referencia del detalle que se guardo en la base > de > > > > > datos? > > > > > > > Uso Visitor como patron de diseño tomado del post de J. Rommaniello > > > > > > http://jfromaniello.blogspot.com/2009/11/caso-practico-patron-visitor. > > > .. > > > > > , > > > > > el proceso del movimiento lo realizo en un Visitor. > > > > > > > Muchas gracias por su ayuda. > > > > > > > -- > > > > > 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 > > -- > 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
