Posts Tagged: ‘Development’

Und ab geht die Flutter

15. Mai 2018 Posted by Stephan Schramm

Nachdem ITWU bisher nur mit Phonegap bzw. Cordova mobile Apps für iOS entwickelt hat, war es dringend an der Zeit sich den aktuellen Stand der Hilfen zur mobilen cross-plattform App-Entwicklung anzuschauen –  Ob es nun ein Framework, ein Toolkit, ein Creator, ein Builder oder eine IDE ist.

 

Angeschaut wurden Ionic, Titanium, Xamarin, Sencha, AppGyver, AlphaAnywhere, Kony Vizualizer, Apperio, Quickbase, Eachscape und Google Flutter. Eins der wichtigsten Kriterien für uns ist, dass man nur einmal programmiert. Auf keinen Fall ist es gewünscht, dass man nach dem Entwickeln in der eignen IDE noch einmal viel Code im Android Studio oder in der Xcode IDE für iOS ein zweites Mal programmiert. Viele Tools konnten begeistern, sind aber nur für bestimmte Einsatzzwecke optimiert. Andere Werkzeuge konnten wir von vorneherein ausschließen, weil 20 – 50% des Codes tatsächlich ein zweites Mal programmiert werden muss. Mittlerweile muss man leider sagen, dass viele der Hilfen auf eine Online-Verbindung angewiesen sind, weil diverse Cloud-Dienste genutzt werden. Aus meiner Sicht ist das nicht immer praktisch.

 

Am Ende blieb in unserer Vergleichsmatrix der Hilfen ein Unentschieden zwischen Ionic und Googles Flutter stehen. Und das obwohl der Ionic Creator 3.2 gerade im Alpha Release und Google Flutter im Beta Release sind.

 

Ionic setzt auf bekannte Wege zur cross-plattform App-Entwicklung: Angular, JS, HTML, CSS, uvm. Man denke an Progressive Web Apps ;) Ionic bietet auch einen eigenen Creator aber keine eigene IDE. Für die meisten bekannten IDEs gibt es aber Plug-Ins und natürlich die berühmte Commandozeile. So kann man dann auch den Export für XCode und Android Studio erstellen.

 

Flutter ist absolut neu und programmiert wird in DART. Flutter ist eigentlich nur ein UI Framework bzw. SDK und kann direkt in Android Studio verwendet werden. Von dort kann man dann einen Export für Xcode erstellen. Wir sehen in Flutter im Moment ein großartiges Potential. Es wird nativer Code kompiliert, so dass man direkt den Performance-Vorteil gegenüber den hybriden Frameworks merkt. Die Entwicklung ist aber so nah an JavaScript, dass man nicht wirklich eine neue Programmiersprache lernt.

 

Wir sind gespannt, was auf der Google I/O 2018, auf der auch Flutter ein Thema war, herausgekommen ist. Wir halten euch hier auf dem Laufenden.

 

Dann programmieren wir mal weiter.

 

Habt ihr Fragen oder Anregungen? Ruft uns einfach an unter 05251 288160 oder schreibt uns eine E-Mail an info@itwu.de.

 

DNUG Vortrag: Notes Applikationen im Lego Prinzip modernisieren

20. Mai 2017 Posted by Stephan Kopp

Auf der diesjährigen DNUG, am 31.5. in Berlin darf ich einen Vortrag über die Modernisierung von Notes Applikationen halten. Weitere Informationen und Details gibt es hier.

In meinem Vortrag möchte ich auf die Möglichkeiten eingehen, wie man komplexe, monolithische Applikationen modernisieren kann. Ein großes Thema dabei sind Microservices. Es geht darum, wie man mit solchen Applikationen sinnvoll umgehen kann, um nachhaltig eine moderne, auf Microservices basierende Applikation zu erhalten. Dabei werden keine automatischen Migrationstools oder Frameworks verwendet, hier geht es um echte Entwicklungsarbeit, um die Applikation fit für die nächsten Jahrzehnte zu machen ohne sie erneut von einem einzelnen Hersteller abhängig zu machen. Ob man dabei zunächst auf der Domino Plattform bleibt, oder schon anfängt die einzelnen Module mit neuen Technologien zu entwickeln, bleibt jedem selbst überlassen.


