May 04

Was ist XPages?

Note: this post has been migrated from another blog. Some links may be broken.

XPages sind bei uns seit Monaten ein wichtiges Thema. Wir haben erste Aufträge in diesem Bereich und bauen selbst auch neue Produkte damit.

Letztens auf unserer Teambesprechung haben Kollegen gefragt: “Was ist eigentlich XPages”? Und mir wurde bewusst, dass das eine Frage ist die im Moment noch viele Leute umtreibt. Überall in der Lotus Notes/Domino Szene liest und hört man von XPages. Viele haben zumindest mitbekommen, dass es irgendwas mit Web zu tun hat. Aber eine schnelle Suche nach “Was ist XPages” im deutschen Web brachte keine vernünftige Antwort. Daher gehe ich davon aus dass hier noch einige Unsicherheiten bestehen und leiste mit diesem Blog Eintrag meinen Beitrag zur Aufklärung.

Executive Summary

XPages ist eine neue Technologie in Domino 8.5 und höher zur raschen Entwicklung von modernen, leistungsfähigen Web Anwendungen.

Die bisherigen Mechanismen in Lotus Domino zur Entwicklung von Browser Anwendungen genügten den aktuellen Anforderungen (Stichwort “Web 2.0”) nicht mehr, daher hat Lotus Domino im Bereich des Web Applikationsservers an Bedeutung verloren. Durch XPages ist Lotus Domino nun auch in diesem Bereich wieder absolut konkurrenzfähig und als Web Applikationsserver ernst zu nehmen.

XPages ermöglichen dem Entwickler ein iteratives Vorgehen durch die extrem schnelle Entwicklung von gut aussehenden Prototypen, die dann nach und nach mit Leben gefüllt werden. Auch wenn im Hintergrund noch einige klassische Notes Elemente wie z.B. Ansichten verwendet werden, ist kein tiefgehendes Wissen in diesem Bereich notwendig um produktiv mit XPages zu entwickeln.

Alle Anforderungen an moderne “Web 2.0” Anforderungen (z.B. Aktualisierung von einzelnen Bereichen via Ajax) werden unterstützt.

Detaillierung

XPages ist ein neues Design Element in Lotus Notes/Domino Anwendungen und bestehen neben Elementen für die Lotus Notes Client Programmierung. Bestehende Lotus Notes Anwendungen können also mit wenig Aufwand um eine XPages / Web Version erweitert werden, ohne eine neue Datenbank erstellen zu müssen.

Eine XPage besteht im Backend aus XML Code, der sich in weiten Teilen an HTML orientiert. Bestehende Kenntnisse in HTML können also sofort genutzt werden. Der XPages XML Code beschreibt Komponenten und Logik. Der Lotus Domino Server erzeugt daraus zur Laufzeit für den Browser verständliches HTML und Javascript.

Der Entwickler arbeitet primär in einem visuellen Designer, in dem fertige Komponenten (z.B. Eingabefelder, Labels, Ansichten, Tabbed Tables…) auf die XPage gezogen und verdrahtet werden. Bei Bedarf kann jederzeit in eine Quellcode-Ansicht gewechselt werden, wo der XML Code direkt dargestellt und manipuliert werden kann. Die Design- und Quellcode Ansichten sind dabei immer synchron.

Eine Reihe von fertigen Komponenten und Logik-Elementen erleichtern dem Entwickler dabei die Arbeit wesentlich und erlaubt den schnellen Bau von Prototypen. Durch die Quellcode Ansicht ist der Entwickler aber NICHT auf die fertigen Komponenten angewiesen sondern kann auch eigenen, ganz neuen Code einbringen um Dinge abzubilden, die mit den mitgelieferten Komponenten nicht realisiert werden können.

Einzelne Bereiche einer XPage können als eigene Komponenten ausgegliedert und beliebig oft wiederverwendet werden. Gemeinsam genutzter Code kann also zwischen XPages geteilt werden.

Business Logik wird durch Client- oder Server-Side Javascript implementiert. Bestehende Business Logik kann durch die Ansteuerung von Lotus Notes Agenten weiter verwendet werden.

Technologie

Im Backend arbeitet die bewährte Technologie der Java Server Faces, im Client (also im Browser) wird das bekannte Javascript Framework “Dojo” verwendet. IBM hat hier also keine eigenen, geschlossenen Technologien entwickelt sondern verwendet etablierte, vorhandene und bewährte Technik.

Dabei ist die Performance von XPages nach unseren bisherigen Tests sehr gut, selbst bei komplexen Datenbankoperationen.

Kompatibilität

