XPages - Competence Site

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