MVC Design Pattern?
Moin!
Ich lerne gerade wie ich ASP.NET Core Anwendungen erstelle und wende dabei das MVC Design Pattern an. Bisher kann ich nur programmieren, habe allerdings noch nie Design Patterns angewendet. Im Rahmen meiner Ausbildung zum Fachinformatiker für Anwendungsentwicklung kommen Design Patterns erst im 3. Lehrjahr dran. Auf der Arbeit lerne ich sie leider auch nicht.
Darum würde ich hier gern mein Wissen einmal teilen und fragen ob ich es korrekt verstanden habe.
MVC = Model, View, Controller
Model: Definiert Datenmodelle & kann genutzt werden um Tabellen
in Datenbanken automatisch anhand des Modells zu erstellen. Für
jedes Modell benötigt man auch eine entsprechende Tabelle.
View: Views sind die Seiten die auf der Clientseite dargestellt
werden. Hier finden die Userinteraktionen statt, welche dann
Anhand von HTTP Methoden auf der Server Seite verarbeitet werden.
Controller: Controller sorgen für die logischen Abläufe auf der
Server Seite. Hier werden Methoden definiert die bestimmte Aktionen
ausführen, je nachdem welche Control gerade ausgeführt werden soll.
Möchte ich also Daten, die der Client in der View hinterlegt hat, wie bei einer Nutzerregistrierung, in einer Datenbank speichern, muss ich also folgendes tun:
- In der View eine Form erstellen, mit Feldern wie: Nutzername,
Passwort & Email
- Die Form mit einem Submit an den Controller senden und
entsprechend validieren und verarbeiten
Hab ich das soweit richtig verstanden?
1 Antwort
Die Idee dabei ist, dass Du ein Datenmodell und eine Datenquelle hast, nach denen Daten angezeigt und verändert werden können.
Das macht Dir das Programmieren einfacher. Stell Dir vor, Du möchtest die gleichen Daten einmal als Karte und einmal als Tabelle sehen und gleichzeitig anzeigen. Dann wirst Du vielleicht auf die Idee kommen, die Daten in die Karte zu tun und die Tabelle aus den Daten in der Karte zu speisen.
Damit wirst Du aber sehr umständlich vorgehen. Wenn z.B. noch eine Tortengrafik vorkommen soll, die die gleichen Daten anzeigen soll, wo holst Du die her? Wie sicherst Du dass die Daten in der Torte immer aktuell sind?
Mit MVC speicherst Du die Daten konsequent im Model. Der Controller orchestriert die Views, die einen Blick auf die Daten freigeben. Wenn sich das Model ändert, ändern sich auch die angezeigten daten. Auf wie viele Arten die Daten angezeigt werden, ist eigentlich egal.
Das ist auf jeden Fall verständlich. Für mich ist die Vorstellung vom Model leider noch ein wenig Abstrakt. Das Model definiert doch nur den Aufbau der Daten, die eigentlichen Daten sind ja nicht im Model gespeichert, sonst wäre ja eine Datenbank nicht notwendig. Muss da noch sehr viel lernen, ich danke jedenfalls für die ausführliche Antwort!