Welche Webframeworks für welche Projekte?

Einsatzgebiete von Webframeworks

Kai Wähner

Im Java-Umfeld ist eine fast unüberschaubar große Auswahl an Webframeworks verfügbar. Diese nutzen verschiedene Technologien, realisieren unterschiedliche Designkonzepte und unterscheiden sich durch eine Vielzahl weiterer Merkmale. Daher stellt sich die Frage, welches Webframework für welches Projekt eingesetzt werden sollte. Einige Beispiele aus dem Unternehmensalltag sowie Empfehlungen durch Erfahrungen aus der Praxis zeigen, wie bei der Entscheidung für ein konkretes Webframework vorgegangen wird.

Im ersten Teil dieser Artikelserie Welches Webframework soll im nächsten Projekt eingesetzt werden? wurden bereits die wichtigsten Designentscheidungen im Umfeld von Webframeworks erläutert und eine Kategorisierung nach Frameworktypen vorgenommen (Abb. 1). Die gängigsten Frameworks wurden bezüglich dieser Informationen eingeordnet (Abb. 2) Die Komplexität wird dabei aus Sicht eines Java-Entwicklers betrachtet). Dieser Artikel widmet sich nun einigen beispielhaften Projekten aus dem Unternehmensalltag mit unterschiedlichen Größenordnungen und verschiedensten Anforderungen. Auf diese Weise lässt sich gut demonstrieren, wann welcher Frameworktyp sinnvoll eingesetzt werden kann. Geeignete Webframeworks lassen sich wie folgt weiter evaluieren, um die bestmögliche Entscheidung zu treffen.

Abb. 1: Kategorisierung von Webframeworks

Abb. 2: Einordnung von Webframeworks bezüglich Frameworktyp und Komplexität

Für jedes Praxisbeispiel werden zunächst die Anforderungen an ein Webframework erläutert. Dann wird beschrieben, warum ein bestimmter Frameworktyp und eine konkrete Technologie besonders geeignet sind. Abschließend werden konkrete Handlungsempfehlungen zur Auswahl eines Webframeworks gegeben. Die Anforderungen für sämtliche Beispiele werden aus Sicht eines Java-Entwicklers betrachtet.

Beispiel 1: Unternehmensinterne Anwendung zur Verwaltung von Daten

Anforderungen: Die Webanwendung soll ermöglichen, die Weiterbildungsplanung der eigenen Mitarbeiter zu verwalten. Dazu sollen Weiterbildungsmaßnahmen erzeugt, aktualisiert und entfernt werden können. Die Suche nach bestimmten Maßnahmen durch verschiedene Kriterien muss ebenfalls möglich sein. Außerdem sollen die einzelnen Maßnahmen in unterschiedlichen Ansichten dargestellt werden können, z. B. sortiert nach Mitarbeiter oder Karrieremodell. Gleichzeitig müssen aber die Kosten gering gehalten werden, insbesondere in die äußere Erscheinung der Webanwendung ist nur geringer Aufwand zu stecken.

Lösung: Da diese Anwendung nur ein einfaches Datenmodell persistieren muss, eignet sich in diesem Fall ein CRUD-Framework. Auch ohne Kenntnisse des spezifischen Frameworks ist ein funktionsfähiger Prototyp nach ca. ein bis zwei Personentagen erzeugt, da viele Konventionen vom Framework genutzt werden und das gesamte Codegrundgerüst der Persistierung und Darstellung generiert wird. Dazu muss im Prinzip nur das vorhandene Datenmodell in Tabellen und Relationen abgebildet werden. Um den Rest kümmert sich das Framework selbst. Für die endgültige Fertigstellung, inklusive Tests und Anpassung der Darstellung nach den Designvorgaben des Unternehmens, sollte mit weiteren zwei bis drei Personentagen gerechnet werden. Demnach kann die Anwendung bereits nach etwa fünf Personentagen Entwicklungszeit produktiv eingesetzt werden.

Technologieauswahl: Für diese Webanwendung bieten sich das Roma Framework oder Spring Roo an, da im Gegensatz zu Alternativen wie Grails oder Lift keine neue Programmiersprache gelernt werden muss. Bei CRUD-Frameworks ist allerdings zu beachten, dass oft ein Großteil der Anforderungen schnell realisiert werden kann, wohingegen bei einigen wenigen Zusatzanforderungen, wie etwa komplexen Abhängigkeiten im Datenmodell, der Aufwand auch über den von anderen Frameworks hinausgehen kann. Dieser fällt dann schnell deutlich höher aus, als zunächst erwartet.

Geschrieben von
Kai Wähner
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.