Bisher war MVC 1.0 als eine der wesentlichen Neuerungen für Java EE 8 gesetzt. Doch mit der diesjährigen JavaOne und der von Oracle dort ausgegebenen Vision für die Zukunft des Enterprise-Java-Standards hat sich das grundlegend geändert. MVC 1.0 soll fallen gelassen werden. Stattdessen stehen nun Cloud und Microservices im Fokus. Aber ist das wirklich ein Widerspruch?
Im September hat Oracle auf der JavaOne nach knapp einem Jahr Funkstille nun seine neuen Pläne für Java EE 8 vorgestellt. Die Zukunft soll in der Cloud und in Microservices liegen. An sich keine schlechte Idee und vielleicht auch die einzig richtige Entscheidung – immerhin werden so die architektonischen Entwicklungen der letzten Jahre im Standard verankert und Java EE bleibt zeitgemäß. Zur großen Verwunderung vieler fehlte bei Oracles Vorstellung allerdings MVC 1.0 – ein zu JSF alternatives Webframework, das zwei Jahre zuvor im Community Survey [1] noch als hoch bewertetes Feature in die initiale Spezifikationsplanung aufgenommen wurde. Oracles Begründung zum Fehlen von MVC 1.0 lässt sich in einer Neuauflage des Community Surveys finden, der zur Veröffentlichung dieser Kolumne bereits geschlossen ist. Dort heißt es sinngemäß, dass der Trend bei Webanwendungen immer mehr zu clientseitig gerenderten Webanwendungen (Single-Page Applications) zu gehen scheine. Deshalb sei man sich nicht mehr sicher, ob noch die Notwendigkeit für ein alternatives MVC-Webframework bestehe.
Es mag für einige überraschend gewesen sein, dass die Idee eines weiteren Webframeworks überhaupt eine solch große Unterstützung in der Community erfahren hat. Schließlich scheint JSF ja gut zu funktionieren. Es ist seit über zehn Jahren Teil des Standards und in fast jeder EE-Anwendung zu finden. Warum schlägt man also überhaupt ein weiteres Webframework vor?
JSF ist ein Component-based (komponentenbasiertes) MVC-Framework. Diese Art von Webframework zeichnet sich im Wesentlichen durch zwei Attribute aus: serverseitige Komponenten und Abstraktion. Komponentenbasierte Frameworks definieren sowohl ihr Aussehen als auch ihr Verhalten auf der Serverseite (serverseitige Komponenten). Das Framework, also JSF, sorgt dann für die Übersetzung der Komponenten in die für die Darstellung eigentlich benötigten Webtechnologien wie HTML, CSS und auch JavaScript. Diese Abstraktion ermöglicht es, Webanwendungen ohne die Kenntnis der darunterliegenden Technologien zu entwickeln – also Webentwicklung, ohne im Web zu ...