Die mitgelieferten XPages/Dojo Komponenten sind zu Internet Explorer 6 und 7, Mozilla (Firefox) und Webkit Browsern (Safari) kompatible. Internet Explorer 8 wird ab Domino 8.5.1 unterstützt.

Vergleich mit der Entwicklung für den Lotus Notes Client

Das XPages Programmiermodell löst eine Vielzahl von Schwierigkeiten in der bisherigen Notes Client Entwicklung und hebt Grenzen auf. Einige populäre Beispiele:

  • “Joins” innerhalb von Ansichten sind nun möglich (also die Vermengung von Daten aus verschiedenen Ansichten, auch über Datenbankgrenzen hinweg).
  • Alle Labels sind dynamisch, auch Spaltenköpfe oder Button-Labels.
  • Ansichten können programmatisch im Volltext durchsucht werden und reduzieren sich in der UI entsprechend.
  • Die Verwendung von Daten und Ressourcen über Datenbankgrenzen hinweg ist problemlos möglich (z.B. die Einbettung von mehreren Ansichten aus mehreren Datenbanken).
  • Eine XPage kann Daten aus verschiedenen Dokumenten (“Quellen”) visualisieren und auch bearbeitbar machen.


Dies ist umso interessanter, als dass XPages zukünftig (vermutlich ab Lotus Notes/Domino 8.5.1) auch im Lotus Notes Client verfügbar sind.

Nötige Kenntnisse für Entwickler

Entwickler sollten über generelle Erfahrung im Web Umfeld verfügen. Die folgenden Technologien sollten beherrscht werden:

  • HTML
  • CSS
  • Javascript und Javascript Frameworks wie Prototype, jQuery oder Dojo

Bewertung

Die Verfügbarkeit der XPages in Lotus Domino 8.5 katapultiert Lotus Domino zurück in die Liga der Web Applikationsserver. Nach unseren Erfahren funktionieren die XPages in Lotus Domino 8.5 bereits sehr gut und stabil und sind produktiv einsetzbar.

Jedes Unternehmen, das Lotus Domino im Einsatz hat und plant, Web Anwendungen für Inter- oder Intranet zu entwickeln, sollte so schnell wie möglich auf Domino 8.5 umsteigen und mit XPages entwickeln. Selbst laufende Projekte, in denen klassische Domino Web Programmierung verwendet wird, sollten überprüft werden. Oft wird es effizienter sein, die aktuelle Entwicklung zu stoppen und auf XPages umzusteigen. Der zeitliche Mehraufwand für den Umstieg kann durchaus durch die zeitliche Einsparung bei der XPage Entwicklung kompensiert werden.

Unternehmen, die Lotus Domino bisher nicht im Einsatz haben und planen, Web Anwendungen zu entwickeln sollten Lotus Domino 8.5 als mögliche Plattform evaluieren. Auch Entwickler, die bisher keinen Kontakt zu Lotus Domino hatten, lernen XPages Entwicklung sehr schnell und können effizient damit arbeiten.

Support, Kontakt und Beratung

Wir bieten Unterstützung für XPages Projekte an. Klicken Sie hier um uns anzurufen oder zu schreiben.


Apr 19

Goodbye iTunes, Hello Amazon MP3

Note: this post has been migrated from another blog. Some links may be broken.

I never liked iTunes because it’s way too limited for seriously managing a huge music collection and for making music on parties. But, I used iTunes now and then to buy music since there was no alternative in Germany yet.

But luckily, Amazon opened it’s MP3 store in Germany some weeks ago. And I just bought the new album from Depeche Mode there.

Here is my process before, as I was forced to use iTunes:

  • Open iTunes.
  • Buy music.
  • Music was downloaded as Apple AAC, so I had to convert it to MP3.
  • Find the converted MP3 files in the iTunes directory.
  • Move them to my music directory on the server into a “new” directory (so the original AAC files remain).
  • Open MediaMonkey, check tagging and let MediaMonkey sort the file into the proper directory.

And now, here is my process with Amazon MP3:

  • Navigate to Amazon MP3 store in the browser (which is always open, so I don’t need to open another program anymore).
  • Buy music.
  • Music is downloaded as MP3 and I opend the download directory directly from the Amazon MP3 downloader.
  • Move the MP3 to my music directory, let MediaMonkey sort it into a proper directory.

I don’t have to start a new program, I don’t have to convert the music to MP3 anymore. Much better!
So, as much as I like Apple hardware and software in general, I am very happy that I don’t need to use iTunes anymore.

BTW: Currently I’m using MediaMonkey in a Virtual Machine, but I plan to migrate to Songbird as soon as they can read ratings from MP3 files.


Mar 25

XPages: an input field in a repeat control – do we have a bug here?

Note: this post has been migrated from another blog. Some links may be broken.