Filed under: Development

René Schimmer von IBM eröffnet den Connections-Track der #DNUG44!

22. März 2017 Posted by DNUG

Wir freuen uns sehr, mit René Schimmer einen hochkarätigen Sprecher für die #DNUG44 gewonnen zu haben! Der Senior Produktmanager von IBM eröffnet mit seinem Vortrag zum Thema „What is New and What is Coming with IBM Connections“ den Connections-Track. Interessierte Sprecher sind bis zum 10.04.2017 herzlich eingeladen, sich ebenso anzumelden. Nähere Infos hier.

Der Beitrag René Schimmer von IBM eröffnet den Connections-Track der #DNUG44! erschien zuerst auf DNUG.

Agenda zum DNUG-Fachgruppentag „Infrastruktur- und Development-News von der Connect“

2. März 2017 Posted by DNUG

Nachfolgende Agenda zum DNUG-Fachgruppentag am 16.03.2017 in Düsseldorf erwartet die Teilnehmer:

Vorträge am Vormittag:
– IBM Connections: aktuelle Erweiterungen und Integrationen – Andreas Rosen und Tim Peteler
– IBM Connections PINK – Andre Hagemeier

Vorträge am Nachmittag:
– IBM Verse: Erweiterungen programmieren und integrieren – Stefan Neth
– „Beyond Domino Designer“ (Vortrag in deutsch) – Stephan Wissel
– IBM Domino Anwendungsmodernisierung – Christian Holsing

Die Veranstaltung findet von 10:00 – 16:00 Uhr statt. Weitere Informationen und Anmeldung hier.

Der Beitrag Agenda zum DNUG-Fachgruppentag „Infrastruktur- und Development-News von der Connect“ erschien zuerst auf DNUG.

Notes application modernization with Vaadin :: A step-by-step beginner tutorial

1. März 2017 Posted by Stephan Kopp

Modernization of IBM Notes/Domino applications should be done outside of the Notes/Domino universe, which means in the first step to create a non-xpage frontend and connect it to your existing Notes application. I’m currently working in multiple projects with Vaadin and I’ve created a step-by-step tutorial as a beginners guide to start with Domino application modernization using REST, Spring Boot and Vaadin.

It is not a deep dive into all involved technologies and frameworks. The intention was to create a step-by-step guide for a classic Domino developer now looking forward to modernize applications with new technologies. Not discussing every single topic and technology in detail, just something to get startet und to get a working example without much effort.

If you have questions or in case of any problems and errors, don’t hesitate to contact me!

Start with the tutorial here, or just download the application from the repository.

 


Filed under: Development

Die Zukunft von Notes Applikationen: Domino als Backend: JA / XPage oder Notes Client als Frontend: NEIN

24. Februar 2017 Posted by Stephan Kopp

Dieses Jahr und auch letztes Jahr schon, war ich nichtmehr auf der IBM Connect. Meine Einschätzung aus der Ferne: Ich habe auch dieses Jahr nicht viel verpasst… Dank Volker Weber habe ich die wichtigsten News über den Slack Team Space verfolgt, den er angelegt hatte (Infos findet ihr hier).

Meine Einschätzung über die Zukunft von Notes Applikationen hat sich im Grunde bestätigt. IBM wird die Plattform Domino soweit am Leben erhalten, dass die Applikationen dort im Hintergrund noch viele Jahre betrieben werden können. Mit den Frontends sollte man sich aber mittel- bis langfristig vom Notes Client und XPage Umsetzungen weg bewegen. Die Zukunft der Applikationen liegt im Browser und dort sollte man auf OpenSource Technologien setzen.

