Transcript
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