Za chwilę napisamy naszą pierwszą aplikację WPF i zapoznamy się ze wzorem MVVM. Zbudowaliśmy wiele aplikacji Winform i mamy architekturę, która była dla nas bardzo udana. Mamy trochę problemów z tłumaczeniem tej architektury lub określeniem, gdzie pewne elementy naszej architektury pasują do modelu MVVM.
Historycznie mamy GUI (główny exe), który następnie komunikuje się z biblioteką DLL BusinessLogic. BusinessLogic komunikuje się z biblioteką DAL za pośrednictwem usługi internetowej, a DAL współdziała z bazą danych. DAL, BusinessLogic i GUI odwołują się do tej samej biblioteki DLL BusinessObjects.
Część przejścia na MVVM jest dość prosta. Nasze GUI nadal będą zawierać widoki, nasze BusinessOjbects będą nadal zawierać model, a nasz DAL będzie nadal oddziaływać z DB (chociaż technologia ich wdrażania może się zmienić).
To, czego nie jesteśmy pewni, to nasz komponent BusinessLogic. Historycznie zapewniałoby to funkcje, które GUI może wywoływać, a następnie wypełniać kontrolki w widokach (tj. GetCustomerList, który zwróciłby listę obiektów Customer lub typowe funkcje CRUD).
Główne zawieszenie, jakie mamy, to to, czy wzorzec MVVM będzie wymagał dodatkowego komponentu do przechowywania ViewModels, czy też po prostu zmienimy sposób myślenia i przeprowadzimy migrację tego, co wykorzystaliśmy jako komponent BusinessLogic do ViewModels?
Czy nasz składnik BusinessLogic reprezentuje ViewModels?