Es gibt viele Hersteller auf dem Markt, die hierfür mehr oder weniger sinnvolle Lösungen anbieten. IBM hat auf der Konferenz einige davon hervorgehoben, lässt die Partner Lösungswege zur Modernisierung aufzeigen und konzentriert sich selbst auf die Wartung der Plattform.

Jeder Entwickler kann aber auch ohne solche Komplettlösungen dieses Konzept selbst umsetzen. Die Oberfläche einer Applikation für den Browser entwicklen, z.B. mit Angular, Vaadin oder ähnlichen Frameworks. Die bestehenden Notes Applikationen über APIs ansprechen, steuern und bereits vorhandene Funktionen weiter verwenden. Damit verabschiedet man sich nach und nach vom Notes Client und betreibt den Domino Server langfristig nur noch als Datenbank System und Applikationsserver.

Ich sehe das als sinnvollen Weg um die bestehenden Applikationen zu modernisieren. Viele davon sind Business kritisch und nur mit sehr hohem Aufwand und Risiko komplett zu ersetzen.


Filed under: Development, IBM Notes/Domino

DNUG-Fachgruppentag: Infrastruktur- und Development-News von der Connect [Fachgruppe Development]

22. Februar 2017 Posted by DNUG

Folgende Themen stellen wir Euch auf unserem Fachgruppentag vor:

Themenblock 1 – vormittags
Unter dem Codenamen PINK arbeitet IBM an einer Modernisierung aller Bestandteile von IBM Connections. In diesem Zusammenhang werden auch zentrale Infrastrukturkomponenten wie z.B. WebSphere Application Server ausgetauscht und durch komplett neue Technologien ersetzt. Hierdurch wird sich nicht nur das Deployment zukünftiger IBM Connections Versionen grundlegend ändern. Auch für Entwickler bieten sich neue Möglichkeiten. Erfahrt aus erster Hand, wie die neue technologische Basis aussehen wird, welche Skills Du zukünftig benötigst und wie Du dich heute bereits auf diese Änderungen vorbereiten kannst.

Themenblock 2 – nachmittags
Bei Domino Webanwendungen denken viele zunächst an XPages. Die Programmierung von Applikationen für und mit IBM Domino umfasst jedoch weitaus mehr Facetten. Die Neuigkeiten von der IBM Connect zum Thema Domino Anwendungsmodernisierung werden vorgestellt und gemeinsam mit den Spezialisten von IBM diskutiert. Darüberhinaus konnten wir einen der Entwickler von IBM Verse On-Premises als Sprecher gewinnen. Freue Dich auf spannende Vorträge und Diskussionen.

Die Veranstaltung richtet sich hauptsächlich an Architekten und Entwickler.
Moderation: Erik Schwalb (Technical Sales IBM Collaboration Solutions, IBM Deutschland GmbH)

Datum: 16.03.2017
Zeit: 10:00 – 16:00 Uhr
Ort: IBM Deutschland GmbH, Düsseldorf

Kosten: Für DNUG-Mitglieder kostenlos, andere Interessierte zahlen 149,00 EUR.

Weitere Informationen zur Veranstaltung und Link zur Anmeldung hier.
Die Teilnehmerzahl ist auf 50 Personen begrenzt.

Der Beitrag DNUG-Fachgruppentag: Infrastruktur- und Development-News von der Connect [Fachgruppe Development] erschien zuerst auf DNUG.

Es war einmal ein Lotus Notes Entwickler – Alles hat irgendwann ein Ende

21. Dezember 2016 Posted by Stephan Kopp

Ok, etwas überspitzt, aber dennoch wahr. Notes wird mich und Andere noch lange begleiten, aber bis zu meiner Rente schaffe ich es damit sicherlich nicht.

