Estamos a punto de escribir nuestra primera aplicación WPF y nos estamos familiarizando con el patrón MVVM. Hemos creado muchas aplicaciones Winform y tenemos una arquitectura que ha sido muy exitosa para nosotros. Tenemos algunos problemas para traducir esa arquitectura o determinar dónde encajan ciertas piezas de nuestra arquitectura en el modelo MVVM.
Históricamente tenemos una Gui (el exe principal) que luego se comunica con un dll BusinessLogic. BusinessLogic se comunica con un dll DAL a través de un servicio web y el DAL interactúa con el DB. El DAL, BusinessLogic y la GUI hacen referencia al mismo dll de BusinessObjects.
Parte de la transición a MVVM es bastante sencilla. Nuestra interfaz gráfica de usuario seguirá conteniendo las vistas, nuestros BusinessOjbects seguirán conteniendo el modelo y nuestro DAL seguirá interactuando con el DB (aunque la tecnología para implementarlos puede cambiar).
De lo que no estamos seguros es de nuestro componente BusinessLogic. Históricamente, esto proporcionaría funciones para que la GUI llame y luego complete los controles en las vistas (es decir, GetCustomerList que devolvería una lista de objetos del Cliente o las funciones CRUD típicas).
El problema principal que tenemos es si el patrón MVVM requeriría un componente adicional para albergar los ViewModels o si simplemente cambiamos nuestra forma de pensar y migramos lo que hemos usado como nuestro componente BusinessLogic a los ViewModels.
¿Nuestro componente BusinessLogic representa los ViewModels?