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

Post on 31-Aug-2019

6 views 0 download

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

MVCIT 'S A PAT TERN

SWE FS2015, ADP

CHRISTIAN WALPEN

MARIO ZEHR

AgendaEinleitung

Problemstellung / Anwendungskontext

Aufbau

Beispiel

Vorteile

Nachteile

Entwurfsmuster oder Architekturmuster?

Verwandte Muster

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

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

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)

Aufbau

Benutzer-oberfläche

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

ViewAbstraktion der Ansicht für den Benutzer

Änderungen in der View werden von Anzeigeelementen übernommen

Benutzeraktionen werden über grafische Eingabeelemente an den Controller weitergeben

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

BeispielMVC 4 in ASP.Net

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

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

NachteilePerformance kann bei häufigen Aktualisierungen schlecht sein Immer Round-Trip über Controller -> Model -> View

Der Entwicklungsaufwand ist höher Fixe Unterteilung in Klassen

Entwurfs- oder Architekturmuster?

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

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