XPages and IBM Lotus Domino Designer Revolutionizing Lotus Domino Web Application Development

makeshiftluteΛογισμικό & κατασκευή λογ/κού

14 Ιουλ 2012 (πριν από 7 χρόνια και 1 μήνα)

1.040 εμφανίσεις

XPages and IBM Lotus Domino Designer
Revolutionizing Lotus Domino Web
Application Development
Claude Cossette

Sr. Lotus IT Specialist
What We’ll Cover …

Domino as an application development platform

The revolution made through an evolution

Deep dive into XPages

Domino encounters Lotus Mashups

IBM deployment use case: the developerWorks wikis

Chat with Philippe Riand, XPages Architect

Domino Applications
Proven in Production with 20 years of experience

Proven in production (20 years)

Security built in, not bolted on

Long Lasting Applications

Application Compatibility

By the time the specification is
written in another Language, the
application is written and
deployed in Notes / Domino”

Comprehensive and open
development environment

GUI-driven, point-and-click

Supplied templates require
no coding

Support for developers at every
skill level—Lotus, Java™ and
Eclipse software

Centralized administration for
quick deployment

Component reuse
saves time
Core Business Applications on Lotus
Notes and Domino

Team / Community Discussion Forums

Document Storage and Collaboration

Customer Relationship Management

Help Desk / Customer Support

Human Resources

Billing Systems

Inventory Management / Supply Chain Tracking

Project Management

Sales Force Automation

Product Catalogs / Price Lists

Compliancy Tracking, Audit and Assessment
Thousands of
around the
globe, from large
enterprises to
small local
shops, trust their
core business
applications to
Lotus Notes and
Serving Up Applications to the Web

Yes, we made it easy to provide browser-based access to your
applications, but they often looked like this:
Lotus Domino 8.5 Application
Development Themes

Provide developers with a modern development tool IDE

Do for developers what Lotus Notes 8 did for end users

Improve usability and productivity

Address various developer pain points from previous versions

Attract new developers to the platform

Make building compelling Web applications easy

Allow developers to build attractive, modern Web apps that leverage Web
2.0 technologies with less work

Seamlessly target a wide range of clients while taking advantage of their

Provide means to update existing Lotus Domino Web applications
The 8.5 Answer: Revolution Thru Evolution

Remaining true to our core value –

Modern IDE built on Eclipse

Increased customization, extensible framework

Platform services for navigation, search and editing

Goal: comfortable for existing users, approachable by new users

New design elements for building compelling Web and Client apps

XPages and Custom Controls

Designed for developing Web 2.0 applications

Modern Web controls

Built-in Ajax services

Server side JavaScript

Styled with standard CSS

Themes easily define an application’s look and feel

Server JavaScript libraries
XPages: Same Source – Multiple Renderings
Web 2.0
Lotus Notes Client
Mobile Devices

+ JSF + JavaScript +HTML/CSS + Dojo
Lotus Domino Designer:
Lotus Notes & Eclipse
The New Discussion Database
Compelling Web 2.0 User Experience with
Lotus Domino 8.5
Discussion 8.5
XPage showcase

Compelling UI

Quick to Customize

Easy to Deploy
XPages Value Proposition

Provide a better Web development experience to Lotus Domino

Can be used to incrementally enhance an existing application or write a
brand new one

Fully integrated within Lotus Domino Designer

Decreases the time for writing Web Applications

Solves problems expressed by the Lotus Domino community

Known limitations are addressed

UI/Data separation, HTML generation control, Server state,
Localization, Extensibility, …

Fully integrated within the Lotus Domino Web server
Leverages Lotus Domino/Web Developer
Skills as well as existing assets

Leverages the existing design elements (Forms, Views, … )

Forms carry the document schema (data definition) and some business
logic (computed fields, … )

Views used to query the Lotus Domino store

Agents can be called using the back-end API

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 and exposes the back-end API

JavaScript accessors on top of the Java back-end API

JavaScript has been extended to support @Functions()
Lotus Domino Server Architecture
Domino HTTP Server
Client Request
2.4 servlet engine
NSF database containing the design
elements & the data
XPages Servlet Engine
The server directly reads
the design elements from
the NSF database
Virtual J2EE modules
No WAR deployment

How it works – pretty much the same as on the server :-)
Web Container
XPages Runtime
Lotus Notes Client
XPages UI Container
Embedded XUL Runner
NSF design elements
(XSP, Java class files…)
are made available as
module resources to the
servlet API.
Each NSF can be
projected as an auto-
deployed Web Module.
The XPages runtime
inserts as a generic web
module and provides a
virtual container for NSFs
XPages requests sent
to an embedded Java
Web container

NSF apps have a new XPages client launch option

When app is opened, this URL is passed to XPages client container

The container further transforms the URL ...

Creates a instance of the XULRunner browser

Sends a secure request to client web container

