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. Sebbene, dove 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 è definito 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.