GEDOPLAN
Webprogrammierung

JSF in Zeiten von AngularJS & Co

Webprogrammierung

Seit Jahren entwickeln wir für und mit unseren Kunden Software im Jave EE Umfeld. Der Standard bot uns dazu immer die entsprechende Basis damit wir uns auf die Anwendung selbst konzentrieren konnten. JPA für die Zugriffe auf die Datenbank, CDI für die Kopplung unserer Business Logik, Bean Validation zur Überprüfung unserer Daten und die Benutzeroberfläche? Auch da blieben wir dem Standard treu. In Projekten in denen es „früher“ Swing-Clients zu entwickeln galt traten über die Zeit mehr und mehr die Webtechnologien in den Vordergrund und damit Java Server Faces als fester Bestandteil der „Java EE Welt“. Die vielen Projekte haben gezeigt dass sich mit JSF komplexe, sichere und stabile Anwendungen implementieren lassen die fast allen Ansprüchen gerecht werden kann.

„Fast Allen“? Sucht man dieser Tag im Netz stößt man über kurz oder lang auf Blog-Posts und Forums-Diskussionen die das Ende von JSF voraussagen. Solche Meinungen wird es nun vermutlich zu jedem Framework geben und doch wird das Spielfeld auf dem sich JSF gegen andere Frameworks messen muss voller. Seit jeher ist „Spring MVC“ sicherlich eine Alternative wenn es um die Frage nach einem geeigneten Webframework geht, aber auch die Verbreitung von GWT, Vaadin und besonders von JavaScript-Varianten àla AngularJS nimmt drastisch zu. Dazu kommt mit MVC in Java EE 8 selbst im Standard eine weitere Möglichkeit Weboberflächen zu entwickeln.

Was ist also verkehrt an JSF?

Nehmen wir noch einmal zum Vergleich die Beiden Alternativen Vaadin und AngularJS. Vaadin entbindet den Entwickler weitestgehend davon sich Gedanken um http, CSS, JavaScript und HTML zu machen. Anwendungen werden in Java geschrieben, ähnlich zu der Entwicklung mit Swing und am Ende entsteht, dank‘ Vaadin, eine Anwendung die im Browser läuft. Was die Einen mit größter Freude erfüllt, lässt die Anderen die Hände über den Kopf zusammen schlagen. Eine Webanwendung wird mit Webtechnologien geschrieben wird man dann aus dem Lager der AngularJS – Anhänger hören, nur so besteht die größte Kontroller über das was der Browser des Anwenders am Ende wirklich zeigen und ausführen soll. Und JSF? JSF liegt irgendwie in der Mitte. Zwar muss, dank Komponenten Bibliotheken, niemand Experte im Umgang mit CSS und JavaScript sein um eine JSF Anwendung zu schreiben, aber trotzdem sind grundlegende Kenntnisse in diesen Bereichen erforderlich, zudem steht der JSF Lebenszyklus und das serverseitigen Rendering zwischen dem Coding und der schlussendlichen Anzeige im Browser.

Projekte die sich also ganz auf die Entwicklung in Java konzentrieren wollen (an dessen Ende aber trotzdem eine Webanwendung steht) wird JSF als „Mittelweg“ demnach nicht gefallen, da die Berührungspunkte mit den Webtechnologien zu stark Ausgeprägt sind. Das genaue Gegenteil trifft auf Projekte zu die sich auf die Entwicklung von ansprechenden und flexiblen Oberflächen fokussieren. In diesem Fall steht JSF mit seinem reinen serverseitigen Rendering, starren Lebenszyklus und vorgefertigten Komponenten im Weg. Auch in Sachen mobile Entwicklung / responsive Design ist JSF sicherlich nicht die erste Wahl. Die großen Komponenten Bibliotheken versuchen hier Abhilfe zu schaffen und bieten häufig auch mobile Varianten ihrer Komponenten an und auch moderne Ansätze wie Bootstrap lassen sich bedingt zusammen mit JSF umsetzen. Das JSF – Framework selbst bietet im Bereich der mobilen Entwicklung, aufgrund seiner Architektur, allerdings nur sehr wenig Unterstützung.

Nichtsdestotrotz: JSF ist und bleibt ein stabiles und standardisiertes Framework um Webanwendungen zu entwickeln. Genau wie alle anderen Technologien hat JSF aber natürlich seine Schwächen und Bereiche wo andere Frameworks glänzen können. Grund genug einen genaueren Blick auf die „Konkurrenz“ zu werfen. Dieser Tage kommt man dabei an einem Framework nicht vorbei „AngularJS“. Aber wie passt AngularJS in unsere Java EE Welt? Vergessen wir mal die hübschen OnePage-Webseiten, die gut aussehen aber wenig mit unseren Projekten gemeinsam haben. AngularJS + Java EE; BeanValidation, Internationalisierung und und und … geht das? Und vor allem „Gut“?

In inzwischen vielen Beiträgen hier im Blog haben wir einen Blick auf Angular geworfen, auf dessen Möglichkeiten und auch die Integration mit Java. Stöbern Sie durch unsere Beiträge.

Weiterführende:

AngularJS und Java EE : Projekt Setup

AngularJS und Java EE: Build Prozess

AngularJS und Java EE: Bean Validation

RESTful Lazy-Load mit Jackson und Hibernate

Bye Bye Basic Auth Popup für Java EE

Swagger – REST APIs im Griff

JSON Web Tokens – JWT – Angular

… und viele viele mehr …

7 Kommentare. Hinterlasse eine Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Kurse

weitere Blogbeiträge

jackson views
Jakarta EE (Java EE)

Jackson JSON Prozessor

Jackson ist eine OpenSource Bibliothek zur Umwandlung von Java Objekten in JSON-Strings und von JSON-Strings in Java Objekte. Jackson kann…
i18n 1
Webprogrammierung

Angular, i18n

Internationalisierung. Eine typische Aufgaben bei der Implementierung von Web-Anwendungen. Diese Anforderung macht auch vor Angular nicht halt. Hier bieten sich…

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!