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