Model-View-Controller

Auf in die Welt von Design Patterns dachte ich mir heute und landete im wirren Warr vieler Erklärungen und Hinweise, die mich allesamt nicht viel weiterbrachten. Gesucht habe ich nach Implementierungen des Model-View-Controller Patterns. Auf Webapplikationen umgemünzt bedeutet das ein Controller nimmt die Anfragen (GET/POST) entgegen, das Modell enthält die Logik der Anwendung und der Viewer ist eigentlich nur ein kleines Template, das die Daten dann anzeigt. So erreicht man eine gewisse Struktur und verirrt sich z.B. nicht in tausenden Zeilen Spaghetticode.

Gefunden habe ich eine Auflistung diverser “Frameworks” in PHP die vielsagend als Überblick bezeichnet ist und tatsächlich auch nicht mehr ist. Für Java gibt es bekanntlich das oft kopierte (auch in anderen Sprachen) Struts und dann wäre da natürlich noch Ruby on Rails zu nennen, das momentan wohl ziemlich hip ist … die Beispielvideos zeigen auch recht eindrucksvoll wie einfach es ist damit simple Anwendungen zu erstellen. Und das ist dann auch das Problem: meine Anwendung ist ganz und gar nicht simple, enthält 100000+ Codezeilen und eigentlich schon vorhanden. Wie einfach ist es so etwas zu portieren? Man weiß es nicht … nirgends … die Tatsache, dass die meisten “Frameworks” keine besonders großen Communities haben (via Wieviel-Postings-im-Projektforum-Test bzw. Zahl-der-aktiven-Bugreports-Test) lässt vermuten, dass kaum jemand derartiges nutzt. Oder doch?

Jedenfalls bin ich weit später auf einen interessanten Artikel auf einem Blog gestoßen: MVC and web apps: oil and water. Sehr gut recherchiert handelt er die Vor- und Nachteile dieses Design Patterns ab und kommt zu dem Schluss, dass es vielleicht nicht die optimale Lösung für Webanwendungen sein könnte. Mittlerweile denke ich das fast auch, aber meine bisherige Vorgehensweise (ähnlich MVC, aber mehr Logik beim Anzeigen) ist auch nicht das Gelbe vom Ei. Das führt über kurz oder lang zu unwartbarem Sourcecode, vor dem ich nun stehe :-)

Tipps? Im Prinzip suche ich ein Framework, das wie auch immer folgendes bietet:

  • Erweiterbarer Loginmechanismus (z.B. via NTLM)
  • Unabhängig von der eingesetzten Datenbank. Im Idealfall braucht es gar keine Datenbank (nur die Anwendungen darin)
  • Hübsche Formulare und Layouts (AJAX Formulare? Automatisch generierte Formulare?)
  • Bloß keine Smartytemplates … brrrr!!!!

So … ich spiel dann mal ein wenig mit Prado und Zoop.

  • http://www.wirzm.ch mjdgard

    ist dieses ruby zeugs wirklich so flexibel? falls ja, wäre es schon recht cool.bei meiner eigenen page (klick oben) habe ich den versuch gestarte, alles objekt orientiert zu gestalten. geht recht gut und ist auch einfach zu pflegen. naja, aber ist halt nicht komplex und für mehr als eine private homepage reicht sowas nie.

    falls du für dich eine lösung gefunden hast, wäre ich froh um tips. :)

  • http://www.sebbi.de Sebbi

    Ruby on Rails ist nicht Ruby sondern eben ein Framework, das Ruby als Sprache benutzt (weil die Sprache ein paar Besonderheiten hat). Die Videos davon zeigen sehr eindrucksvoll wie einfach man Anwendungen/Webseiten erzeugen kann, besonders dieses hier.

    Als Teillösung habe ich eine recht simple Anleitung wie man so etwas selbst bauen kann gefunden (hier). Das und ein paar geklaute Hilfsfunktionen aus WordPress sollten für meine Zwecke ausreichen.