que tiene un objeto de la reunión:Cuándo actualizar los campos de auditoría? DDD
Meeting{id, name, time, CreatedBy, UpdatedBy}
y una reunión
MeetingAssignee{id, MeetingID, EmployeeId, CreatedBy, UpdatedBy)
, como root agregado, tiene una AssignEmployee método.
Estaba a punto de pasar al usuario actual al objeto Reunión al llamar a AssignEmployee, para que pueda actualizar sus campos de auditoría en consecuencia.
Pero esto no parece correcto, ¿verdad? Obviamente, puedo mantener los campos de auditoría públicos y cambiarlos más tarde, ¿quizás a nivel de servicio?
¿Cuál es el método preferido por todos los demás para actualizar estos campos?
Tenga en cuenta: No estamos utilizando Nhibernate, sino un ORM personalizado que no tiene nada automático en su lugar.
Gracias.
Me pregunté sobre el uso reciente de los patrones Event Aggregator o Event Sourcing para este tipo de cosas. –
Me encantan los eventos, son tan OO y van de la mano con el concepto de envío de mensajes, en lugar de 'invocación de método' (que incluso suena como procedural). Por cierto, soy desarrollador de Java y no podemos darnos el lujo de tener eventos como en .net :(, ¡disfrútalos! Yo añadiría: haz la mayor parte, si no toda, de tu registro y auditoría usando eventos: el libro Growing Object-Oriented Systems, Guided by Tests tiene un muy buen ejemplo sobre esto. – Augusto
Gracias, revisaré ese libro, toda la actividad de registro y auditoría usando eventos es algo que realmente no había considerado hasta hace poco. Tendré que hacer algunos leyendo sobre el tema. –