MVC - sws.bfh.chamrhein/ADP/Unterlagen/MVC/Vortrag_MVC.pdfEinleitung Das Konzept von MVC wurde...

16
MVC IT'S A PATTERN SWE FS2015, ADP CHRISTIAN WALPEN MARIO ZEHR

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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