• Nume: Moldovan Andrei • Companie: Business Logic Systems • Pozitie: Software developer • Experienta: 3 years • Tehnologii: .NET (WPF, WCF, …)
• Un acronim ciudat? DA / NU ? • Doar un design pattern
• Model – View – ViewModel
• Are “radacinile” in MVC • Folosit in proiecte WPF, Silverlight, Windows Phone • 3 componente esentiale: Model, View ViewModel
ViewModel
Accesarea datelor – WCF service View
Model
DB
Data objects din Entity Framework
ViewModel User Interface: -UserControl -Windows -trimite comenzi catre ViewModel
Comenzi
View
Model
ViewModel Binding
View
Model
• Implementeaza INotyfyPropertChange • Binding pentru conexiune cu view • Contine logica pentru view
• Unit teste scrise mai usor • Mentenanta codului – mai usoara din cauza separarii • “Blendability” • Cod diferit la design time util daca modelul nu e finalizat • Developer-Designer workflow
• No code behind • Doar pentru proiecte complexe • Separarea view-ului nu e necesara daca nu exista un designer ? • MVVM este complex • Nu se poate folosi cu alte pattern-uri ?
MVVM light (Galasoft) RelayCommands Messenger ViewModelBase Caliburn micro Convention over configuration Predefined bindings ViewModel first