Secondo questo ci sono persone diverse dal tuo cliente che usano MVVM
per le applicazioni web, quindi almeno sappiamo che lui / loro sono / non sono pazzi: D.
Battute a parte in MVVM
hai:
-
Un Model
che è o un modello di dominio e rappresenta il contenuto dello stato o il contenuto dei dati (poiché in questa griglia sono presenti dati provenienti da quella tabella)
-
Un View
che è uguale ai modelli MVC
e MVP
e si occupa di come i dati vengono presentati all'utente.
- Un
View Model
che accede ai dati ed espone le proprietà e mantiene la logica aziendale lontana dalla vista (invece di programmare gli eventi direttamente nel codice Dietro ora abbiamo comandi nel nostro modello di vista)
- Infine c'è un componente
binder
che media tra la vista e il modello della vista e (da qui il concetto "Data Binding").
Questo si traduce nel mondo WPF
come:
-
EF
o il tuo preferito ORM
.
-
XAML
.
- La tua classe
ViewModel
con molto supporto dai suoi amici in System.ComponentModel
e System.Windows.Data
.
-
XAML
di nuovo (ogni volta che digiti {Binding Whatever}
) e un gruppo di classi da System.Windows.Controls
e tali che gestiscono tutto il "Collegamento dati".
Come andiamo da qui al web? La brava gente di Microsoft ha spiegato che MVVM
e MVP
non sono così diversi ma
whereas the MVP pattern is best suited to traditional server-rendered
Web pages and the request/response paradigm, the MVVM pattern is
optimized for stateful rich client applications where client-side
business logic and application state is maintained through user or
service interactions
Ciò significa che MVVM
è pensato per gestire un ambiente stateful mentre altri come MVP
sono pensati per stateless ?. Nel corso della giornata presumo che qualcosa di simile sia stato detto da alcuni Smalltalker hard core quando qualcuno ha suggerito di usare MVC
per lo sviluppo di applicazioni web e sappiamo tutti come è finita l'argomento.
Per quanto ne so, ci sono alcuni framework web correlati che usano già MVVM
(in realtà stanno utilizzando Model View Binder ma sai, patate, patate) come Knockout.js
, anche molti AngularJS
utenti sono consapevolmente o non facendo un qualche tipo di MVMM
troppo.