MVC, MVP und MVVM in Theorie und Praxis

Transcrição

MVC, MVP und MVVM in Theorie und Praxis
07.09.2014
MVC, MVP und MVVM
in Theorie und Praxis
ROLAND GRAF
SIMON KRANZ ER
Agenda
• Model-View-Controller, Model-View-Presenter, ModelView-ViewModel. Was, warum, wie?
• Model-View-Controller (MVC)
• Model-View-Presenter (MVP)
• Model-View-ViewModel (MVVM)
• MVC, MVP, MVVM. -Wann und Wozu?
1
07.09.2014
Was sind MV(C oder VM oder P)?
• Software-Entwurfs-Muster für modulare
Softwareentwicklung
• Kombinieren folgende SoftwareBausteine:
Modell
View
• Datenmodell
• Präsentationsschicht (UI)
• Geschäftslogik (Code Behind)
• Aufgabenteilung
Controller, ViewModel,
Presenter
Warum MV(C oder VM oder P)?
• Software-Entwurfs-Muster mit ähnlichen
Zielen aber verschiedenen
Herangehensweisen
• Ziele :
Modell
View
• Modularität, Baukastenprinzip
• Flexibilität
• Einfach zu Testen
• Einfach zu Warten
Controller, ViewModel,
Presenter
2
07.09.2014
Model-View-Controller (MVC)
• Von Trygve Mikkjel Heyerdahl Reenskaug 1979 erfunden
• Eine zentrale Steuereinheit (Controller) entkoppelt Daten
(Model) und Presentationsebene (View)
Ereignis
(Benutzerinteraktion
etc.)
Steuereinheit
verarbeitet das
Ereignis
Steuereinheit löst
korrespondierendes
Ereignis in
Datenebene aus
Datenverarbeitung
Präsentationsebene
erzeugt UI aus
Informationen von
Daten – und
Steuerebene
Model-View-Controller (MVC)
Controller
View
Model
3
07.09.2014
Model-View-Controller (MVC) - Observer
Controller
View
Änderungen/Updates können
direkt an das UI-element
weitergegeben werden.
Model
MVC-Beispiel(e)
•…
4
07.09.2014
Model-View-Presenter (MVP)
• 1990 von IBM und Taligent entwickelt und 2004 durch Martin
Fowler formalisiert.
• Weiterentwicklung von MVC
• Noch stärkere Entkopplung von Modell-, und
Präsentationsebene
• Die Ereignisse der UI werden von der View-Komponente
verarbeitet
• Datenmodell wird zu einem Domänenmodell
MVC vs. MVP (passiv)
UI-Centric
Presenter
Controller
View
Model
View
Model
5
07.09.2014
MVP – Supervising Controller
Presenter
View
Model
MVP-Beispiel(e)
•…
6
07.09.2014
Model-View-ViewModel (MVVM)
• 2005 von John Gossman veröffenlicht
• Variante von MVC
• Spezialform von MVP (Presentation Model)
• Datenmodell und Präsentationsebene wie bei MVC
• Presenter/Controller wird zum „Modell der Sicht“
• Erweiterung des Modells mit Verhalten das die Präsentationsebene nutzen kann
• Datenbindung zwischen Modell und Präsentationsebene
• Kommandokommunikation zwischen Modell und Präsentationsebene
MVP (passiv) vs. MVVM
UI-Centric vs. Controller-Centric
Presenter
View
Model
ViewModel
View
Model
7
07.09.2014
MVVM-Beispiel(e)
•…
MVC, MVP, MVVM. Wann? Wozu?
• Model-View-Controller (MVC)
• ASP.Net MVC 3
• Abgekoppelte webbasierte Applikationen
• Model-View-Presenter (MVP) n
• Web Forms/SharePoint, Windows Forms, WFF
• UI –Zustände bereits logisch verbunden (Abläufe)
• Model-View-ViewModel (MVVM)
• Silverlight, WPF, HTML5, JavaScript
• Zweiwege Datenaustausch/-verbindung
8
07.09.2014
Fragen?
9