Last year at Lotusphere, XPages burst onto the Lotus Domino application development landscape. Since then, the developer community has embraced XPages and delivered compelling Lotus Domino Web solutions. 8.5.1 delivered on the vision by providing the ability to build an application once for the Web, the Notes client or expose as an iWidget.Come hear about other 8.5.1 enhancements, what is coming in 8.5.2 and glimpse towards the future.
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Ad106 - XPages Just Keep Getting Better
1. AD106: XPages Just Keep Getting Better
Philippe Riand | XPages Lead Architect
Eamon Muldoon | XPages Development Manager
2. Finance Disclaimer
● 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 information on the new product is for
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 functionality. The development, release, and timing of
any features or functionality described for our products remains
at our sole discretion
2
3. Agenda
● Introduction
● What's new in XPages 8.5.1
● What you'll see in the next release
● A Glimpse to the future
● Resources and wrap-up
3
4. IBM Lotus® Domino®
Application Development Values
● Long standing Domino application development values
▬ Develop easy-to-use, security rich, applications that are robust and scalable
▬ Integrate and leverage existing applications, data, content and systems
▬ Quickly respond to changing business needs
● 8.5 XPages value add
▬ Allow developers to build attractive, modern web apps that leverage Web 2.0
technologies with less work
▬ Provide means to incrementally update existing Domino Web applications
▬ Attract new developers to the platform
4
5. Continue To Deliver The XPages
Vision
● Develop easy-to-use security rich applications that are robust
and scalable
▬ Build once for universal client access to collaborative applications
▬ Harness the power of Web 2.0 from both browser or Lotus Notes® client for both
online and offline productivity
▬ Leverage active content filtering to prevent malicious code
▬ Enterprise ready with performance & scalability enhancements
● Integrate and leverage existing applications, data, content and
systems
▬ Improve reuse of Domino data and development artifacts through use of
components/iWidgets
● Allow developers to build attractive, modern web apps that
leverage Web 2.0 technologies with less work
▬ Predefined Ajax behaviors and controls
▬ Leveraging the Dojo library
5
6. XPages Continues Its Way!
Later...
Notes/Domino next
• - XPages next generation
2010 • - Consumes/generates REST
services
• - Generates Dojo based UI
Notes/Domino 8.5.x
2009 • - Advanced set of Web controls
• - Full client integration
Notes/Domino 8.5.1 • - Stability/performance • - Mobile devices support
• - Runs within the Notes client improvements • - Integration with other Lotus
Domino 8.5 • - Generates iWidget
• - Better client integration products
• - Fixing pending • - Quickr, Connections,
• - First release of XPages • - Active Content Filtering
• - Runs on the Domino • - Performance/scalability issues/requests Sametime
server • - Extensibility • - More data sources (RDBMS...)
improvements
• - iWidget consumption
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 information on the new product is
for 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 functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion
6
7. Agenda
● Introduction
● What's new in XPages 8.5.1
● What you'll see in the next release
● A Glimpse to the future
● Resources and wrap-up
7
8. XPages on the Notes Client
● Enable Notes/Domino users to run XPages web apps offline
▬ Deliver the same UI experience running locally in Notes client
▬ Take advantage of Notes/Domino NSF replication capabilities
● Support XPages on all client platforms
▬ Windows, MAC, LINUX
● Innovate & Integrate where practical, e.g.
▬ Leverage the client composite application model
▬ Integrate with Notes client workspace features as makes sense
● Provide a secure runtime environment for XPages client apps
▬ Leverage client Execution Control Lists (ECLs)
▬ Make it secure through a JavaTM security manager synchronized with the ECLs
8
9. XPages on the Client - Architecture
● Similar to the server/web architecture
Notes Client XPages requests sent
to an embedded Java
Web container
Web Container
Embedded XUL Runner
The XPages runtime
inserts as a generic web
XPages UI Container module and provides a
XPages Runtime virtual container for NSFs
Each NSF can be
projected as an auto-
In Short deployed Web Module.
NSF apps have a new XPages client launch option
When app is opened, this URL is passed to XPages client container
NSF design elements
The container further transforms the URL ... (XSP, Java class files…)
•Creates a instance of the XULRunner browser are made available as
•Sends a secure request to client web container module resources to the
The web container routes all XSP requests to the XPages runtime servlet API.
XPages runtime renders pages back to the XULRunner browser
9
11. Performance Improvements
● New properties to better control the JSF life cycle
▬ Partial refresh optimized (only rendering the desired controls)
▬ Partial execution of the page
▬ Used as a default option to the pager
● Runtime optimization
▬ XPages runtime
▬ JavaScript interpreter performance
▬ Engine optimization
▬ Global JS variables no longer kept in memory
● End user experience / browser rendering
▬ Less files (JavaScript & CSS) downloaded
▬ Better compressed files
11
12. Scalability
● Memory usage
▬ JSF libraries optimized to minimize the information held in memory
▬ View data cache
● JSF View persistence – New options
▬ No persistence
▬ Persistence can be disabled when not needed
▬ In memory – default in 8.5 & 8.5.1
▬ Consumed memory decreased by x2.5
▬ On disk
▬ Pages are serialized to disk, thus increasing the number of concurrent users.
▬ Can be a mix between memory and disk
12
13. Improved Developer Experience
● Dojo enhancements
▬ New Dojo release (1.3.2)
▬ Support for IE8, Firefox 3.5, Safari 4
▬ Bug fixes & performance enhancements
▬ New Dojo related properties
▬ Ease the use of dojoType & dojo specific attributes
▬ Available to xp:panel, xp:div, xp:span...
● JavaScript engine
▬ Better support of ECMA 262 specification
▬ Better use of the security manager
13
14. Active Content Filtering
● Goal
▬ HTML, and particularly from Rich Text fields, can carry malicious code that executes
unwanted operations on the behalf of the user accessing the page
▬ JavaScript snippets embedded within the HTML
▬ “href” pointing a REST action
▬ ...
▬ Example: Blog entry
▬ One can add a reply to a blog entry, that will be read by the blog owner and execute
malicious code on his behalf
● XPages solution
▬ Removing malicious code from HTML by applying a filter
▬ Filters can be applied on requests and/or responses
14
16. 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 Domino Designer
16
17. High Level Architecture
Lotus Mashup Server Domino Server
Application Database
Widget Catalog iWidget Servlet - XPages
- Components
Proxy server XPages Renderer
●Lotus Mashup and the Domino Server don’t have to run
on the same machine
●The Domino server serves the iWidget definitions
and the XPages markup
● The iWidget servlet composes the widget.xml “on the fly”
● XPages content is served by the regular XPages runtime
Domino iWidget rendered ● The Lotus Mashup proxy server is used whenever necessary
in an iFrame ● Uses HTML 5 extensions when available (FF3, IE8...),
else uses the proxy
17
19. Other Enhancements
● Modified flag with save confirmation when a window is closed
● Client side simple actions
● EventHandler: onStart, onComplete, onError for Ajax notifications
● New options for Localization
● Controls
▬ Hidden field control
▬ Multiple value input field
▬ Tab link
▬ New “Link” resources that goes to the <head> part
● Lot of bug fixes and little enhancements
19
20. Agenda
● Introduction
● What's new in XPages 8.5.1
● What you'll see in the next release
● A Glimpse to the future
● Resources and wrap-up
20
21. XPages Runtime in Notes/Domino
● Performance and scalability improvements
▬ Shared design elements
▬ Better handling parallel requests – reducing server contentions
▬ Tag cloud performance
● Stability / robustness
▬ SPR fixes
● Extended Client Integration
▬ Support for multiple tabs
● New Back-end classes capability
▬ Running agents on top of in-memory documents
▬ Support for multiple levels of categorization
● Controls enhancements
▬ Use of the CKEditor for Rich text editing
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 information on the new product is
for 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 functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion
21
22. Extensibility APIs
● 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
We welcome you to
AD110 Unleash the Power of XPages
We'll be presenting the API in details
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 information on the new product is
for 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 functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion
22
23. XPages Editor Usability Improvements
● Design time rendering
▬ Improved theme setting and rendering
▬ Improved style rendering
▬ Improved repeat rendering
● Extended controls support
▬ Analyze property use on “All Properties” and promote frequently used properties to the
“pretty panels”
▬ Checkbox/Radio button group control
● Palettes enhancements
▬ Palette drop to source mode
▬ Better Notes data type handling – rich text, date, time
▬ Data palette improvements
▬ Change order of controls
● And more...
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 information on the new product is
for 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 functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion
23
24. Agenda
● Introduction
● What's new in XPages 8.5.1
● What you'll see in the next release
● A Glimpse to the future
● Resources and wrap-up
24
25. A Glimpse to the Future
● XPages is strategic for Notes/Domino
▬ We continue to invest on this technology
● This is not a commitment on the new features being developed
▬ This shows the direction we are taking
▬ This is provided as information to keep you updated and get your feedback
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 information on the new product is
for 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 functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion
25
26. XPages Next Generation
● XPages stateless mode
▬ Generates HTML without the server side life cycle
▬ Rich HTML interfaces – Dojo dijits
▬ Still leverages XPages strengths
▬ Component/renderkit model, Page composition, Localization, i18n, Security,
Dynamic page generation, Simple actions, Script languages for business logic…
● XPages embraces REST services
▬ Generated UI bind to data coming from REST services
Existing or custom services
▬
▬ Should be able to easily produce REST services
▬ On both the Domino server and the Notes client, using the available Web
container
▬ Extend existing services with custom business logic
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 information on the new product is
for 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 functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion
26
27. Advanced Dojo Based Controls
Dynamic Tooltips
Scrollable Grid
Popup Dialogs
Calendar Control
Tag Cloud
Dynamic Outline
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 information on the new product is
for 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 functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion
27
28. And also...
● Better Client integration
▬ Contributing to menubar, toolbars
▬ Handling Eclipse selection
▬ Native Rich text edition
● Improving the reuse of existing assets
▬ LotusScript libraries, existing design elements (forms, views...)
● Data sources
▬ Relational data access
● Mobile devices support
▬ Detecting the devices, dedicated themes, accessing the device capability...
● Integration with other products in the portfolio
▬ Sametime, Connections...
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 information on the new product is
for 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 functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion
28
29. Agenda
● Introduction
● What's new in XPages 8.5.1
● What you'll see in the next release
● A Glimpse to the future
● Resources and wrap-up
29
30. Resources
● Lotus Domino Designer wiki
▬ http://www.lotus.com/ldd/ddwiki.nsf
powered by XPages!
● OpenNTF – Open source developer community
● Planet Lotus – Aggregation of Lotus related blogs. Lots of
Domino app dev related posts
▬ planetlotus.org
● XPages blog: http://xpagesblog.com/
● IBM DeveloperWorks
30
31. XPages Related Sessions to Not Miss
Description Speakers
AD107 Enhance Your Existing Applications with XPages Steve Castledine
Stephan Wissel
AD108 XPages in the IBM Lotus Notes Client - A Deep Dive! Martin Donnelly
Teresa Monahan
AD109 XPages Performance and Scalability Mark Gargan
Tony McGuckin
AD110 Unleash the Power of XPages Philippe Riand
Maire Kehoe
AD111 Harnessing the Power of Server-Side JavaScript and Other Tim Tripcony
Advanced XPage Techniques Stephan Wissel
BP207 Make Your XPage Apps "Pop!" with CSS and Themes Declan Lynch
David Leedy
SHOW112 How to Build an XPages Application from Start to Finish Tim Clark
Matt White
JMP101 IBM Lotus Domino Designer 101 Dan O'Connor
Ishfak Bhagat
31