Tags:
create new tag
, view all tags

nethz v3 Objektmodell

MVC-Modell (Model-View-Controller)

Für die CGI Programmierung hat sich die MVC-Programmierung als flexibelste Lösung in Bezug auf Wartbarkeit und Erweiterbarkeit erwiesen:

  • View: GUI (User-Interface, PDF-Output, Email, etc.)
  • Contoller: Applikation
  • Model: Datenabstraktion (DB <--> Objekt Umwandlung, z.B. Class:DBI, DBIx::Class, Net::LDAP)

Zur Zeit gibt es auf CPAN folgende Alternativen von MVC-Frameworks:

Alle Frameworks sind äusserst flexibel, was die verwendeten "Templating Systems" (also Views) und "Models" angeht. Die typische "Features List" umfasst:

  • mod_perl und FastCGI Support
  • Logfiles
  • Configfiles
  • Error-Handling
  • Session-Handling
  • DB-Objekte

Mein Vorschlag: Catalyst. Es scheint mir von allen MVC-Frameworks die flexibelste Lösung zu sein. Die Dokumentation ist sauber und gut verständlich, und das Framework scheint in ständiger Weiterentwicklung zu sein.

View

Als "View" wird jeder in irgend einer Form lesbarer Output bezeichnet. Dies umfasst:

  • HTML-Output für Webbrowser
  • Email-Message
  • PDF-Output

Für eine Web-Applikation wird häufig mit sog. Templates gearbeitet, um die Mischung von Perl-Code und HTML zu minimieren oder gar zu vermeiden. Es gibt auf CPAN unzählige Template-Systeme, die wichtigsten davon sind:

Alle Template-Systeme haben ihre Vor- und Nachteile bezüglich Flexibilität und Trennung von HTML und Code. Bezüglich Flexibilität ist sicherlich Template::Toolkit als herausragendes Modul zu nennen. Bezüglich "Sauberkeit" der Trennung von Code und HTML ist hingegen Petal an erster Stelle zu nennen.

Mein Vorschlag (für Web-Templates): Template::Toolkit. Es scheint mir die flexibelste und gleichzeitig sauberste Lösung von allen Template-Systemen zu sein. Allerdings sollten auch HTML::Mason und Petal mal ausprobiert werden.

Model

-- Main.vermeul - 07 Aug 2006

Topic revision: r3 - 2006-08-08 - bircher
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback