Budischek, M. (2011). Vergleich von Java Webframeworks [Diploma Thesis, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/160479
Die Anforderungen an Webanwendungen sind in den letzten Jahren stark gestiegen. Heute erwartet man von einer Webanwendung nicht nur Cross-Browser-Kompatibilität und Performance, sondern oft auch ein flüssiges (Desktop-ähnliches) Verhalten und ein ansprechendes Design.<br />Frameworks, die mit diesen steigenden Anforderungen Schritt halten wollen, müssen laufend weiterentwickelt und verbessert werden.<br />In Java gibt es dutzende Webframeworks. Diese große Vielfalt an einsetzbaren Technologien ist gleichzeitig Stärke und Schwäche von Java.<br />Einerseits gibt es zwar für die meisten Anforderungen bereits ein passendes Framework, andererseits wird es immer schwerer, im Framework-Dschungel, die richtige Technologie auszuwählen.<br />Diese Arbeit vergleicht die drei Webframeworks Wicket [1], Tapestry [2] und die JSF2 Referenzimplementierung Majorra (2.0) [3], wobei, neben nicht-technischen Faktoren wie Dokumentation, unter anderem die folgenden Bereiche verglichen werden: Grundkonfiguration, Seitenaufbau, Validierung, Request-Verarbeitung, Navigation, Komponenten, Events, AJAX, Vorlagen, Dependency-Injection und Scopes. Dabei wird, wo sinnvoll, auf praktische Beispiele zurückgegriffen und deren unterschiedliche Umsetzung mit den einzelnen Frameworks untersucht.<br />Weiters werden die Frameworks auf ein einheitliches Grundgerüst gestellt, das aus Spring-IoC und Spring-Security besteht. In diesem Zug wird auch gezeigt, wie die Mängel, die Spring im Bereich der Scopes hat, behoben werden können. Zur Bewertung der einzelnen Punkte des Vergleiches wird ein Punktesystem eingeführt, wobei die Gewichtung der einzelnen Kategorien variabel ist, und an die jeweiligen konkreten Anforderungen angepasst werden.<br />Ziel dieser Diplomarbeit ist es Stärken und Schwächen der Frameworks aufzudecken und festzustellen, wie gut diese mit den rapide wachsenden Anforderungen, die heute an Webanwendungen gestellt werden, mithalten können. Die größten Erwartungen lasteten dabei unweigerlich auf JSF2, da es das jüngste der drei Frameworks ist, sehr stark von Tapestry inspiriert wurde und viel Zeit hatte, um aus den Fehlern der anderen beiden zu lernen. Eine Integrationsmöglichkeit für Spring-IoC konnte, aufgrund dessen großer Beliebtheit, ebenfalls erwartet werden, die Integration von Spring-Security allerdings nur unter Einschränkungen.<br />Wie diese Arbeit zeigt, sind sich die Frameworks in einigen Punkten sehr ähnlich, in anderen wiederum verfolgen sie sehr unterschiedliche Ansätze. Jedes Framework hat seine Vor- und Nachteile, insgesamt sind aber alle drei sehr ausgereift und stabil. Besonders JSF2, in Kombination mit einem Komponentenframework, kann überzeugen und wird den hohen Erwartungen durchaus gerecht. Welches Framework sich letztendlich durchsetzt, hängt aber von der Gewichtung der einzelnen Kriterien ab.<br />
de
In the last few years, the requirements on web applications have increased rapidly. Today it's not only expected to have cross-browser-compatibility and performance, but also a fluid, quick-reacting user interface, with an appealing design. Frameworks, which want to keep up with these requirements, have to be continuously improved and expanded.<br />There are dozens of web frameworks available in Java. This high amount of usable technologies is strength and weakness alike. On one hand, there will be a suitable framework for almost any requirement, but on the other hand it is getting harder and harder to find it, because of the overwhelming amount of available technologies.<br />This master thesis compares the web frameworks Wicket [1], Tapestry [2], and the JSF2-reference-implementation Majorra (2.0) [3]. Among others, the comparison includes the following parts: documentation, configuration, page-declaration, validation, request-processing, navigation, components, events, AJAX, templates, dependency injection and scopes. Practical examples were coded in all three frameworks and the results are analyzed as well. It is also demonstrated, how the frameworks can be build up an a common basement, consisting of Spring-IoC and Spring-Security.<br /> This thesis aims to reveal strengths and weaknesses of the frameworks and to find out how well these frameworks go along with typical requirements on modern applications. The biggest expectation lasted on JSF2, as it is not only the youngest of the three, but was also greatly inspired by Tapestry. Also the JSF2-Team had enough time to learn from common mistakes of other frameworks, especially of these made by previous versions of Wicket and Tapestry. It was expected that there is a good integration for Spring-IoC, because of its high popularity. Such an integration possibility was only partially expected for Spring-Security, as some of its concepts dig deeply into the secured applications source code.<br />The three frameworks are similar in some ways, but use different approaches for most parts. Each framework has specific advantages and disadvantages, but overall, all three are very mature and stable frameworks. Especially JSF2, in combination with a component framework, is convincing and indeed able to live up to its expectations. However, the winner of the comparison depends on the weighting of the categories of course.
en
Additional information:
Abweichender Titel laut Übersetzung der Verfasserin/des Verfassers Zsfassung in engl. Sprache