®
IBM Software Group
Domino XPages
Technology Introduction
Philippe Riand – XPages Architect
IBM Confidential
IBM Software Group | Lotus software
XPages Technology
Brings State-of-the-Art Web technology to Domino 8.5
Uses JSF as the runtime fundation, but doesn't require JSF/Java skills
Extensive palette of UI controls
Pre-built Web 2.0 functionality (Ajax...)
Allows and enforces reutilization through custom controls
Decreases the time for writing Web Applications
Brand new web applications
Modernizing existing web applications or “Web-ify” Notes applications
Solves problems expressed by the Domino community
Known limitations are addressed
• UI/Data separation, HTML generation control, Server state,
Localization, Extensibility…
*
IBM Software Group | Lotus software
Designed for Web 2.0
Advanced set of controls
Web pager, Section, Tabbed panel...
Advanced View layouts using repeated sections
Native support for Ajax behaviors
Partial refresh, available to every event
Typeahead
Comes with the Dojo JavaScript library
Natively leverages Dojo widgets (RichText, Date/Time picker...)
Gives easy access to Dojo modules & widgets
*
IBM Software Group | Lotus software
Enables Enterprise Scale Applications
Extensible architecture
Custom controls
An XPage can call any Java code/library
JSF config files can be used to provide custom options
Extended data access capability
Applications can access data located in multiple NSF databases
Multiple documents/views can be displayed on the same page
Built-in localization and internationalization support
Support String localization & dedicated pages per locale
Automatic support for user timezone
*
IBM Software Group | Lotus software
New Design Elements within Designer
XPages
An XPage is the UI design element used to render web pages
Based on an extended version of Java Server Faces, adapted to Script
developers
Custom controls
A custom control is a reusable piece of UI created by assembling existing controls/
behaviors within an XPage
Appear in the control palette similarly to native controls
Parameterizable through custom properties
No Java nor other low level technology is required to create a custom control
Server-side JavaScript libraries
JavaScript is the preferred scripting language for XPages
Themes
A theme defines the look & feel of the application.
*
IBM Software Group | Lotus software
Leverages Web/Domino developers skills
JavaScript is used as the main scripting language
JavaScript used on the client and on the server
Simple actions are also provided for common tasks
Leverages the existing design elements (Form, Views,
Agents...)
Forms carry the document schema (data definition) and some business
logic (computed fields...)
Views used to query the Domino store
Agents can be called using the back-end API
Leverages and exposes the back-end API
JavaScript accessors on top of the Java back-end API
JavaScript has been extended to support @Functions()
*
IBM Software Group | Lotus software
Complete Control of the Rendering
Look & Feel is driven uniquely by CSS
Full support of CSS classes or inline styles
Uses CSS file resources
Support Themes for skinning an application
Predefined styles for controls
A theme can be defined locally, in an NSF, or globally
2 themes provided out of the box
HTML tags/attributes can be embedded within XPages
*
IBM Software Group | Lotus software
Domino Integration
Fully integrated within the Domino server
Installed as part of the Domino HTTP Server
Automatically starts with the HTTP server
No deployment required – Create a design element within an NSF and
save it
Leverages the Domino security model
Data security done through the back-end API, using the web user
credentials
Code execution controlled based on developer signatures
Uses a custom Servlet Container
Leverages the HTTP server configuration
• Authentication, request dispatching...
*
IBM Software Group | Lotus software
Performance
Highly tuned JSF runtime
The runtime has been highly tuned to optimize both the CPU cycles
and the memory consumption
XPages are compiled into efficient Java code
Maximizes the network bandwidth and application
responsiveness
HTML content is “Gzipped” on the fly if the browser supports it
Static content (JavaScript libraries, CSS...) is shrinked and pre-
compressed (gzip)
Uses HTTP expires header cache for resources
*