IBM hat meiner Meinung nach leider kein wirkliches Interesse die Plattform weiter zu entwickeln. So lange es geht, werden die bestehenden Kunden mit „Feature Packs“ noch bei der Stange gehalten, aber mehr nicht. Auch IBM Verse on premise wird daran nichts ändern. Deshalb sollte sich jeder über die Zeit danach Gedanken zu machen.

Wohin mit den ganzen Applikationen? Wirklich alles neu entwickeln? Alles nach Sharepoint oder sonst wohin „migrieren“? Ein solches Projekt ist ein Monster, das kaum jemand angehen und schon garnicht bezahlen möchte.

Ich bin kein Fan des „R.I.P. and Replace“ Ansatzes, den viele bevorzugen. Bei einfachen Applikationen und irgendwelchen Standard Anwendungsfällen mag soetwas machbar und sinnvoll sein. Wir sollten uns aber bei komplexen Applikationen eher ganz gezielt diese zwei Fragen stellen:

  1. Was können wir neu entwickeln um einen Mehrwert für die jeweilige Anwendung zu bieten?
  2. Wie können wir das mit „nicht Notes” Technologien machen und es an die bestehende Applikation anbinden?

In letzter Zeit habe ich mich sehr viel mit REST Schnittstellen und Webservices beschäftigt und auch ein wenig mit Vaadin und Spring Boot. Diese Technologien bieten im Grunde alles, was wir benötigen um beide Fragen zu beantworten.

Nachfolgend ein kleines Szenario, bei dem wir diesen Ansatz konkret umsetzen konnten. Es ging um eine bestehende Notes Applikation, die verwendet wird um andere Applikationen in ein Langzeit Archiv zu verschieben sobald sie nichtmehr verwendet werden. Hierfür sollte ein Webinterface entwickelt werden.

  • Wir benötigen ein Browser Interface, aber der Entwickler (ich) hat kein Händchen für HTML und CSS:  Vaadin
  • Ein Application Server jenseits von Domino ist nicht vorhanden und auch nicht erwünscht: Spring Boot
  • Bestehende Daten und Funktionen aus Notes Applikationen sollen eingebunden werden: REST API oder Webservices

Entstanden ist ein recht ansehnliches Webinterface, das Daten aus einer Notes Applikation darstellt und auch Funktionalitäten aus dieser Applikation ansteuern kann. Hierzu wurden einige bestehende Funktionen als Webservices zur Verfügung gestellt und eingebunden.

archiving-selfservice-01 archiving-selfservice-02

Dieser Ansatz gefällt mir persönlich am besten und zwar aus folgenden Gründen:

  1. Der Aufwand und damit die Kosten sind überschaubar.
  2. Die Anwender haben sofort etwas davon, da wir uns zunächst auf neue Funktionen konzentrieren und nicht erst langwierig das nachbauen müssen, was eh schon vorhanden ist.
  3. Langfristig wird sicher auch irgendwann die Notes Applikation abgelöst, aber vorerst kann man seine Investition schützen und muss nicht bei Null anfangen.
  4. Sind nach und nach immer mehr Funktionen aus Notes hinaus gewandert, kann irgendwann auch der Data Store z.B. auf eine Mongo DB, Couch DB oder was auch immer umgestellt werden.
  5. Das Knowhow der eigenen Entwickler, Admins oder Partner entwickelt sich weiter.

Ich will damit nicht sagen, dass wir alle Notes Applikation in diesem Stil migrieren sollten. Es ist nur ein Beispiel, das in unserem Fall gut funktioniert hat. In anderen Fällen machen andere Technologien vielleicht mehr Sinn. Falls eine Application Server Infrastruktur vorhanden ist, kann diese auch mit verwendet werden und man kann auf Spring Boot verzichten.

Was ich sagen will ist, dass ich jedem Notes Entwickler sehr empfehle sich aktiv in den Entscheidungsprozess einzubringen, was zukünftig mit den Notes Applikationen geschehen soll. Ansonsten wird diese Entscheidung woanders getroffen und oft landen dann mit dem Produkt auch die zugehörigen Personen auf dem Abstellgleis und das wollen wir ja alle nicht.


