Kleine Helfer

Web-Entwicklung mit Tapestry

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.
Mit "Tapestry" bietet die Apache Foundation ein leistungsfähiges Web-Framework für Java-Anwendungen. Es soll Entwicklern ermöglichen, möglichst viele GUI-Komponenten wiederzuverwenden.

Tapestry (zu Deutsch Wandteppich) basiert auf einem komponentenorientierten Programmiermodell und vereinfacht die Entwicklung von Web-basierenden Java-Anwendungen durch Praktiken wie "REST Web Services", "Convention over Configuration" und "DRY" (Don`t Repeat Yourself). Neben den üblichen Features wie Validierung und Internationalisierung bietet es eine umfangreiche Komponentenbibliothek, Ajax-Unterstützung sowie eine überaus hohe Arbeitsgeschwindigkeit. Tapestry zeichnet sich aber in erster Linie durch eine unbegrenzte Wiederverwendbarkeit bestehender oder eigener GUI-Komponenten aus, die flexibel wie Objekte geschaltet, in Java Archives (JARs) verpackt und in weiteren Projekten leicht implementiert werden können.

Die Web-Entwicklung mit Tapestry gleicht damit der GUI-Entwicklung mit Swing. Eine Tapestry-Seite dient dabei als Container und besteht aus drei Dateien: einer XML-Seitenspezifikation, einem HTML-Template und einer Java-Klasse. In der XML-Datei werden die Attribute und Komponenten definiert, die innerhalb der Seite verwendet werden sollen. Das grafische Layout wird durch die HTML-Schablone definiert. Die Java-Klasse enthält schließlich Accessor-Methoden, mit denen die Seitenattribute modifiziert werden können.

Tapestry baut auf dem Java-Servlet-API auf, wodurch es sich in Servlet-Container wie Tomcat und in Applikations-Server einbinden lässt. Durch Erweiterungen lässt sich das Framework in Entwicklungsumgebungen wie Eclipse oder Netbeans integrieren. Ebenfalls möglich ist die Integration von Tapestry mit Hibernate und Spring.

CW-Fazit: Tapestry erlaubt es, dynamische, robuste und skalierbare Web-Anwendungen effizient zu entwickeln. Wer möglichst viele Komponenten wiederverwenden möchte, wird den hohen Einarbeitungsaufwand gerne in Kauf nehmen.