Estamos prestes a escrever nosso primeiro aplicativo WPF e estamos nos familiarizando com o padrão MVVM. Criamos muitos aplicativos Winform e temos uma arquitetura que foi muito bem-sucedida para nós. Estamos com problemas para traduzir essa arquitetura ou determinar onde determinadas partes da nossa arquitetura se encaixam no modelo MVVM.
Historicamente, temos um Gui (o principal exe) que se comunica com uma dll BusinessLogic. O BusinessLogic se comunica com uma DLL DAL através de um serviço da Web e o DAL interage com o DB. O DAL, BusinessLogic e GUI referenciam a mesma DLL BusinessObjects.
Parte da transição para o MVVM é bastante direta. Nosso Gui ainda conterá as visualizações, nossos BusinessOjbects ainda conterão o modelo e nosso DAL ainda interagirá com o DB (embora a tecnologia para implementá-los possa mudar).
O que não temos certeza é do nosso componente BusinessLogic. Historicamente, isso forneceria funções para que a GUI chamasse para preencher controles nas exibições (por exemplo, GetCustomerList, que retornaria uma lista de objetos Customer ou as funções CRUD típicas).
O principal problema que temos é se o padrão MVVM exigiria um componente adicional para abrigar os ViewModels ou se apenas mudamos de ideia e migramos o que usamos como componente BusinessLogic para os ViewModels?
Nosso componente BusinessLogic representa os ViewModels?