Filed under: Development, IBM Notes/Domino, Vaadin

Domino Gruppen Management mit Hilfe von Webservices und einer Vaadin Applikation

11. September 2016 Posted by Stephan Kopp

Letzte Woche habe ich geschrieben, dass ich mich mit dem Vaadin Framework ein wenig auseinandersetzen wollte. Mittlerweile bin ich schon so weit, dass ich meine erste Applikation für einen Kunden beinahe fertig habe. Das war nur eine kleine Applikation, die einige Daten aus einer Domino Applikation darstellt und einen Status per Webservice wieder zurück in die Applikation schreiben kann. Das war nichts großartiges, hat mir aber Gelegenheit gegeben, mich mit der Materie näher zu befassen. Das Ergebnis hat mich überzeugt, sodass wir auch gleich die nächste Anforderung über diesen Weg umsetzen werden.

Das Ziel

Wir arbeiten für einen Kunden, der momentan weg von Notes migriert (wie so viele). Da eine komplette Abschaltung jedoch vermutlich noch Jahre oder Jahrzehnte dauern wird, benötigt der Kunde eine Möglichkeit, die bislang vorhandene Lösung um Gruppen im Domino Adressbuch zu verwalten, durch eine Self Service Web Applikation zu ersetzen.

Die Idee

Um möglichst flexibel für zukünftige Szenarien zu sein, wollten wir die Applikation Zweigeteilt implementieren. Der erste Teil besteht aus einer Domino Applikation, die die eigentliche Verwaltung der Gruppen übernimmt. Also das eigentliche ändern der Gruppen im Adressbuch, Validierung, Rechte Verwaltung, etc. Diese Funktionalität soll per Webservice zur Verfügung gestellt werden um sie aus externen Systemen komfortabel bedienen zu können. Die Schnittstelle soll dabei aber einfach genug sein, um sie verwenden zu können, ohne zu viel Know-How über das Domino Backend haben zu müssen. Es sollen also z.B. automatisch verschachtelte Gruppen erzeugt werden, wenn wir an irgendwelche Grenzen laufen, ohne dass ich selbst an so etwas denken muss. Ebenso sollten die Gruppen Mitglieder anhand ihrer SMTP Adresse verwaltet werden können, ohne dass der Vollhierarchische Notes Name bekannt sein muss.

Für diese Schnittstelle entwickeln wir dann auch ein unabhängiges Web Frontend, um die Gruppen Verwaltung komplett in einem Browser vornehmen zu können. Hierfür verwenden wir eine Standalone Vaadin Applikation. Die Vaadin Applikation könnte man auch als OSGi Plugin auf den Domino Server installieren, aber die eigenständige Variante befreit uns von jeglicher Abhängigkeit von Server Versionen, Zugriffsrechten oder ähnlichem. Die Authentifizierung wird direkt gegen das Active Directory gemacht, da zukünftig nichtmehr jeder Mitarbeiter auch automatisch einen Notes Account erhalten wird. Die Funktionalität der Gruppenverwaltung (primär für Applikationen) muß aber jedem zur Verfügung stehen.

Ein ähnliches Konzept haben wir für unseren User Manager verwendet und der hat sich schon bei vielen Kunden bewährt.

Vorteile

Die MVC (Model View Controller) ähnliche Trennung von Funktion und Interface bietet einige Vorteile. Zukünftig könnte die Gruppenverwaltung auch über weitere Prozesse oder Workflow Systeme angesprochen werden, da wir über standardisierte Webservice Schnittstellen kommunizieren. Ebenso könnte das Web Frontend weitere Aufgaben übernehmen, in dem wir dort weitere Schnittstellen zur Verwaltung weiterer Systeme integrieren.

Die Umsetzung