The web container routes all XSP requests to the XPages runtime

XPages runtime renders pages back to the XULRunner browser
In Short
Lotus Notes Client Architecture - 8.5.1
Lotus Domino iWidget

Being able to run any XPage as an iWidget

A developer just needs to register the XPage as an iWidget

No changes are requested to the page

Add some entry in the Lotus Mashup catalog

Share the artifacts with the Rich Client

Incrementally add iWidget related behaviors

Event Publishing/Handling

Component parameters

Support for modes (view, edit, help...)

Make the user experience easy through Lotus Domino Designer

Execute in different containers

IBM Mashups Center, IBM Websphere
Complete Control of the Rendering

Look and Feel is driven uniquely by CSS

Full support for 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

Enables Enterprise Scale Applications

Extensible architecture

Custom controls

An XPage can call any Java code/library

XPages Extensibility API makes it limitless

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 and dedicated pages per locale

Automatic support for user time zone
Logic for Your XPage

The “official” language for XPages is JavaScript

JavaScript runs on client or server (or both — your choice!)

JavaScript can call any Java code

JSF Managed beans are also available for maximum flexibility

Simple actions available for common operations

(Almost) every property is computable!

Labels, column titles, visibility, style, …

Rich event model

Ajax behaviors

Built in in some cases (typeahead, pager)

Easy to build on your own with simple event properties

Custom Controls

Composite controls

Parameterizable sub-forms

Controls made by assembling
existing controls

Behave exactly as native controls

Appear in the Control palette

Define their own set of properties

Hierarchical with custom editors
Control added to a page
Control is like a page
Extensibility APIs - 8.5.2

Let people create deployable XPages libraries

Deployed as Eclipse plugins in the Notes Client and the Domino Server

Shared by all the applications!

Controls, Render kits, Data sources, Simple actions, Servlets, Request customizers...

Common Custom controls shared in jar files

Make public the XPages Java APIs

Javadoc, articles and samples

Open source library of controls shared on openNTF

The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The inf ormation on the new product is f or
informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or
f unctionality. The development, release, and timing of any f eatures or f unctionality described for our products remains at our sole discretion
CKEditor - 8.5.2

Default XPages Rich Text Editor

Domino Server + Notes Client (Windows, MacOS, Linux)

Added Features:

Embedded Images, Tables, Links, Emoticons, Maximize,

CKEditor Toolbar is customizable

Slim, Medium, Large
Deployment Use case
IBM Drinks Its Own Champagne
Lotus Product Wikis Overview

Product wikis for all Lotus and IBM
WebSphere® Portal products

Live on the Internet, open to all customers
and users


Added first wiki for IBM Lotus® Notes®
and Lotus Domino in December 2007

Additional wikis added in 2008

Current content includes supplemental
technical content and IBM Redbooks®

Plan is to use wikis for official product

IBM Lotus® Expeditor, IBM Lotus® Foundations, IBM
Mashup Center already publish product doc to wikis
Wiki listing
IBM Composite Applications
IBM LotusLive

IBM Mashup Center
IBM Lotus® ActiveInsight®
Lotus Connections
Lotus Domino
IBM Lotus Domino Designer
Lotus Expeditor
IBM Lotus® Forms
Lotus Foundations
IBM Lotus® iNotes®
IBM Lotus® Mobile Connect
IBM Lotus Notes
IBM Lotus Notes Traveler
IBM Lotus® Quickr
IBM Lotus® Sametime®
IBM Lotus® Symphony
IBM Lotus® Web Content
IBM Lotus® Workforce
IBM WebSphere Dashboard
WebSphere Portal
IBM WebSphere® Portlet Factory
Lotus Domino infrastructure

Live Internet-facing Lotus Domino

Part of IBM developerWorks Lotus
Web site

Hosts Lotus product forums, wikis,
blogs, Lotus Notes and Lotus Domino
fix list, etc.

Averages 374,000 unique visitors per

Averages 3.1 million page views per
Benefits of XPages for wikis

Rich text handling streamlined

Separation between Web presentation and content storage

No MIME conversion as done in the blog template

Markup language

Fosters common formatting language between Lotus Notes and Web browser editing

Markup uses WikiCreole format, same as Wikis feature in Lotus Connections

Document editing performance improved

Processing agents from blog template no longer necessary

Upgraded Dojo editor

Uses Dojo editor from standard Lotus Domino installation

Potential for other rich text editor options down the road
Image: Mike
Benefits of XPages for wikis,

IBM Lotus “OneUI” style sheets

Common look and feel shared by current Lotus product set

Web accessibility covered globally and consistently

Common controls and components

XPages provides multiple reusable core controls

Standard discussion template from Lotus Domino 8.5.x provides components such as
tag cloud and search

Active content filtering

Protects against malicious code content in wiki articles

Set at server level via properties file and tied to XPages applications and controls

Backwards compatibility

