MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde...
Transcript of MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde...
![Page 1: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/1.jpg)
MVCIT 'S A PAT TERN
SWE FS2015, ADP
CHRISTIAN WALPEN
MARIO ZEHR
![Page 2: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/2.jpg)
AgendaEinleitung
Problemstellung / Anwendungskontext
Aufbau
Beispiel
Vorteile
Nachteile
Entwurfsmuster oder Architekturmuster?
Verwandte Muster
![Page 3: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/3.jpg)
EinleitungDas Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben
Ursprünglich entwickelt für Benutzeroberflächen in SmallTalk
MVC ist englisch und steht für Model-View-Controller, d.h. eine Applikation oder Applikationskomponente wird in drei eigenständige Module aufgeteilt, das (Daten-)Modell, die Präsentationsschicht und die Programmsteuerung
Wird verwendet in Java Swing, C++ Qt4 (und höher), Adobe ColdFusion, Apache Struts, ASP.Net, Joomla CMS, Ruby on Rails
![Page 4: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/4.jpg)
Problemstellung / AnwendungscontextBenutzerschnittstelle eines Systems wird häufig geändert Muss deshalb einfach austauschbar sein (am Besten zur Laufzeit)
Gleiche Informationen müssen auf der Bedienoberfläche in verschiedener Form dargestellt werden können Jede View hat einen Controller
Ein Controller kann mehrere Views bedienen
Änderungen der Daten sollen gleichzeitig auf allen Darstellungen sichtbar sein Controller können sich beim Modell anmelden um über Änderungen informiert zu werden
![Page 5: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/5.jpg)
ZieleFlexibler Programmentwurf
Einfache Erweiterung / Änderung
Wiederverwendung von Komponenten
Nur ein Modell für verschieden Views (z.B. Desktop, Tablet, Mobile)
Trennen der Verantwortlichkeiten (separation of concern)
![Page 6: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/6.jpg)
Aufbau
Benutzer-oberfläche
![Page 7: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/7.jpg)
ModelBusiness Logik
Behandelt die Datenobjekte (Erstellen, Ändern, Löschen)
Die registrierten Views über Änderungen informieren Push, schlecht wiederverwendbar, da fix auf eine View gebunden
Pull, die View holt sich die neuen Daten selber
![Page 8: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/8.jpg)
ViewAbstraktion der Ansicht für den Benutzer
Änderungen in der View werden von Anzeigeelementen übernommen
Benutzeraktionen werden über grafische Eingabeelemente an den Controller weitergeben
![Page 9: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/9.jpg)
ControllerBenutzer Aktionen werden hier behandelt
Routing der Anfragen
Brücke zwischen Benutzer und Daten Validiert die Eingaben des Benutzers
Ruft die Aktionen auf
Bestimmt, was der Benutzer nach der Aktion sehen soll
![Page 10: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/10.jpg)
BeispielMVC 4 in ASP.Net
![Page 11: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/11.jpg)
VorteileDie Applikation lässt sich für die Entwicklungen in Teile aufteilen
Das Routing für alle Anfragen kann zentral im Controller geregelt werden
Flexibilität Benutzeroberfläche
Datendarstellung
Testbarkeit
![Page 12: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/12.jpg)
TestbarkeitUnitTest
Coded UI-Tests
Präsentation (HTML)+
Code Behind (C#)
Geschäftslogik (C#)
Präsentation (HTML)
View (C#) Controller (C#)Geschäftslogik
(C#)
ASP.NET
ASP.NET MVC
![Page 13: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/13.jpg)
NachteilePerformance kann bei häufigen Aktualisierungen schlecht sein Immer Round-Trip über Controller -> Model -> View
Der Entwicklungsaufwand ist höher Fixe Unterteilung in Klassen
![Page 14: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/14.jpg)
Entwurfs- oder Architekturmuster?
![Page 15: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/15.jpg)
Verwandte MusterMVP Mode-View-Presenter
In den 1990er-Jahren von IBM erstmals eingesetzt
Model und View werden komplett voneinander getrennt und über den Presenter verbunden
Um die Vorteile gegenüber MVC zu entfalten, für Model und View nur Interfaces verwenden (vollständige Austausch- und Wiederverwertbarkeit)
MVVM Model-View-ViewModel
2005 von John Gossman
Anstatt Controller ViewModel mit Binding
Moderne UI-Plattformen wie WPF, JavaFX, HTML5
![Page 16: MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde bereits 1979 von Trygve Reenskaug (Norwegen), einem Xerox PARC Mitarbeiter beschrieben](https://reader030.fdocument.pub/reader030/viewer/2022040419/5dd117f3d6be591ccb6430a0/html5/thumbnails/16.jpg)
Fragen?
Ressourcen Buch: Joachim Goll, Architektur und Entwurfsmuster
http://c2.com/cgi/wiki?ModelViewController
https://de.wikipedia.org/wiki/Model_View_Controller
https://msdn.microsoft.com/en-us/library/ff649643.aspx
JavaScript: https://developer.chrome.com/apps/app_frameworks
ASP .Net: https://www.microsoftvirtualacademy.com/en-US/training-courses/introduction-to-asp-net-mvc-8322