Model-view-viewmodel

Il Model–view–viewmodel (MVVM) è un pattern software architetturale o schema di progettazione software. È una variante del pattern "Presentation Model design" di Martin Fowler. Lo MVVM astrae lo stato di "view" (visualizzazione) e il comportamento. Mentre il modello di "presentazione" astrae una vista (crea un view model) in una maniera che non dipende da una specifica piattaforma interfaccia utente. Lo MVVM fu sviluppato da Ken Cooper e Ted Peters di Microsoft per semplificare la programmazione a eventi di interfacce utente sfruttando caratteristiche del Windows Presentation Foundation (WPF) (Sistema grafico di Microsoft .NET) e Silverlight (Applicazione internet derivata). Il pattern architetturale fu annunciato per la prima volta nel blog di John Gossman nel 2005.
Componenti del pattern
- Model (modello): Il modello in MVVM è una implementazione del modello di dominio (domain model) della applicazione che include un modello di dati insieme con la logica di business e di validazione. Esempi di oggetti del modello comprendono repositori, oggetti di business, oggetti di trasferimento dei dati (DTOs), Plain Old CLR Objects (pocos), e oggetti generati di entità e proxy.[1]
- View (vista): La vista è responsabile della definizione della struttura, il layout e l'aspetto di ciò che l'utente vede sullo schermo. Idealmente, la vista è definita esclusivamente con XAML, con un numero limitato di code-behind che non contiene la logica di business.[1]
- View Model (modello della vista): Il view model fa da intermediario tra la vista e il modello, ed è responsabile per la gestione della logica della vista. In genere, il view model interagisce con il modello invocando metodi nelle classi del modello. Il view model fornisce quindi i dati dal modello in una forma che la vista può usare facilmente.[1]
- Binder (legante):
Note
- ^ a b c The MVVM Pattern, su msdn.microsoft.com. URL consultato l'11 marzo 2016.
Collegamenti esterni
- (EN) How to implement MVVM (Model-View-ViewModel) in TDD (test-driven development), su Microsoft Developer Network, Microsoft.
- (EN) MVVM validation logic, written in Java by Tim Clare
- (EN) Understanding MVVM: A Guide for JavaScript Developers, su AddysOnmani.com.