WPF: MVP vs MVVM

Qual è la differenza tra MVP VS MVVM? Perché utilizziamo MVP anche se abbiamo tre livelli: business, accesso ai dati e presentazione? C’è qualche ragione specifica per dividere il livello Presentazione in MVP?

MVP e MVVM sono entrambi derivati ​​di MVC. MVC è un modello che separa la presentazione e l’interazione dell’utente dalla rappresentazione interna.

Ciò richiede tre livelli, poiché bind l’interazione / presentazione dell’utente direttamente alla rappresentazione interna farà sì che entrambi si pieghino per conformarsi l’uno con l’altro. Nell’applicazione, hai descritto questi livelli come la Presentazione, il livello aziendale e il livello di accesso ai dati. Con solo queste descrizioni molto vaghe, potresti potenzialmente descrivere qualsiasi derivato MVC o lo stesso pattern MVC originale.

Le differenze chiave tra ciascuna delle derivate sono le dipendenze che ogni strato assume sugli altri livelli e quanto strettamente sono legate l’una all’altra. Questo articolo ha alcuni dettagli sulle differenze, anche se ovviamente non dovrebbe essere considerato autorevole:

http://nirajrules.wordpress.com/2009/07/18/mvc-vs-mvp-vs-mvvm/

“… MVVM è interessante per le piattaforms che supportano l’associazione bidirezionale con meno sforzo, ma anche un minore compromesso è che ViewModel, a differenza di Presenter, può stare da solo (Presenter normalmente richiede un’interfaccia View).”