Ich kann hier leider nicht die ganze Applikation veröffentlichen, werde aber versuchen im Verlauf der nächsten Tage/Wochen den Fortschritt, die Erfahrungen und einige Code Beispiele zu posten.

Domino Gruppen Management mit Hilfe von Webservices und einer Vaadin Applikation

11. September 2016 Posted by Stephan Kopp

Letzte Woche habe ich geschrieben, dass ich mich mit dem Vaadin Framework ein wenig auseinandersetzen wollte. Mittlerweile bin ich schon so weit, dass ich meine erste Applikation für einen Kunden beinahe fertig habe. Das war nur eine kleine Applikation, die einige Daten aus einer Domino Applikation darstellt und einen Status per Webservice wieder zurück in die Applikation schreiben kann. Das war nichts großartiges, hat mir aber Gelegenheit gegeben, mich mit der Materie näher zu befassen. Das Ergebnis hat mich überzeugt, sodass wir auch gleich die nächste Anforderung über diesen Weg umsetzen werden.


Das Ziel

Wir arbeiten für einen Kunden, der momentan weg von Notes migriert (wie so viele). Da eine komplette Abschaltung jedoch vermutlich noch Jahre oder Jahrzehnte dauern wird, benötigt der Kunde eine Möglichkeit, die bislang vorhandene Lösung um Gruppen im Domino Adressbuch zu verwalten, durch eine Self Service Web Applikation zu ersetzen.

Die Idee

Um möglichst flexibel für zukünftige Szenarien zu sein, wollten wir die Applikation Zweigeteilt implementieren. Der erste Teil besteht aus einer Domino Applikation, die die eigentliche Verwaltung der Gruppen übernimmt. Also das eigentliche ändern der Gruppen im Adressbuch, Validierung, Rechte Verwaltung, etc. Diese Funktionalität soll per Webservice zur Verfügung gestellt werden um sie aus externen Systemen komfortabel bedienen zu können. Die Schnittstelle soll dabei aber einfach genug sein, um sie verwenden zu können, ohne zu viel Know-How über das Domino Backend haben zu müssen. Es sollen also z.B. automatisch verschachtelte Gruppen erzeugt werden, wenn wir an irgendwelche Grenzen laufen, ohne dass ich selbst an so etwas denken muss. Ebenso sollten die Gruppen Mitglieder anhand ihrer SMTP Adresse verwaltet werden können, ohne dass der Vollhierarchische Notes Name bekannt sein muss.

Für diese Schnittstelle entwickeln wir dann auch ein unabhängiges Web Frontend, um die Gruppen Verwaltung komplett in einem Browser vornehmen zu können. Hierfür verwenden wir eine Standalone Vaadin Applikation. Die Vaadin Applikation könnte man auch als OSGi Plugin auf den Domino Server installieren, aber die eigenständige Variante befreit uns von jeglicher Abhängigkeit von Server Versionen, Zugriffsrechten oder ähnlichem. Die Authentifizierung wird direkt gegen das Active Directory gemacht, da zukünftig nichtmehr jeder Mitarbeiter auch automatisch einen Notes Account erhalten wird. Die Funktionalität der Gruppenverwaltung (primär für Applikationen) muß aber jedem zur Verfügung stehen.

Ein ähnliches Konzept haben wir für unseren User Manager verwendet und der hat sich schon bei vielen Kunden bewährt.

Vorteile

Die MVC (Model View Controller) ähnliche Trennung von Funktion und Interface bietet einige Vorteile. Zukünftig könnte die Gruppenverwaltung auch über weitere Prozesse oder Workflow Systeme angesprochen werden, da wir über standardisierte Webservice Schnittstellen kommunizieren. Ebenso könnte das Web Frontend weitere Aufgaben übernehmen, in dem wir dort weitere Schnittstellen zur Verwaltung weiterer Systeme integrieren.

Die Umsetzung

