ASP.NET MVC 3 Tutorial #1 – Das Model View Controller (MVC) Pattern erklärt

Nachdem auf CodeFest noch etwas wenig Content zu Asp.NET MVC 3 vorhanden ist, habe ich mich dazu entschlossen eine neue Tutorial-Reihe zu diesem Thema zu starten. Im ersten Post möchte ich darstellen, was das MVC Pattern eigentlich genau ist, bevor wir uns auf ASP.NET MVC tatsächlich stürzen.

MVC steht nicht für “Mercedes Benz Veteranen Club” sondern für “Model-View-Controller”. Das MVC Pattern wurde erstmals 1978 durch Trygve Reenskaug beschrieben. Trygve arbeitete damals an Smalltalk. Da dieses Pattern bereits 33 Jahre  alt ist, gehört es definitiv zu den Urgesteinen der Software-Patterns. Heute findet man eine Vielzahl an MVC Frameworks für die unterschiedlichen Frameworks und Plattformen. Das MVC Pattern wird auch oft in etwas abgewandter Form verwendet, wie etwa dem MVP (Model View Presenter) und dem MVVM (Model View ViewModel) Patterns. Das MVC Pattern ist heutzutage eine Standardlektüre an jeder Universität und jeder Schule an der Softwareentwicklung gelehrt wird. Wie auch immer – mit ASP.NET MVC ist nun auch ein schlagkräftiges MVC Framework für .NET vorhanden.

7image

Prinzipiell bietet das MVC-Pattern eine relativ große Flexibilität, welche von der jeweiligen Implementierung abhängt. Doch wofür stehen nun die eigentlichen Begriffe?

Model

Das Model stellt die Daten dar, welche für die Anwendung verwendet werden. Je nach Anwendung kann das beispielsweise eine Person, ein Produkt oder viele andere Dinge sein. In manchen Implementierungen wird die Geschäftslogik in das Model ausgelagert. Hierbei teilen sich die Meinung ob dies nun richtig oder falsch sei. Idealerweise sollte keine Logik im Model sein.

View

Der View dient der Anzeige der Daten und stellt dem Benutzer gewisse Interaktionsmöglichkeiten zur Verfügung. Dies können Beispielsweise Dateneingaben oder Datenmanipulationen sein. Wichtig ist jedoch, das der View auf gar keinen Fall Geschäftslogik enthalten darf. Der View ist nur eine Anzeige, nicht jedoch die Verarbeitung dieser Daten. In Asp.NET MVC gibt es einige ViewEngines, wie etwa Razor.

Controller

Der Controller hat die Aufgabe, Views anzuzeigen und das Modell an den View zu übergeben. Der Controller verarbeitet Benutzereingaben und leitet diese an die dafür zuständigen Layer weiter. In Asp.NET können die Controller sehr komfortabel über die URL des Browsers aufgerufen werden. Wie dies funktioniert wird in einem späteren Artikel erklärt.

Asp.NET MVC hat einige tolle Möglichkeiten, welche in den kommenden Wochen in weiteren Tutorials erklärt werden.

Weitere Informationen: