Björn Klippstein

Web-Framework

Klippstein IT Service

Aus 4webmaster.de

Wechseln zu: Navigation, Suche

Ein Framework ist ein Programmiergerüst, das dem Programmierer einen Rahmen zur Erstellung von Anwendungen zur Verfügung stellt. Dieser Rahmen umfasst spezifische Fähigkeiten (bei Web-Frameworks z.B. objektorientierter Datenbankzugriff, Templatesysteme für Webseiten, E-Mail-Schnittstellen, RSS-Integration, etc.), aber auch die im Framework verwendeten Entwurfsmuster, welche die Architektur der individuellen Anwendung bestimmen. Beispielsweise basieren die meisten Web-Frameworks auf dem Model-View-Controller-Muster. Ein Framework definiert insbesondere auch den Kontrollfluss der Anwendung und die Schnittstellen für die konkreten Klassen, die vom Programmierer erstellt und registriert werden müssen.

Dabei findet eine Umkehrung der Steuerung (Inversion of Control) statt: Der Programmierer registriert konkrete Implementierungen, die dann durch das Framework gesteuert und benutzt werden, statt – wie bei einer Klassenbibliothek – lediglich Klassen und Funktionen zu benutzen. Wird das Registrieren der konkreten Klassen nicht fest im Programmcode verankert, sondern wird „von außen“ konfiguriert, so spricht man auch von Dependency Injection.

Push oder Pull

Die meisten MVC-Frameworks sind push-basiert. In push-basierten Frameworks sorgen Controller-Actions für die Verarbeitung der Daten und pushen diese dann zum Rendern zur View-Schicht. Diese Architektur wird auch "request-driven" genannt. Pull-basierte Frameworks dageben beginnen mit der View-Ebene. Der View pullt sich dann benötigte Daten von allen benötigten Controllern. D.h. mehrere Controller werden mit einem einzigen View angesprochen. Diese Architektur wird auch "component-based" genannt.

Charakterisierung wichtiger Web-Frameworks

Framework Relevanz 2008 Basissprache Architektur DB-Zugriff (ORM) Beschreibung
Apache Struts 28 Java MVC-Push z.B. Hibernate Schwergewichtiges Java-Framework.
Java Server Faces 13 Java MVC-Pull
JBoss Seam 5 Java MVC-Pull JPA, Hibernate
Spring MVC Java MVC-Push z.B. Hibernate, iBATIS Leichtgewichtiger als Struts.
Google Web Toolkit 13 Java
Zope 20 Python MVC-Pull ZODB, SQLAlchemy, SQLObject Ein ORM ist bei Zope nicht notwendig, da mit ZODB ein natives OODBMS vorliegt. Plone basiert auf Zope.
Zend Framework 14 PHP MVC-Push
DotNetNuke 5 ASP.NET ohne MVC NHibernate
Ruby on Rails 35 Ruby MVC-Push ActiveRecord
  Django 6 Python MVC-Push Django ORM, SQLAlchemy Rails-Philosophie. Im Gegensatz zu Rails setzt Django aber nicht auf eine implizite, sondern auf die explizite Konfiguration einer Anwendung. Dies schlägt sich beispielsweise in der URL-Konfiguration nieder, welche mittels regulärer Ausdrücke explizit vorgenommen wird und so eine Abbildung einer URL auf eine Python-Funktion schafft. Automatisch generierte, produktionstaugliche Administrationsoberfläche.
  Grails 9 Groovy / Java MVC-Push GORM, Hibernate Rails-Philosophie, mit einfacherer Internationalisierung als Rails. Grails baut auf mehreren etablierten Frameworks wie Spring, Hibernate und SiteMesh auf und verbindet diese mit der Skriptsprache Groovy. Es können ohne Java (die Sprache) Applikationen erstellt werden, welche auf der JVM lauffähig sind. Eine in Grails erstellte Webanwendung lässt sich als Web Archive (WAR-Datei) exportieren und kann so auf jedem Servlet-Container wie zum Beispiel dem Apache Tomcat installiert werden.
  Symfony 14 PHP MVC-Push Propel, Doctrine Rails-Philosophie. Symfony wird seit 2005 entwickelt. Es entstand parallel zur steigenden Popularität von Ruby on Rails und dem Wunsch nach einem ähnlichen MVC-Framework auf PHP-Basis.
  CakePHP 6 PHP MVC-Push (Active record pattern) Rails-Philosophie. Im Vergleich zu anderen Web-Frameworks stellt CakePHP geringe Anforderungen an den Webserver. Es unterstützt PHP5 und das immer noch verbreitete PHP4.

CMS, Wiki, Blog

System Typ Relevanz 2008 basiert auf
TYPO3 CMS 47 PHP, MySQL
Joomla! CMS 38 PHP, MySQL
Drupal CMS 27 PHP, MySQL oder Postgres
Plone CMS 15 Python / Zope, Zope-eigene objektorientierte DB
MediaWiki Wiki 11 PHP, MySQL
TWiki Wiki 5 Perl, Textdateien statt DB
Wordpress Blog 30 PHP, MySQL
Movable Type Blog 1 Perl, beliebige DB

Vergleiche













Dieser Artikel basiert auf dem Artikel Framework aus der freien Enzyklopädie Wikipedia. Er steht unter der GNU-Lizenz für freie Dokumentation. In diesem Wiki und / oder der Wikipedia ist eine Liste der Autoren verfügbar.




Dieser Artikel basiert auf dem Artikel Web_application_framework aus der freien Enzyklopädie Wikipedia. Er steht unter der GNU-Lizenz für freie Dokumentation. In diesem Wiki und / oder der Wikipedia ist eine Liste der Autoren verfügbar.




Dieser Artikel basiert auf dem Artikel Comparison of web application frameworks aus der freien Enzyklopädie Wikipedia. Er steht unter der GNU-Lizenz für freie Dokumentation. In diesem Wiki und / oder der Wikipedia ist eine of web application frameworks&action=history Liste der Autoren verfügbar.




Dieser Artikel basiert auf dem Artikel Django aus der freien Enzyklopädie Wikipedia. Er steht unter der GNU-Lizenz für freie Dokumentation. In diesem Wiki und / oder der Wikipedia ist eine Liste der Autoren verfügbar.




Dieser Artikel basiert auf dem Artikel Grails aus der freien Enzyklopädie Wikipedia. Er steht unter der GNU-Lizenz für freie Dokumentation. In diesem Wiki und / oder der Wikipedia ist eine Liste der Autoren verfügbar.




Diese Seite muss überarbeitet werden
Persönliche Werkzeuge