Web

Kleine Helfer

Open-Source-Frameworks für moderne Web-Anwendungen

28.06.2011
Von 
Diego Wyllie hat Wirtschaftsinformatik an der TU München studiert und verbringt als Softwareentwickler und Fachautor viel Zeit mit Schreiben – entweder Programmcode für Web- und Mobile-Anwendungen oder Fachartikel rund um Softwarethemen.
Web-Frameworks dienen als robustes Fundament für eigene Anwendungen und beschleunigen die Entwicklung. Wir stellen zehn bewährte Lösungen aus dem Open-Source-Lager vor, auf denen Sie setzen können.

Die Entwicklung Web-basierender Systeme ist heute schwieriger denn je. Denn mit dem Boom von SaaS und Cloud-Computing, sowie mit der rasanten Entwicklung von Smartphones steigen die Anforderungen an Web-Anwendungen immer weiter an. Diese müssen im Backend robust, hochperformant und sicher sein, Arbeitsprozesse müssen in der Anwendungslogik möglichst schnell und flexibel implementiert werden. Beim Front-End reicht es heute nicht mehr aus, die Kompatibilität der Anwendung mit den unterschiedlichen Desktop-Betriebssystemen und -Browsern zu garantieren. Von einer Web-Applikation erwarten Anwender zunehmend, dass sie sich auch auf ihren Smartphones bequem nutzen lässt. Für die Entwickler bedeutet dies oft, einen komplett neuen Client für mobile Endgeräte implementieren zu müssen. Erschwerend kommt hinzu, dass Entwicklungen im schnellen Tempo erfolgen müssen, da es auf dem Markt ein großer Konkurrenzdruck herrscht.

Vor diesem Hintergrund sind Web-Entwickler, heute mehr als je zuvor, auf leistungsfähige Frameworks angewiesen, die ein solides Fundament für ihre Anwendungen bieten und gleichzeitig die Durchführung des Projekts beschleunigen und vereinfachen können. In den folgenden Seiten werden zehn Framework-Lösungen aus dem Open-Source-Bereich aufgeführt, mit denen die gestiegenen Anforderungen an modernen Web-Anwendungen gerecht werden können.

Struts: Klassisches Framework für Java

Struts
Struts
Foto: Diego Wyllie

Struts von der Apache Foundation stellt eins der wichtigsten Open Source-Frameworks im Java-Umfeld dar. Nicht zuletzt verdankt Java den Durchbruch als Programmiersprache für Web-basierende Business-Anwendungen mächtigen Server-seitigen Bibliotheken wie diese. Mit Hilfe dieses klassischen Frameworks wird es um einiges leichter, umfangreiche und anspruchsvolle Web-Applikationen auf Basis von JSP (Java Server Pages) und Servlets zu implementieren. Dies liegt in erster Linie an dem sauberen Aufbau nach dem bewährten MVC-Muster (Model-View-Controller) und an den vielen zur Verfügung gestellten Oberflächenelementen und Funktionen.

Hauptziel von Struts ist es, die verschiedenen Systemschichten möglichst voneinander zu trennen. Dazu werden HTTP-Anfragen zunächst durch einen so genannten "Front-Controller” in einem standardisierten Prozess verarbeitet. Dann werden sie an die entsprechenden "Actions” weitergeleitet, die zentrale Komponenten des Frameworks darstellen und als Schnittstelle zwischen der Präsentations- und Steuerungsschicht dienen. Für den Einsatz von Struts sprechen zudem die vielen nützlichen Tools, die die Arbeit mit dem Framework erleichtern. So können verschiedene Plugins für Eclipse beziehungsweise Netbeans etwa den Aufbau einer Struts-Anwendung visualisieren und über Wizards Quellcode und Konfigurationsdateien automatisch generieren.

Tapestry: Komponenten-orientierte Web-Entwicklung

Tapestry
Tapestry
Foto: Diego Wyllie

Wer auf Java und die hohe Qualität und Robustheit der Apache-Produkte nicht verzichten, aber einen etwas moderneren Ansatz verfolgen möchte, dem sei das Framework Tapestry empfohlen. Die Lösung basiert auf einem Komponenten-orientierten Programmiermodell und vereinfacht die Entwicklung Web-basierender Java-Anwendungen durch Best-Practices wie REST Web Services, "Convention over Configuration" and "DRY" (Don't Repeat Yourself). Was das Framework jedoch einzigartig macht, ist der hohe Grad an Wiederverwendbarkeit von GUI-Elementen, die wie Objekte geschaltet, in JARs verpackt und in weiteren Projekten leicht implementiert werden können.

Die Web-Entwicklung mit Tapestry gleicht damit der Arbeit mit Swing. Eine Tapestry-Seite dient dabei als Container und besteht aus drei Dateien: Einer Seitenspezifikation im XML-Format, einem HTML-Template und einer Java-Klasse. In der XML-Datei werden die Attribute und Komponenten definiert, die innerhalb der Seite verwendet werden sollen. während das Layout in HTML spezifiziert wird. Die Java-Klasse enthält schließlich Accessor-Methoden, mit denen sich die Seitenattribute verändern lassen.