Ich kann hier leider nicht die ganze Applikation veröffentlichen, werde aber versuchen im Verlauf der nächsten Tage/Wochen den Fortschritt, die Erfahrungen und einige Code Beispiele zu posten.


Filed under: Development, IBM Notes/Domino, Vaadin

Auf der Suche nach Alternativen: Vaadin + Spring Boot

4. September 2016 Posted by Stephan Kopp

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.


Filed under: Development, IBM Notes/Domino

Auf der Suche nach Alternativen: Vaadin + Spring Boot

4. September 2016 Posted by Stephan Kopp

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.

Bug: createViewNavFromCategory does not return the correct category

10. August 2016 Posted by Ikuru Otomo

 

The createViewNavFromCategory method in the NotesView class has the following bug:

if the user has no rights to read all documents in the category you specified,
this method does NOT return an empty view navigator but a navigator FOR ALL SUBSEQUENT CATEGORIES IN THE VIEW.


Example:

You have a categorized view by company names.
Some documents in this view has a reader field, and you are not authorized to see the documents in the category "ITWU".
The view will look like this:

 

 

Now, you write the following Java code:

Database db = DominoUtils.getCurrentDatabase();
View view = db.getView("myview");
ViewNavigator nav = view.createViewNavFromCategory( "ITWU" );

You probably suppose to get an empty view navigator but that's where you are wrong;
the view navigator is for all entries in the categories Microsoft and SAP

This phenomenon does not happen in the getAllEntriesByKey method.


Workaround:

Check the first entry in the view navigator again if you have the correct category.
Attention: if the column is a multi-value field, you have to check it too.

ViewEntry entry = nav.getFirst();
if( entry != null )
{
    if( !"ITWU".equals( entry.getColumnValues().get(0).toString() ) )
    {
        System.out.println("not found");
        return;
    }
}

 

Bug: createViewNavFromCategory does not return the correct category

10. August 2016 Posted by Ikuru Otomo

 

The createViewNavFromCategory method in the NotesView class has the following bug:

if the user has no rights to read all documents in the category you specified,
this method does NOT return an empty view navigator but a navigator FOR ALL SUBSEQUENT CATEGORIES IN THE VIEW.


Example:

You have a categorized view by company names.
Some documents in this view has a reader field, and you are not authorized to see the documents in the category "ITWU".
The view will look like this:

 

 

Now, you write the following Java code:

Database db = DominoUtils.getCurrentDatabase();
View view = db.getView("myview");
ViewNavigator nav = view.createViewNavFromCategory( "ITWU" );

You probably suppose to get an empty view navigator but that's where you are wrong;
the view navigator is for all entries in the categories Microsoft and SAP

This phenomenon does not happen in the getAllEntriesByKey method.


Workaround:

Check the first entry in the view navigator again if you have the correct category.
Attention: if the column is a multi-value field, you have to check it too.

ViewEntry entry = nav.getFirst();
if( entry != null )
{
    if( !"ITWU".equals( entry.getColumnValues().get(0).toString() ) )
    {
        System.out.println("not found");
        return;
    }
}

 

Applikations-Modernisierung als preiswerte Alternative

3. Mai 2016 Posted by Stephan Kopp

“Notes-Applikationen funktionieren dank guter Programmierung und individueller Entwicklung in den Unternehmen auch nach 15 Jahren noch. Daher herrschte in vielen IT-Abteilungen lange Zeit kein Druck, die Anwendungen zu überarbeiten oder neu zu entwickeln.

Dementsprechend sehen viele davon heute aus: Veraltet. Auch wenn sie nach all den Jahren noch einwandfrei funktionieren, fordern die Anwender heute zu recht moderne Applikationen mit erweitertem Funktionsumfang und frischem Look and Feel. Hohe Neuinvestitionen sind deshalb aber nicht unbedingt nötig, denn es gibt in vielen Fällen eine kostengünstige Alternative: Applikations-Modernisierung.”

weiter lesen…


Filed under: Development, IBM Notes/Domino