Auf der Suche nach Alternativen: Vaadin + Spring Boot

Die ganze Diskussion über die Zukunft von IBM Notes/Domino ist sehr müßig und darauf habe ich eigentlich gar keine Lust mehr. Ich für meinen Teil beschäftige mich sehr gerne mit neuen Themen und schaue mich daher ganz automatisch immer auch nach Alternativen um.

Das Konzept von Node.js und vor allem in Kombination mit AngularJS gefällt mir sehr. Einige REST Services mit Anbindung an Domino Daten habe ich damit auch schon für Kunden umgesetzt. Ich bin aber ehrlich gesagt kein großer Freund von JavaScript. Mir persönlich fehlt einfach der klassische Ansatz der Objekt orientierten Programmierung, außerdem tue ich mir mit dem Oberflächen Design in HTML auch sehr schwer.

Zuletzt bin ich aufgrund eines Erfahrungsberichtes über das Vaadin Framework gestolpert und war auf den ersten Blick begeistert. Das Prinzip ist im Grunde sehr ähnlich zur klassischen Notes Entwicklung. Mit sehr wenig Aufwand halbwegs ansehnliche Business Applikationen zu entwicklen. Ja, Notes war damals auch durchaus ansehnlich. Was mich allerdings wiederum abgeschreckt hat, war die Notwendigkeit eines Applikationsservers. Sicher, man kann Domino verwenden und die Vaadin Applikation in ein OSGi Plugin packen, aber dadurch steckt man eigentlich wieder in genau der selben Zwickmühle wie jetzt auch. Man ist abhängig von Java Versionen, Server Upgrade Zyklen, etc. Wenn ein Kunde im großen Stil auf solche Applikationen setzen möchte, macht eine Server Infrastruktur mit Backup, Hochverfügbarkeit, Rechte Konzept, etc. natürlich Sinn. Die Flexibilität geht dabei aber verloren.

Die Node.js Applikationen, die ich für einen meiner Kunden entwickelt habe, war ein gutes Beispiel. Es war völlig egal auf welcher Technologie wir entwickeln, aber wenn ich als Voraussetzung einen Application Server genannt hätte, wäre es nicht mehr so egal gewesen. Dann hätte das eine Menge zusätzlichen Aufwand, Abstimmungen und Entscheidungen nach sich gezogen. Statt dessen habe ich einfach eine Node.js Applikation irgendwo als Windows Service konfiguriert und seit dem läuft die Applikation ohne Probleme. Ich war nicht abhängig von irgendwelchen Server Versionen oder sonst irgendwas. Alles was ich benötige, packe ich in meine Applikation.

Das Vaadin Framework alleine kann diese Anforderung nicht erfüllen. Vor einiger Zeit habe ich mich aber auch mit Spring Boot beschäftigt. Vaadin und Spring Boot in Kombination erfüllen auf den ersten Blick all meine Erwartungen. Mit Vaadin entwickle ich meine Applikation und das Frontend und über Spring Boot integriere ich quasi einen Application Server und viele weitere nützliche Dinge, wie z.B. eine Authentifizierung gegen ein LDAP Verzeichnis.

Ich habe aktuell zwei Projekte auf meiner ToDo Liste, für die genau dieses Konzept sinnvoll wäre. Falls es zeitlich möglich ist, würde ich diese beiden Projekte mal sozusagen als Testballon mit Vaadin und Spring Boot implementieren. Als Backend werde ich per REST API auf Domino Daten zugreifen und über Webservices komplexere Funktionen ansprechen. Meine Erfahrungen, ob das Experiment erfolgreich war, werde ich hier bei Gelegenheit erzählen…

Falls jemand schon Erfahrung zu dem Thema gemacht hat, würde ich mich über Feedback sehr freuen.

Advertisements
This entry was posted in Development, IBM Notes/Domino and tagged , , , . Bookmark the permalink.

5 Responses to Auf der Suche nach Alternativen: Vaadin + Spring Boot

  1. shasselba says:

    Hmm…
    Also Runtime installieren, Package Manager ausführen, Applikation starten.

    Bei Java: JRE & Maven, mvn, und läuft.
    Bei Node JS: Node JS & NPM, npm, und läuft.

    Wo ist da jetzt der Unterschied?

    • Stephan Kopp says:

      Der Unterschied liegt in der Programmiersprache. Ich entwickle einfach lieber in Java als in JavaScript. Und das Vaadin Framework bietet mir persönlich bessere Möglichkeiten, schnell und einfach ans Ziel zu kommen ohne zu viel Zeit in das HTML Pixel schubsen zu stecken.

      • shasselba says:

        Die obige Ausführung bezog sich auf die “Voraussetzung eines Application Servers”. Und auf das mit den Abhängigkeiten.

        Da braucht es für Vaadin nämlich keinen für.

      • Stephan Kopp says:

        Ach so, na das macht Vaadin dann natürlich noch attraktiver… Danke für die Info

      • shasselba says:

        Ein Beispiel hierfür findet sich in der Adressbook Demo:

        https://github.com/vaadin/addressbook/

        Dort ist der Zielserver in der pom.xml hinterlegt, so dass ein einfacher Konsolenaufruf den Server startet (mvn jetty:run), und die Applikation gleich mit. Keine Konfiguration / kein WAR Deploy nötig, so dass der gleiche Effekt entsteht, wie wenn eine Node JS Applikation gestartet wird.

        Interessant ist aber zu hören, dass der Kunde hier genau das Gegenteil von dem möchte, was ich immer erfahre: Man möchte eben keinen eigenen (neuen) Server in die Infrastruktur bringen, sondern es soll alles schön auf den bestehenden Application Servern laufen…

        Das war übrigens auch der Grund, Vaadin auf dem Domino laufen zu lassen: Der Domino Server ist schon da und wird betreut und gewartet. Ein anderer Server (mit dem sich ggf. die Admins nicht auskennen) wäre problematisch.

Comments are closed.