1unitedpower: Model View Controller

Ich habe meine gesamten didaktischen und künstlerichen Reserven mobilisiert, um diese informative Infografik zum Model-View-Controller-Pattern zu erstellen und dachte mir, die könnte auch anderen Leuten eine Hilfe sein.

1. Model 2. View 3. Megablob

Das Wesen unten taufe ich den Megablob.

  1. Verstopfungsgefahr im Verzug! Also mit reichlich Wasser wegspülen. Oder eine Packung Soda [1] drauf und nach dem nächsten Regen ist die Sache auch erledigt.


    1. Das macht den Megablob wasserlöslicher ↩︎

  2. Tach!

    Ich habe meine gesamten didaktischen und künstlerichen Reserven mobilisiert, um diese informative Infografik zum Model-View-Controller-Pattern zu erstellen und dachte mir, die könnte auch anderen Leuten eine Hilfe sein.

    Naja, der didaktische Teil hat ein hohes Ausbaupotential.

    dedlfix.

    1. Hallo,

      hohes Ausbaupotential.

      vorallem die einflache Idee!

      Gruß
      Kalk

    2. Hello,

      Naja, der didaktische Teil hat ein hohes Ausbaupotential.

      An sowas arbeite ich gerade in eigener Sache. Und das bläst sich leider immer weiter auf.

      Eigentlich war alles ganz einfach:

      1. Ich halte ein Seminar mit einem abgrenzbaren Thema (IT-Hardware)
      2. Es gibt eine Themenübersicht
      3. Innerhalb der Themenübersicht gibt es Chapter (Sections)
      4. Es gibt Unterrichtsmaterial als Link oder als Dokument (also eigentlich auch ein Link, aber auf interne Ressourcen, die ohne Auth nicht freigegeben werden sollen), typischerweise mehrere pro Chapter
      5. Zu allen Links kann es Hinweise, Aufgaben oder sosntiges geben, was in der Darstellung ähnlichn aussehen kann, im DB-Modell aber unterschieden werden muss.

      Die Thmenkomplexe müssen vom Dozenten nach und nach freigeschaltet werden können.

      Jeder Teilnehmer soll zu jedem Themenkomplex 1-n eigene Fragen einstellen können mit seinen vermeintlichen Antworten und den Quellen-Links dazu.

      Alle Teilnehmer sollen im nächsten Schritt alle Fragen und die Links (als Empfehlung) sehen können, nicht aber die vermeintlichen Antworten der Frageerfinder. Sie müssen dann versuchen, die Frage selber zu beantworten.

      Als Auflösung des Ganzen (also nach Diskussion aller Fragen mit allen möglichen Antworten) muss der Dozent eine Schlussauswertung einstellen können in die DB.

      Wie baut man sowas, ohne in den Normalisierungswahn zu geraten (also vielleicht bewusst denormaliert?) und ohne die MVC-Ideen absolut ad Absurdum zu führen?

      Liebe Grüße
      Tom S.

      --
      Es gibt nichts Gutes, außer man tut es
      Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
      1. Hallo TS,

        Warum erstellst du wieder und wieder neue Tags?

        Bis demnächst
        Matthias

        --
        Rosen sind rot.
        1. Hello,

          weil Rosen rot sind und Fragen komplex?

          Dieses Mal verzichte ich auf einen eigenen neuen Tag und auch die nächten 30 gemeinsamen Tage. Der Tag heute reicht mir für die nächsten 30 Tage ;-P

          Liebe Grüße
          Tom S.

          --
          Es gibt nichts Gutes, außer man tut es
          Das Leben selbst ist der Sinn.
      2. Hallo Tom,

        wir werden dieses Thema hier nicht durchdeklinieren können, aber du hast in deiner Auflistung schon etliche Modellklassen identifiziert. Und auch viele Views beschrieben, die du brauchst. Die Controller müssen jetzt je nach erforderlicher Funktion Modelldaten beschaffen (wozu man gern Repositories baut oder ein ORM Framework einsetzt) und den passenden View erzeugen. Views sind Templates, oder auch eigene Klassen. Kniffliger ist der Rückweg, wenn eine Form−Antwort gepostet wird und ins Modell eingepflegt werden muss. Wenn ein Controller nur einen View hat, kann er es direkt tun, aber bei mehreren Views solltest du View-Reply Handler bauen, an die der Controller den Job delegiert. Je nach MVC Framework kann das knifflig werden, z.B. will ASP.NET die POST Daten für Dich parsen und erwartet eine Methode mit einem Modellklassen-Parameter.

        Wenn du so gut wie alles aus dem Controller hinaus delegierst und der Controller nur noch den Dirigenten macht, ist es gar nicht so verkehrt. Meine ich.

        Rolf

        --
        Dosen sind silbern
        1. Tach!

          z.B. will ASP.NET die POST Daten für Dich parsen und erwartet eine Methode mit einem Modellklassen-Parameter.

          Nicht unbedingt. Man kann da auch eine ganz allgemeine FormDataCollection haben wollen. Und der HttpRequest steht auch zur Verfügung.

          dedlfix.

      3. Hi Tom,

        Entwurfsmuster werden total überbewertet. Was manche aus dem MVC machen ist geradezu lachhaft.

        MfG

  3. Hallo 1unitedpower,

    Ich würde ja sagen „lange nicht so gelacht“, wenn mir das Lachen nicht beim Erinnern an meine ersten MVC Gehversuche quer im Hals stecken bleiben würde.

    Von Paradigmen lesen bis zur erfolgreichen Anwendung ist immer ein weiter Weg.

    Rolf

    –- Blocken, klauen, selber bauen - Carcassonne

  4. vor einer woche wollte ich hier fragen wie das mit dem mvc richtig funktioniert!

    passt die zuordnung so:

    view: html fiels und ajax zeugs welches meine rest schnittstellen anspricht

    modell: meine serverseitige datenverwaltung, sprich das skript das mit meiner datenbank kommuniziert

    controller: packt das html und ajaxzeug in meine express app so dass der webseitenbesucher das zeugs per browser downloaden und angucken kann. außerdem stellt der controller die restservices parat

    der/die view/s (=html seiten....) reden per ajax mit meinem restservice (controller) und der wiederum mit meinem datenbankscript.

    haut mein verständnis von mvc damit so im ungefähren hin?