Provides new Web presentation along with standard Notes forms and views

XPages template applied to 20 live production databases with no service disruption
Image: Mike
XPages Wiki template on OpenNTF

XPages wiki template shared for no-charge
download on OpenNTF (

Template is base for further customization
for Lotus product documentation wikis

Working with development to incorporate
our customization work

Some Partner Products/

Business Challenges

Capitalize employee knowledge

Help departments develop and
manage communities of practice.

Improve help and support/service
desk operations.

Develop self sustaining FAQs .

Benefits Delivered


Intuitive knowledge management

Integrated into their day-to-day applications

Access from mobile devices

To Elguji

RAD Web 2.0 framework for building collaborative

Build application assets with less effort

Maximize reuse of assets
"XPages have allowed me to deliver classic Notes database
applications to the iPhone without having to change the
template. I can simply create one database with an X-page, and
it will connect to the database that is appropriate for the
particular user - even if the other database is on different
server. "
Mark Hughes - HughesConnect.com

Challenge: How to provide great online support for

Discussion forum, solutions, idea voting, news, FAQs, downloads,
documentation – all in one place?

Solution: ServiceCommunicator provides everything
you need to provide best possible online support. In
one place.

All-in-one solution, SAAS or installable, easy to setup and maintain via
Browser, easy to use for customers, highly customizable.

Benefits: No need to develop, setup and maintain all
those support features by yourself.

Saves time and money.

You can focus on serving customers instead of maintaining support features.
IBM Software Services for Lotus (ISSL) Lotus Notes Domino Solutions
Technical consulting offerings
ISSL can help customers make the most of Notes and Lotus
Domino by enhancing out-of-the-box functionality. Projects where
ISSL can assist include:

Lotus Domino application modernization using X-pages

Web-enable Lotus Domino applications

Develop a plan to upgrade current Notes applications to
leverage the new capabilities of composite applications

Test and migrate applications created in earlier versions of
Lotus Notes to Lotus Notes 8.x

Build custom solutions that maximize customer ROI in Lotus
Notes and Domino, and leverage an onshore/off-shore
model to remain price-competitive

Automated Database Deployment for Lotus Notes
(ADD4LN) is a Lotus Notes solution used to deploy, manage, and
track Notes databases.
For more info: www.ibm.com/software/lotus/services
Premium services
For Lotus Notes and Domino 8.x customers, Premium Support
can help increase self-sufficiency and avoid issues by providing
technical expertise, proactive support from an assigned specialist,
best practice methodologies, and programmatic knowledge
Training and certification

Introduction to IBM Lotus Domino 8.5 XPages – New

Fundamentals of IBM Lotus Domino 8 Application
Development (D8510)

Building Web Applications for IBM Lotus Domino
Designer 8 (D8520)

Developing IBM Lotus Domino 8 Applications:
Intermediate Skills (D8530)

Creating IBM Lotus Domino Web Services Using
Lotus Script (Online) (D8625)

Developing Composite Applications for IBM Lotus
Notes 8 (D8550)

Developing Composite Applications for IBM Lotus
Notes 8 - Online (D8555)

Using LotusScript in IBM Lotus Notes Domino 8
Applications (Exam 803)

Using Javascript in IBM Lotus Notes Domino 8
Applications (Exam 804)

Using Web Services in IBM Lotus Domino 8
Applications (Exam 805)

IBM Lotus Notes Domino 8 Developing Composite
Applications (Exam 838)
My challenge for you:

Build an XPages application

Present it at the next TLUG

IBM DeveloperWorks


Lotus Domino Designer wiki


OpenNTF – Open source developer community

Planet Lotus – Aggregation of Lotus related blogs. Lots of good
Lotus Domino application development related posts


XPages blog:
8 Key Points to Take Home

XPages remove current pain points for Lotus Domino Web developers

Separation of UI and data means data from multiple sources can be
presented in a single UI

Leverage simple actions and JavaScript for business logic

Use Ajax to improve your end-user experience

Custom Controls improves productivity and maintainability

Themes provide a way to easily change the look and feel of your

The revolution starts with Lotus Domino Designer 8.5, and the future
looks bright

Reuse your existing skills yet get on the javascript bandwagon
Your Turn!
How to contact me:
Claude Cossette: ccossett@ca.ibm.com
Legal Disclaimer
The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and
accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this
information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible
for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is
intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and
conditions of the applicable license agreement governing the use of IBM software.
References in this publication to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates.
Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market
opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in
these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales,
revenue growth or other results.
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have
achieved. Actual environmental costs and performance characteristics may vary by customer.
IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, WebSphere, DeveloperWorks, Workplace and Lotusphere are trademarks of International
Business Machines Corporation in the United States, other countries, or both.
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both
All references to Renovations refer to a fictitious company and are used for illustration purposes only.
Other company, product, or service names may be trademarks or service marks of others.