If you are a developing in XPages, try this:

  • Create a repeat control based on some view.
  • Inside that repeat control, place some stuff (text, label… doesn’t matter) and an input field.
  • Give the input field some name and bind it to some field of some form.
  • Below the input field, also inside the repeat control, create a submit button.

I found the following: if for example the content of the repeat control displayes three times I have three input fields and three submit buttons. All input fields have unique IDs (generated by Domino, based on the name of the input field). So far, so good.

I enter “1” in the first, “2” in the seconds and “3” in the third field. In hit the submit button of the first field.

Result:

  • In the new document the field contains “3”, not “1”.
  • All fields on the XPage contains the value “3”.

Can someone confirm this? Or did someone something similar with success?


Mar 11

Respond to Bill’s Blog about blind faith in the ‘yellow bubble’ and the big elephant

Note: this post has been migrated from another blog. Some links may be broken.

I’m sure you already read Bill’s blog about him leaving IBM. If not, go and read it now.

I would like to add a thing or two to this.


First, I don’t like the term ‘Yellow Bubble’. It implies – just as Bill implies, too – that everyone making money with Lotus software is in a bubble completely seperated from the real world, without getting any notice about any other technology. And following IBMs way with blind faith whereever it may lead to.


From my perspective this is not true. We as company and I personally are working with Lotus Notes (and other Lotus software) for about ten years now. And we make money with it, we live from it. We went through all the bad Get-Rid-Of-Notes-And-Take-Workplace times and we are very happy about how Lotus Notes and Lotus software envolves at the moment.


But, we were never blind for other stuff. We know people doing Exchange stuff, and we talk every now and then with them about pro’s and con’s for Exchange. We know about Web 2.0 stuff, Flex, Silverlight and so on. We know about LAMP. We now what Salesforce does, we now what for example GMail or Zimbra do, or Oracle or SAP.


And we do criticize IBM. A lot. We do it with out local IBMlers in Germany, we do it in the design partner program and we do it sometimes in the public (read: in this blog).


And you know what? We are heard. Sure, IBM cannot fullfill all of our wishes, and no one would them expect to. But for example in the design partner program IBM is very eager to hear the opinion of business partners. And they are changing stuff because we (and other partners) say so.
During my journey with Composite Applications I got contact to many people in the IBM who all where kind and eager to help. And again, they are actually working on my issues.


Sure, we cannot influence the general strategic direction of Lotus software. But that’s not our business. We do business with Lotus software as long as we are pleased to do so. If sometimes we found that there is another technology doing all the things we can do with Lotus software, but better/faster/whatever, then we will choose it. As vendor of CRM, CMS and Workflow software we are bound to our ideas and concepts, not to the technology platform.


But the point – at least from our perspective – is: as of today, there is no better solution for the requirements we and our customers have than Lotus Notes. There are other tools doing a better job in certain areas, but there is no other software doing all the stuff Lotus Notes does in one single and very handy client and server.


Mar 11

Es ist schön, mit netten Kunden zusammenzuarbeiten :-)

Note: this post has been migrated from another blog. Some links may be broken.

Montag hatte ich bei einem Kunden via Fernwartung ein Update auf das neue YouAtNotes CRM 5 mit dem neuen Ticketsystem gemacht. Während ich telefonisch mit dem Kunden sprach musste ich was notieren und sagte “verdammt, jetzt schreibt mein Kugelschreiber nicht mehr…”.

Nun halte ich heute ein Päckchen vom Kunden in der Hand. Verwundert öffne ich es und heraus kommen – ein Stapel Post-Its und einige neue Kugelschreiber 🙂

Und das erinnert mich daran, dass bei unseren Kunden vowe’s Gesetz der konstanten Armleuchterquote nicht gilt: seit es YouAtNotes gibt haben wir viele, viele Kunden kennen gelernt. Und nahezu alle sind sehr nett und es macht Spaß, mit ihnen zusammenzuarbeiten. Ich persönlich kann mich an nur zwei Ausnahmen erinnern, bei denen die Mitarbeiter beim Kunden an sich nett, aber die Geschäftsführer schwierige Choleriker waren. Und das waren eher die Kunden vom Typ “Heuschrecke”, die ohnehin von Lieferant zu Lieferant wechseln 🙂


Mar 05

Entwicklercamp 2009 – Rückblick

Note: this post has been migrated from another blog. Some links may be broken.

Gestern ist das Entwicklercamp 2009 zu Ende gegangen. Ich war zusammen mit meinem Kollegen Stephan (Metsch) und unserem Partner Stephan (Holowaty) dort, ich selbst habe als Referent auch eine Hands-On Session über das OpenWebCMS gehalten.

