XPages Die neue Web Entwicklung für Lotus Domino Jens Winkelmann -Senior Software Engineer- Die Domino Web Entwicklung ist aus dem Dornröschenschlaf erwacht Bis Domino 5 war Domino eine fortschrittliche Web Entwicklungsumgebung View/Outline /Actionbar Applets HTML Attribute in Design Elementen Pass-Thru HTML … Mit Domino 8.5 bekommt die Web Entwicklung einen neuen Schub Wo kommen die XPages her? Zumindest für die WEB Welt sollte WebSphere Domino beerben Proprietäre Notes Web Anwendungen JavaEE Anwendungen (offene Standards) Lotus Domino WebSphere Application Server (WAS) IBM Workplace Wie Wiemachen machenwir wirMail, Mail,Contacts, Contacts,Calendering Calendering IBM Workplace sollte das Notes Mail, Contacts und Calendering beerben IBM Workplace Messaging IBM Workplace Documents IBM Workplace Team collaboration IBM Workplace Web Content Management IBM Workplace Collaborative Learning … Mail, Contacts, Calendering IBM Workplace Lotus Domino WebSphere Application Server (WAS) IBM Workplace Designer Wie Wiemachen machenwir wir„einfache“ „einfache“ Web Entwicklung Web Entwicklung IBM Workplace Designer sollte den Domino Designer beerben Für einfache Anwendungen ohne Massendaten Für schnelles und einfaches ‚Rapid Prototyping‘ … Domino Designer IBM Workplace Designer Mail, Contacts, Calendering IBM Workplace Lotus Domino WebSphere Application Server (WAS) Entwicklungstool Lotusphere 2006 Die IBM Entwicklungs-Welt zur Lotusphere 2006 Notes Client Anwendungen -> Domino Designer Einfache Web Anwendungen -> Workplace Designer Anspruchsvolle Web Anwendungen ->Rational Application Developer … Jetzt: Lotus Forms Jetzt: WebSphere Portlet Factory IBM Workplace Designer Geschlossenes System um (XML) Dokumenten basierende Anwendungen zu erstellen (ähnlich Notes) Kein Tool um allgemeine Portlets zu erstellen Unterstützte nur Browser Für Script Entwickler: Entwickler Visual Basic developer Lotus Domino application designer Java Script, XPath, @Function Sprache Systemkomponenten Runtime Engine auf dem WebSphere Server Entwicklungstool = Workplace Designer Grobe Architektur Workplace Designer Grobe Architektur des Workplace Designers (Link XPage Architektur) Anwendungdaten Relationale Datenbank (RDB) Interpretiert Runtime Engine XMLXML-Beschreibung der Anwendung (Java Server Faces) WebSphere (WAS) IBM Workplace Designer Workplace Designer - Form Editor UI Controls können auf Foms platziert werden Ansicht mit View Control Properties zum formatieren und programmieren Workplace Designer - Schema Editor XML Dokumenttyp wird im Schema Editor definiert Visual Editor / Text Editor Kann automatisch beim Erstellen einer Maske generiert werden Lotus (Component) Designer Mit der Aufgabe von IBM Workplace wurde aus dem Workplace Designer der Lotus (Component) Designer Technisch keine Änderung Marketing Technisch dem WebShere Portal zugeordnet Lotus (Component (Component) Component) Designer Domino Designer IBM Workplace Designer Mail, Contacts, Calendering IBM Workplace Lotus Domino WebSphere Application Server (WAS) X Pages X Pages sind Bestandteil von Notes 8.5 Neues Design Element im Domino Designer 8.5 Runtime Engine ist Bestandteil von Domino Server 8.5 X Pages Domino Designer 8.5 + IBM Component Designer Mail, Contacts, Calendering Lotus Domino 8.5 Runtime WebSphere Application Server (WAS) Grobe Architektur XPages Grobe Architektur der XPages (Link Workplace Designer Architektur) Dokumente Notes Datenbank (NSF) Interpretiert Runtime Engine als Server Task X Pages (Java Server Faces) Domino 8.5 Server Notes Domino Designer 8.5 XPages Architektur Runtime Engine als neuer Server Task ist Bestandteil der Domino HTTP Engine Keine zusätzlichen Installationen Kann lokal als Localhost laufen (Preview im Web Browser) Eine XPage ist technisch eine (erweiterte) Java Server Face Anwendung Anscheinend nicht möglich eine bestehende XPage Anwendung als Java Server Face Anwendung weiterzuentwickeln Entwicklung erfolgt im Domino Designer 8.5 Domino Designer 8.5 (I) Basiert jetzt wie Notes Client auf Eclipse Eine bereits vorhandene separate Eclipse Entwicklungsumgebung kann nicht mit dem Domino Designer 8.5 zusammengelegt werden Betriebssystem: Aktuell nur Windows Eclipse betrachtet eine NSF Datenbank via Virtual File System Jede Datenbank ist für Eclipse ein Projekt Eclipse Basisfunktionalität können genutzt werden Suchen / Ersetzen / Vergleichen Dieses basieren jedoch auf DXL (Domino XML) Vorsicht: Kein Full DXL roundround-trip of DESIGN ELEMENTS -> Änderungen können zu Verlusten führen Beispiel: Designelemente vergleichen Design Elemente können auf DXL Ebene verglichen werden Domino Designer 8.5 (II) Neue Editoren JavaScript Editor Code Completion, Outline Navigation, Up-to-date Syntax checking… HTML, CSS, XML, WSDL... Editoren im Bau (aktuell werden noch alte Editoren ausgeliefert) Neuer Lotus Script Editor Neuer Java Editor WorkingWorking-Sets um zu bearbeitende Datenbanken zu organisieren Property Panel anstatt Infobox Einfacheres Kopieren und Einfügen Application Properties haben einen eigenen Editor Domino Designer 8.5 (III) Allgemeine Web Verbesserungen JavaScript Control zum Bearbeiten von Rich Text (DoJo 1.1.1 control - “dijit.Editor”) Verbesserte HTML Generierung Unterstützung von Themes Dojo Control Neue Design Elemente für XPages XPages – Gestaltungselement für Eingabemasken und Ansichten Custom Controls - Ähnlich Notes Teilmasken Server Side Script Libraries Für JavaScript Code, der auf dem Server läuft XPage Editor (I) WYSIWYG (what you see is what you get) Editor XPage Editor (II) XML Quellcode kann auch direkt bearbeitet werden Beispiel XPage Kontaktanwendung Beispiel Vorhande Notes Client Anwendung mit XPages Web enablen Keine Programmierung – Drag & Drop + Simple Actions Einfaches Beispiel: (Mehr Infos) XPage Programmierung Kein Java KnowHow notwendig Simple Actions für allgemeine Operationen Haupt Programmiersprache ist JavaScript Client Side Server Side @Function größtenteils nachgebildet @UserName @DBLookUp … Domino Klassenmodell steht zur Verfügung JavaScript Beispiel Beispiel: Wert eines Computed Fields wird mit JavaScript berechnet Der Name des Benutzer wird per @Function berechnet Die aktuelle Zeit wird einem NotesDateTime Objekt berechnet Validierung Validierung von Eingabedaten Automatische Validierung des Datentyps (gültiges Datum) Einfache Standard Validierung Pflichtfelder Datenbereich (Minimale/Maximale Länge) … Fortgeschrittene Validierung Programmieren von JavaScript Ausdrücken Ort der Validierung in Datenbank Eigenschaften einstellbar Im Browser via Messagebox Auf dem Server werden Fehler in Error Controls geschrieben Einfaches Beispiel: (Mehr Infos) XPage Merkmale (I) Fast alle Eigenschaften können per JavaScript berechnet werden Labels Column Titles Style Visibility (Keine Hide Formula sondern Visible Formula) Automatische AJAX Unterstützung Update können auf bestimmte Elemente beschränkt werden Eingebautes transparentes Type Ahead, Paging in Ansichten XPage Merkmale (II) Standard J2EE Localization Sprachabhängigen Strings können automatisch in Properties Files ausgelagert werden (Mehr Info) Es wurden nur XPages und Custom Controls unterstützt Für Strings in JavaScript Code können eigene Properties Files erstellt und programmatisch genutzt werden Volle Unterstützung von CSS und Themes XPage Merkmale (III) Man kann alte Notes Web Anwendung mit XPages erweitern Classic Web Ansichten können XPages aufrufen XPages können alte Classic Web Masken aufrufen Datenbasis sind Notes NSF Datenbank Vorteil: Notes Infrastruktur Sicherheit Replikation Einfaches Deployment Nachteil: 64 GByte Grenze bleibt Keine Lösung für Massendaten DAOS (Domino Attachment und Object Service) verkleinert das Problem Weitere Datenquellen geplant Custom Controls Wieder verwendbare Komponenten (Ähnlich Subform) Es können Parameter übergeben werden Editable Areas erlauben die Anpassung des Controls in der umgebenden XPage Ein Custom Control kann mehrfach in eine XPage eingebettet werden Keine Performance Einbußen wie bei Subforms Einfaches Beispiel: (Mehr Infos) Trennung zwischen Presentation und Data Layer Notes Maske Maske enthält alle Daten eines Dokumente und speichert alle Daten eines Dokuments XPage Datenquellen können frei konfiguriert werden Aktuelle nur Notes Dokumente Zukunft auch weitere Quellen (Relationale Datenbanken) Mehrere Datenquellen pro XPage Eine XPage kann Daten aus mehreren Dokumenten heranziehen Ein View Control kann die Daten beliebig kombinieren Ein Notes View kann pro Zeile nur die Daten des jeweiligen Dokuments anzeigen – Mit XPages kann man Relationen abbilden Einfaches Beispiel: (Mehr Infos) Was bringt die Zukunft? Weitere Daten Quellen für XPages XPages im Notes Client Werden aktuell nicht unterstützt IBM evaluiert technische Realisierung/aber nicht unwahrscheinlich Anwendungsentwicklung mit XPages für BlackBerry Fazit XPages ist eine viel versprechende Innovation Web 2.0 Anwendungen auf Basis von Lotus Domino Verspricht kostengünstiges ‚Rapid Prototyping‘ nun auch für Web Anwendungen Relativ kurze Entwicklungszeiten Relativ überschaubares Entwickler KnowHow KnowHow und Erfahrung muss jedoch aufgebaut werden Sofortiges Durchstarten von der Notes Client Entwicklung zur XPage Entwicklung ist nicht möglich Mischung von klassischen Notes Web Anwendungen und XPage Anwendungen ist möglich Große Bandbreite Anfänger können vollständig im Designer entwickeln Fortgeschritte können Java Code aufrufen und den Source Code direkt bearbeiten Weiteres Mehr Infos XPagesWiki Beispiele TaskJam von Matthew White and Bruce Elgort (Macher von IdeaJam) Lotes XPage basiertes Wiki erhältlich auf OpenNTF Fragen Antworten Vielen Dank für Ihre Aufmerksamkeit Weitere Informationen erhalten Sie auf unserer Homepage unter PAVONE AG Technologiepark 9 33100 Paderborn E-Mail: [email protected] Tel.: +49 52 51 / 31 02-0 Fax: +49 52 51 / 31 02-99 http://www.pavone.de http://www.pavone.com