Digamos que tenemos una aplicación que tiene una arquitectura en capas. En la vista usamos MVC o MVVM. El modelo se trata como el dominio, tiene una buena parte de la lógica comercial.¿Cómo enviar actualizaciones de progreso de una clase de negocio/modelo?
Ahora digamos que tenemos, en el modelo, un método que lleva algún tiempo. Un cálculo complicado o un tratamiento que tiene que hacerse para cada elemento de un objeto, por ejemplo.
En la interfaz de usuario, nos gustaría mostrar una barra de progreso y un texto que mostraría el paso actual del cálculo (por ejemplo, un cuadro de lista con todo el historial de procesos).
¿Cómo harías eso? ¿Cómo enviar desde el modelo la información del progreso del proceso y cómo conectar el Controlador o ViewModel para que actualice el progreso?
Gracias por la respuesta muy completa.Tenía la visión de que los eventos eran una cuestión muy técnica que no tenía su lugar en la capa de negocios. Pero al final tiene que haber una forma de enviar información sobre cómo va el proceso. – Gimly
@Gimly: De nada. Creo que los eventos son útiles en la capa empresarial para implementar objetos "activos"; el escenario en su pregunta es un buen ejemplo. – CesarGon