Backend Technologies

The development of XPages applications is done using IBM Lotus 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 base internally on JavaServer Faces, but XPages developers don't have to have JavaServer Faces skills. The sources of a XPages pages are an XML derivat called XSP which is translated into Java code when running the applications. At runtime this code 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 IBM Lotus 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 JavaScript is used primarily. There are APIs to access the document oriented database and the XPages context - see here for more. 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.