PITSS Tech Blog
News zu Java, PL/SQL, Entwicklung & Technologiewechsel
Top 5 Java Frameworks 2018! Mit diesen Technologien arbeiten Sie am effizientesten
Sei es der Tiobe-Index, die Analysen von RedMonks oder auch die Ergebnisse von PYPL – alle Bewertungssysteme der aktuellen Programmiersprachen sehen Java auf Platz 1 oder 2. Nur verständlich also, wenn für die eigene Software-Entwicklung vor allem die verschiedenen Java Frameworks genauer unter die Lupe genommen werden.
Oracles Ankündigung Java EE der OpenSource-Gemeinde der Eclipse Foundation zu übergeben um mehr Agilität in der weiteren Entwicklung der Programmiersprache zu ermöglichen, lässt auf viel Bewegung im Bereich der Frameworks hoffen. Darüber hinaus führt die immer populärer werdende JavaScript-Verwendung im UI und das Architektur-Pattern der Microservices zu einer weiteren Veränderung in den Java-Frameworks.
Stellt sich die Frage: Welche Java Frameworks dürfen wir im kommenden Jahr an der Spitze der Charts vermuten?
Spring MVC
Spring MVC gehört mittlerweile zu den etablierten Klassikern in der Java basierten Anwendungsentwicklung für Webapplikationen. Daher ist zu vermuten, dass dieses Framework auch im kommenden Jahr einen der ersten Plätze einnehmen wird. Mit der im September zu erwartenden Version 5.0 wird nicht nur das Java JDK Version 9 supported, sondern auch wichtige Neuerungen veröffentlicht. Mit WebFlux wird ein vielversprechendes Framework eingebunden, welches grundlegend auf einem reaktiven, nicht blockierenden Stack basiert und somit ideal für asynchrone und Streaming-Szenarien geeignet ist.
Ebenfalls öffnet sich das Java Framework an vielen Stellen der Programmiersprache Kotlin, der in Zukunft viel zugetraut werden darf.
Vorteile
- Feingranulare Modularität: Es sind nur die Komponenten des Frameworks einzubinden, die wirklich genutzt werden.
- Dependency Injection: Ein Verfahren mit dem die Abhängigkeit zwischen verschiedenen Klassen ideal, d. h. modular, ohne Overhead und sehr leicht testbar, gelöst werden kann.
- Leichte Portierbarkeit: Die erstellte Anwendung läuft auf einer sehr breiten Auswahl verschiedener WebContainer (z. B. TomCat, Glassfish etc.).
- Breiter Community Support: Support in diversen Foren, Plattformen und von Sponsoren ist leicht zu finden.
Nachteile
- Nicht vollumfänglich: Mag als Nachteil oder Stärke eingestuft werden, aber für eine komplette Anwendungsentwicklung sind für Bereiche der Datenanbindung, Transaktionssteuerung, Security, etc weitere Frameworks einzusetzen.
- Kein RAD-Tool: Es ist relativ viel Coding notwendig, was mehr manuellen Aufwand in Großprojekten erfordert.
► Zum gratis White Paper: Spring MVC & PrimeFaces vs. Oracle ADF
Spring Boot
Ein zweites Framework aus der Produktpalette von Spring soll hier gleichfalls den Platz unter den Top Kandidaten finden. Spring Boot folgt dem Konzept “Konventionen vor Konfigurationen” und soll den schnellen Start in die Anwendungsentwicklung vereinfachen. In dem Starterpaket sind bereits ein AppServer und die wichtigsten Konfigurationen enthalten, so dass ohne aufwändiges Setup in die Entwicklung eingestiegen werden kann. Durchgängig wird auf Java Configuration Services zurückgegriffen, die es ermöglichen, Abhängigkeiten zu anderen Tools und Frameworks durch Spring Boot verwalten zu lassen.
Grundsätzlich kann sich Spring Boot allen Features der anderen Spring-Projekte bedienen und diese inkludieren. Der Ansatz adressiert gerade Projekte, die auf Microservice-Architekturen zählen, da Spring Boot von der ersten Klasse für den Datenbank-Zugriff bis hin zum WebContainer alles zusammenschnüren kann.
Vorteile
- Sehr leichtes Setup: Das initiale Projekt kann auf der WebSeite über Wizzards erstellt und heruntergeladen werden.
- Einfaches Deployment: Spring Boot übernimmt die Abhängigkeiten, ein simpler Aufruf und der Container inkl. Applikation werden bereitgestellt.
- Einfaches Debuggen: Da es eine simple Java-Applikation ist, kann diese auch als solche für das Debuggen genutzt werden.
Nachteile
- Focus: Wie die meisten Frameworks deckt auch Spring Boot nur einen speziellen Bereich in der Anwendungsentwicklung ab. Ohne weitere Frameworks wird das Projekt nicht gelingen.
- Coding: Auch wenn durch die Annotationen schon viel Arbeit abgenommen wird, bleibt es am Ende des Tages doch bei einer umfangreichen Menge von Codezeilen, die geschrieben werden müssen.
- Enterprise Applikationen: Focus liegt auf Stand-Alone Applikation in einem Microservice Ecosystem. Wird eine Enterprise Applikation benötigt, ist der Ansatz nicht hilfreich.
Oracle ADF
Das vollumfängliche Java Framework von Oracle deckt von der Datenanbindung an verschiedenste Datenquellen über eine visuelle Deklaration der Taskflows bis hin zum Design des UIs auf Basis von Java Server Faces Technologie den gesamten Stack der Anwendungsentwicklung ab. Die Kombination von Wizards und der Freiheitsgrad im Konzept der JEE-Plattform an beliebigen Stellen eigene Komponenten zu integrieren, sorgen für eine beispiellose Produktivität für den Entwickler. Besonders hervorzuheben sind die vorkonfigurierten Möglichkeiten, die erstellte Anwendung auf allen Ebenen mit einem umfangreichen Security-Konzept zu versehen und ohne weitere Implementierung dem Anwender die Möglichkeit zu geben, die Applikation nach dem Deployment an die eigenen Vorstellungen anzupassen. Neben dem, an den Weblogic-Server gebundenen Framework, stellt Oracle mit ADF Essential auch eine kostenfreie Version zur Verfügung, die mit dem Glassfish-Server zertifiziert ist, aber auch z. B. auf TomCat-Servern zum Einsatz gebracht werden kann.
Vorteile
- Produktivität: Der Ansatz, XML-Dateien wahlweise über Wizards oder im Editor zu bearbeiten, die dann vom Framework interpretiert werden, erspart unnötiges Coding.
- Vollumfänglich: Es ist kein weiteres Framework, Tools oder Klassen notwendig um eine komplette Enterprise Applikation erstellen zu können.
- Technologie-Kapselung: Das Framework kapselt Basis-Technologien, wie z. B. HTML5 und Facelets und sorgt damit über die Releases dafür, dass jeweils aktuelle und etablierte Implementierungen zum Einsatz kommen.
Nachteile
- IDE-Bindung: Die Nutzung des Frameworks ist an die IDE JDeveloper (Empfehlung von Oracle) oder Eclipse gebunden. Andere IDEs werden nicht unterstützt.
- Grenzen der Generierung: Sollen Anforderungen umgesetzt werden, die außerhalb des Mainstreams des Frameworks liegen, steigt die Komplexität überproportional.
- Bindung an Weblogic Server: Für den vollen Funktionsumfang ist der Weblogic Server Voraussetzung. ADF Essential löst das Problem, erfordert aber eigene Implementierung für Security und Customization.
► Zum gratis White Paper: Spring MVC & PrimeFaces vs. Oracle ADF
Java Server Faces (JSF) – PrimeFaces
Java ServerFaces beschreibt ein Web-Framework zur Erstellung von Anwendungen auf Basis von Java sowie Servlets und JSP (Java ServerPages) Technologien und gehört zum Technologie-Stack Java EE. Der Ansatz des Model-View-Controller-Konzepts wird strikt verfolgt, Modularisierung und Wiederverwendung erlauben eine effiziente Gestaltung der Benutzeroberflächen. JSF wird von einer Reihe von Webframeworks implementiert. Dazu gehören unter anderem ICEFaces von IceSoft, RichFaces von JBoss und – sicherlich der prominenteste Vertreter – PrimeFaces von PrimeTek.
Erst im letzten Jahr wurde PrimeFaces im Dukes Choice Award der Java Community im Bereich Enterprise Java ausgezeichnet.
PrimeFaces stellt eine leichtgewichtige Bibliothek dar, welche versucht, die Komplexität der UI Gestaltung möglichst einfach erscheinen zu lassen. Gerade mit Spring-Applikationen im Backend können somit ansprechende Enterprise-Applikationen erstellt werden.
Vorteile
- Einfach zu nutzen: Das Konzept, mit einer JAR, ohne weitere Abhängigkeiten auszukommen, erleichtert die Einbindung in die eigene Entwicklungsinfrastruktur.
- Community Unterstützung: Literatur, Blogs und Unterstützung in diversen Foren sind weit verbreitet und bieten umfangreichen und wertvollen Content.
- Standard: Es folgt dem JSF- und JEE-Standard und erlaubt somit die Integration in und von anderen Frameworks, die diesem Pattern folgen. Für den Bereich JSF kann PrimeFaces als Quasi-Standard angenommen werden.
Nachteile
- Umfang: PrimeFaces konzentriert sich ausschließlich auf die Gestaltung des UIs. Andere Frameworks sind also zwingend notwendig für die Datenanbindung und den Controller.
- Data Binding: Die Integration des Data Binding ist zeitaufwendig und wird schnell umfangreich.
- Technisch Anspruchsvoll: Es sind viele Möglichkeiten für das UI nutzbar, was schnell zu einer komplexen Implementierung führen kann und ein hohes Maß an technischem Know-how erfordert.
► Zum gratis White Paper: Spring MVC & PrimeFaces vs. Oracle ADF
Vaadin
Vaadin ist ein Webframework, welches dem Entwickler erlaubt auf Serverseite die komplette Applikation ausschließlich in Java zu schreiben. Für die Darstellung des UIs im Browser nutzt das Framework Googles Java-zu-Java Script Compiler “Goolge Web Toolkit“ (GWT). In dieser Kombination erreicht Vaadin für den Anwender das Gefühl einer echten Rich-Client-Oberfläche mit Standard-Funktionen für z. B. Spaltensortierung und dem Verzicht auf komplettes Page-Refreshing.
Die Abstraktion von der eigentlichen Webentwicklung mit HTML5, CSS und Javascript erleichtert den Einsteigern den ersten Schritt in die Web-Entwicklung stellt aber auch gleichzeitig den Rahmen für mögliche Freiheitsgrade im Gestalten der User Interfaces.
Unterstützung für die Entwicklungsumgebung ist besonders im Bereich Eclipse zu finden, wobei Netbeans und IntelliJ ebenfalls unterstützt werden. Zusätzlich bietet Vaadin auch einen Visual Designer an, der eine WYSIWYG-Entwicklung des Webfrontends erlaubt.
Vorteile
- Hilfreiche Plugins vom Hersteller: Dazu gehören eine Spreadsheet Komponente, Native Smartphone und Tablet Unterstützung, UI Testing Tools u. v. m.
- Leichte Integration von Spring: Volle Integration über API, idealer Zugriff auf Spring Daten Bereitstellung.
- Einsatz: Effiziente Implementierung, die sich auf die serverseitge Java Programmierung konzentriert.
Nachteile
- Kosten: Soll Vaadin vollumfänglich, mit allen PlugIns und Wartung genutzt werden, startet der Service bei 800 € pro Monat.
- Generierter Code: Relativ groß, da die clientseitig generierten Java Script-Komponenten schnell recht umfangreich werden.
- Kein clientseitige Bearbeitung möglich: Jeder Request geht zunächst an den Server und das kann zeitaufwändig sein.
Fazit zu den Top 5 Java Frameworks
Aktuell werden mehr als 60 Webframeworks bei Wikipedia geführt. Die Auswahl in diesem Artikel ist unsere Wahrnehmung und bezieht sich auf die Frameworks, die für uns im Gespräch mit unseren Kunden sichtbar werden.
Die Anwendungsentwicklung im Web zeigt, dass häufig zumindest zwei Java Frameworks unterschiedlicher Anbieter zum Einsatz kommen müssen, damit eine vollumfängliche Enterprise-Applikation entwickelt werden kann. Ausnahme ist hier das Applikation Development Framework von Oracle, welches von der Datenanbindung bis zum UI alles aus einer Hand anbietet.
Da gerade eine Vielzahl der Applikationen auf Oracle Datenbanken im Backend setzen, bietet sich dieses Framework umsomehr an.
Um allerdings mit einem Zitat von Steve Jobs zu enden:
“Technology is nothing. What’s important is that you have a faith in people, that they’re basically good and smart, and if you give them tools, they’ll do wonderful things with them.”
Unser Whitepaper „Spring MVC & PrimeFaces vs. Oracle ADF“ als Geschenk für Sie:
Welches Framework darf es denn nun sein? Wenn auch nach diesem Artikel noch einigen Fragen offen bleiben, dann empfehlen wir Ihnen einen Blick auf unser kostenloses White Paper. Darin gehen wir ins Details bei der Frage „Lieber das vollumfängliche Framework ADF oder die Kombination aus beliebten Einzelkönnern – etwa Spring MVC und PrimeFaces?“.
Wenn Sie mehr dazu erfahren wollen, dann kommen Sie mit einem Klick hier zu unserer Newsletter Anmeldung, für die es unser White Paper als kostenloses Willkommensgeschenk gibt.
0 Kommentare