XPages is HCL's web and mobile application development platform for applications built on top of the HCL Domino server.
XPages is a rapid web and mobile application development platform. It allows HCL Notes/Domino data to be displayed to browser clients across all platforms.
The programming model is based on standards and common web development skills like JavaScript, Ajax, the Dojo Toolkit, Server-side JavaScript, Java, JavaServer Faces and it leverages HCL Lotus Domino functionality like the document-oriented database.
Layout
For the user interface XPages focus on the web development standards HTML, CSS and JavaScript. This allows projecting XPages applications to web clients and mobile devices and leveraging the same development skills. Additionally themes can be used as an easier way to manage multiple CSSs. XPages comes with default themes, for example the OneUI theme.
Logic
For client side logic various JavaScript frameworks can be used. However XPages comes with the Dojo Toolkit and Dojo controls can be easily referenced in XPages applications. XPages also uses Dojo internally for certain functionality to make key features easier to use without having to write Dojo code. A special XPages JavaScript library contains further convenience functionality, for example for client side field validations.
UI Controls
In addition to client side logic Dojo can also be used for rich user interface widgets and charts.
Access to Backend Services
As any web application XPages applications can use REST services. XPages also provides easy mechanisms to bind data sources to UI controls so that for many scenarios no code needs to be written. Additionally XPages allows to declaratively only refresh parts of the page via Ajax when submitting data.
Backend Technology
The development of XPages applications is done using HCL Domino Designer. With Designer many key scenarios can be implemented declaratively and rapidly, for example to render a list of entries from a database. Additionally for the business logic both JavaScript and Java code can be written.
JavaServer Faces
XPages is based internally on JavaServer Faces, but developers of XPages aren't required have to have explicit JavaServer Faces skills. The sources of a XPages design element are declared in an XML format called XSP which is compiled into Java code during a build. At runtime this code generates and returns the HTML to various clients.
Tooling with Domino Designer
XPages applications are stored in NSF (Notes Storage Facility) files which are collections of design elements that can be deployed as a whole and developed using Domino Designer. In order to access data XPages and Domino Designer use so called data sources. These data sources can be bound graphically to UI controls on pages. UI controls and other types of controls show up in a palette of controls in Domino Designer and can be dragged and dropped onto pages. Domino Designer also comes with futher convenience functionality, for example field validations, translations, etc.
XPages functionality can be modularized in so called 'Custom Controls' which are XPages controls that can be reused in multiple XPages pages and parameterized based on context.
Server Side JavaScript
In order to write business backend code Server Side JavaScript is used primarily. There are APIs to access the document oriented database and the XPages context - see here for more information on the APIs available. It is also possible to invoke standard Java SDK code from the JavaScript code and to write custom Java code using JSF managed beans.
XPages Runtime Extensibility
The XPages runtime can be extended using the XPages Extensibility API which is based on JavaServer Faces. This capability can for example be used by ISVs who want to provide their own libraries of XPages controls.
More information:
- XPages.info
- Open source projects at OpenNTF
- IBM Notes and Domino Application Development Wiki
- Download IBM Domino Designer for free
- Free videos on XPages development at xpages.tv