Es war wieder eine exzellente Veranstaltung. Rudi, seine Frau und sein Team haben den Dreh mittlerweile wirklich raus und die ganze Organisation lief wie Bienchen. Sehr gute Referenten, interessiertes Publikum, super Essen, perfekte Betreuung.

Meine Session war total überbucht: 23 Anmeldungen bei 12 Plätzen 🙂 15 Leute hab ich untergebracht, dann haben wir uns gemeinsam das OpenWebCMS und sein Backend angeschaut und auch direkt damit gearbeitet. Von einfachen Dingen wie “wie bringe ich Dynamik in eine Vorlage” bis zur Anbindung von Agenten via Ajax und Einbindung von JavaScript Frameworks.

Und ich hab in den Sessions von anderen Referenten auch noch ein paar Dinge gelernt:

  • Andy Brunner hat sich durch die Erstellung von Server Tasks mit Java gebissen und eine hervorragende Session darüber abgeliefert. Ich hatte mit den Möglichkeiten auch schon gespielt, war mir aber bisher nicht sicher, wie stabil das alles ist… nun weiß ich, dass man eigene Java Server Tasks produktiv einsetzen kann und darf.
  • Bei Gregory Engels habe ich endlich mal auf einen Blick gesehen, wie man die Notes 8 Java Views für eigene Anwendungen nutzen kann, welche Möglichkeiten und welche Grenzen es gibt.
  • Bert Häßler hat sehr eindrucksvolle Dinge mit dynamisch geänderten Masken gemacht: er verwendet Eingaben vom Benutzer, um dann via DXL automatisch und im Hintergrund eine Maske zu verändern. Dann zeigt er das aktuell geöffnete Dokument mit dieser geänderten Maske an. Und er hat auch einen Weg gefunden, damit das ein Benutzer auch ohne Designer Rechte machen kann. Interessante Sache.
  • Maureen Leland, Ms. Domino Designer on Eclipse herself, hat die Keynote und andere Sessions gehalten. Sehr unterhaltsam, sehr interessant!
  • Ein weiterer Höhepunkt war die Session von Rocky “Mythbuster” Oliver, wo er mit diversen Mythen rund um Lotus Notes aufgeräumt hat. Herrlich vorgetragen und lehrreich.
  • Bei Karsten Lehmann und Tammo Riedinger habe ich gesehen, wie man eigene Java Programme nahtlos in Lotus Notes integrieren kann. Cool. Muss man aber schon gute Java und Eclipse Kenntnisse haben und sich durchbeissen können, da vieles nicht oder nur teilweise dokumentiert ist.
  • Und letztlich hab ich auch mal wieder mit Matthew Fyleman von Teamstudio diskutiert, wohin die Reise mit Teamstudio Ciao gehen sollte (und wohin sie gehen wird 🙂 ).

Und daneben gab es noch viele andere Sessions, die einen Notes Entwickler spürbar voran gebracht haben.

Stephan (Metsch) hat auf dem Camp viele Einblicke in XPages und Composite Applications bekommen, so dass er damit jetzt auch loslegen kann. Stephan (Holowaty) hat übrigens eine gut besuchte Session über Suchmaschinen-Optimierung gehalten – mit bestem Feedback der Teilnehmer.

Danke an Rudi, seine Frau und seinem Team für diese sehr schönen und lehrreichen drei Tage!

Und: der Termin für das Entwicklercamp 2010 steht schon, unbedingt nachschauen und vormerken. Wer eher Administrator ist, sollte unbedingt die Agenda für das Admincamp 2009 beobachten und sich den Termin vormerken!


Mar 01

Ich spreche auf dem Entwicklercamp 2009

Note: this post has been migrated from another blog. Some links may be broken.

Ich halte eine Hands-On Session über das OpenWebCMS auf dem Entwicklercamp 2009. In dieser Session werden wir gemeinsam mit dem OpenWebCMS eine kleine Website bauen und dort eine Reihe von grundlegenden Funktionen demonstrieren:

  • Automatische Navigation basierend auf den Inhalten.
  • Volltextsuche.
  • Verwendung von Vorlagen – Trennung von Layout und Inhalt.
  • Dynamische Elemente in Vorlagen.
  • Einbindung einer “Web 2.0” Javascript Library am Beispiel von jQuery
  • Verwendung von Ajax um dynamisch Daten von einem Agent nachzuladen.

Und Zwischendurch betrachten wir das Backend vom OpenWebCMS und lernen, wie man unter Domino ein performantes und skalierbares Web-CMS bauen kann.

Also: wer auf dem Entwicklercamp ist, sollte vorbeigucken und mit machen 🙂