Model – View – View Model Arkadiusz Paliński
Agenda 0. SL / WPF 1. Czym jest MVVM? 2. Demo 3. Podsumowanie V – View, M – Model, VM – View Model 2. Demo 3. Podsumowanie
SL / WPF XAML ( + code behind [.cs]) Binding DataContext MVVM: INotifyPropertyChange ICommand
Czym jest MVVM? wzorzec architektoniczny MVC – MVP – MVVM technologie WPF / SL
View View user control (xaml) prezentacja informacji (binding) przyjazny interfejs – style, template’y, animacje (MS Expression Blend) interakcja z użytkownikiem (ale nie obsługa zdarzeń) code behind – możliwie mało View
Model obiekty domenowe aplikacji przechowywanie danych walidacja Model
VM:Model of the View View Model View Model łączy dane zawarte w modelu z widokiem je wyświetlającym aggreguje modele niezbędne do prezentacji danego widoku wystawia własności dla widoku i notyfikuje o zmianach w modelu (INPC) View Model View Model zawiera logikę prezentacji obsługuje interakcję użytkownika (ICommand) korzysta z serwisów / repozytoriów widok nie rozmawia bezpośrednio z modelem, a model z widokiem
Demo aplikacja SL (OOB) zarządzanie użytkownikami model : User view: UserManagementView view model: UserManagementViewModel repozytorium użytkowników : FakeUserRepository
Podsumowanie Uporządkowana struktura projektu łatwość utrzymania skalowalność Rozdzielenie odpowiedzialności Bindowanie danych Testowanie jednostkowe Podział designer – developer (design time data) Dostępne frameworki : MVVM Light, Caliburn, nRoute i wiele wiele innych Obecny standard tworzenia aplikacji WPF / SL / WP7