Your SlideShare is downloading. ×
XPages Extension Library   slides
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

XPages Extension Library slides


Published on

  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. XPages Extension Library Exceptional Web Experience @ Exceptional Speed 1
  • 2. XPages Extension Library Executive Summary ● Make the development of Domino Web applications easier and faster ● Lower the entry cost of Domino Web development ▬ Provide an extended set of out-of-the-box artifacts that encapsulate many common patterns. ● Ease modernization of existing applications ● Make prototyping faster than ever ▬ Create a brand new, good looking, custom application in minutes! ▬ Simplify moving from prototype to an actual production ready application 2
  • 3. XPages Extension Library What is the XPages Extension Library? ● A set of advanced, optimized, controls and other XPages assets ▬ Provide a rich UI to web applications through a set of new Web 2.0 controls/behaviors ▬ Does not require new knowledge beyond core XPages ● Integrates within Domino Designer ● Works on both the client and the server, and provides Mobile support ● Designed for performance from the ground-up ● Fully implemented using the XPages extensibility API ▬ Code source is available ▬ Installs on top of Notes/Domino 8.5.2 3
  • 4. XPages Extension Library Limitations with 8.5.2 ● Focus on the runtime, not the design time experience ▬ Extensions will be added to Domino Designer ● UI is targeting OneUI and Vulcan ▬ Designed to support alternative themes ▬ Will require extensions to themes to fully take advantage of it 4
  • 5. XPages Extension Library What is Currently Available and Where? ● The Extension Library is currently under development ▬ Will be called 1.0 probably around the end of the 2010 ▬ Also requires a complete tests set, localization... ▬ Code checked-in can change without notice (Open Source :-)) ▬ Look and feel can also change ● A new project is available on openNTF, which comprises ▬ A compiled version of the library, as an Eclipse update site ▬ Needs more optimization on the Dojo side (custom build) ▬ A demo database showing the components in action ▬ A documentation being written and provided as a PDF file ▬ A Subversion repository containing the full source code ▬ Read only access unless more is requested. We have to limit the committers and go through code reviews 5
  • 6. XPages Extension Library Where is the code on openNTF? ● One project is available ▬ It contains: ▬ The binary plug-ins, ready to install ▬ A sample database showing the features in action ▬ A PDF documentation ● The source code is available from a Subversion Server. Anonymous has read only access ▬ 6
  • 7. XPages Extension Library What You Can Do With The Library ● Start to understand and experiment with this new capability ▬ You can already use the capability within your applications, just be aware that this is under development and can change over time ● Report early feedback in order to influence the design of the component ● Inspect the source code to better understand the XPages Extensibility API ▬ Contribute ideas, components, fixes, documentation Spread out the message! 7
  • 8. XPages Extension Library ● Define the first shot of the application in minutes ● Make this application looks good from the beginning 8
  • 9. XPages Extension Library Solution for the Writer's Block ● XPages makes it easy to create a new application but there is a gap between the first shot and a full featured, well looking application ● At times, developers don't know where to start ▬ Requires a fair amount of work to put the main application layout (code, CSS...), the navigation mechanism, selection handling ... From this To that 9
  • 10. XPages Extension Library Application Layout ● Abstract the main characteristics of an application into a set of parameters ▬ Easy to configure using Domino Designer ● The XPages runtime renders the final application based on the layout definition: ▬ The abstraction does not preclude how the app will be finally rendered – Different renderers could be used ▬ Handles all the low level details (ex: displaying a pop-up menu, maintaining some current page context...) 10
  • 11. XPages Extension Library OneUI Application Layout ● Get a running OneUI application in less than 5 minutes! ● Fully customizable OneUI rendering ▬ Abstracts all the OneUI application parts ▬ Can even be customized by providing a inherited renderer ● Get ready for the upcoming Vulcan look and feel 11
  • 12. XPages Extension Library ● Extends the end user experience by providing new controls and behaviors ▬ Match the new UI trends – Vulcan ● Make it easy to use for the XPages developer ▬ Well integrated in the XPages page lifecycle ▬ Easy Designer experience 12
  • 13. XPages Extension Library New Set of Dojo Controls ● Leveraging the Dojo form controls ▬ Extended set of input controls ▬ Spinner, sliders,... ▬ Dojo client side validation enabled ● New Dojo containers for high user interactivity ▬ Tabbed panels, layout... 13
  • 14. XPages Extension Library User Actions Through Outlines/Menus ● Provide a generic way for building action bars ▬ Hierarchical navigators, accordions, pop-up menus, trees... ▬ Content can be static (defined in the page), dynamic (retrieved from a data source) or a mix of both. ▬ Easy mapping to actions (client and/or server side) 14
  • 15. XPages Extension Library Extended Editing Context ● Beyond the traditional web form/submit/navigate pattern In Context Editing ▬ Editing the data “In Context” ▬ Provide various flavors of dialogs Modal Dialog Dynamic Tabbed Interface Tooltip Dialog 15
  • 16. XPages Extension Library Value and Name Pickers ● Select data from any data source ▬ Domino view, Address Book, Managed bean.. ● Integrated with the standard TypeAhead component ● Pluggable UI for high degree of customization 16
  • 17. XPages Extension Library New View Control with Custom Layout ● Easy data binding to view data ● Custom layout of the expandable detail section ● A new managed bean keeps the view context (current page, expanded rows...) 17
  • 18. XPages Extension Library Interactive Views ● View content rendered in a scrollable grid ▬ Either the Dojo grid or the iNotes virtual list, depending on the need ▬ iNotes virtual list supports categorization, document hierarchy... ▬ Dojo grid supports editing and is not tied to Views ● Data is accessed using REST services provided by the XPages ▬ Custom columns can be computed, and events handled ▬ Documents can also be updated for the column pointing to fields 18
  • 19. XPages Extension Library Access to Calendar Views ● Visualize calendar Notes/Domino views ● Add CRUD operations through custom forms 19
  • 20. XPages Extension Library Dynamic Pages ● Make the content of a page dynamic ▬ Parts of the page are discarded/reconstructed on demand ● The user never leaves the current page ▬ Very efficient runtime behavior ● The context is kept using the URL hash technique ▬ Makes it “bookmarkable”, and enables the back button 20
  • 21. XPages Extension Library ● Provide ready to use, well tested code, that handles common situations ● Wrap the Dojo complexity into components and simple actions 21
  • 22. XPages Extension Library Predefined Managed Beans ● Get easy access to common data ▬ Current user name, email... 22
  • 23. XPages Extension Library Dojo Client Side Simple Actions ● Make Dojo easier to use through simple actions ▬ The Dojo code is generated based on the action properties 23
  • 24. XPages Extension Library ● Define an architecture for hosting REST services within an XPage ● Make these REST services connected with Dojo store for easy consumption 24
  • 25. XPages Extension Library Creating REST Services ● Defining a REST service architecture ▬ Definition of parameterizable REST service engines ▬ Created as a hierarchy of reusable, customizable services ▬ Independent from XPages: can be triggered from a servlet ▬ Multiple possible renderings: XML, JSON, binary... ● An XPages component can have 2 faces: ▬ It renders HTML during the render phase ▬ It can render other kind of data on postback request ▬ Identified by a path info in the URL, or a component client id ▬ High level of security: View columns/field can be hidden, postback can be restricted to the pages running the service... 25
  • 26. XPages Extension Library XPages REST Service Component ● A new XPages component instanciates a REST service engine ▬ Delegates to the engine on postback calls ▬ Renders a Dojo store that connects to the service ● Many services are available ▬ Domino View, Document, Value picker... ▬ Can be consumed by client controls, like Dojo grid 26
  • 27. XPages Extension Library Calling Server Code using JSON RPC ● JSON RPC allows a client to call methods running on the server ▬ A client JavaScript object exposes methods that call a service ▬ The server provides the implementation of the method ▬ The Extension Library provides an engine that can be triggered from a servlet or an XPages component ● An XPage component makes it easier ▬ Generates the client side JavaScript object that connects back to the server ▬ Uses JavaScript on the server for the method implementation ▬ Allows complex JavaScript objects to be passed as parameters 27
  • 28. XPages Extension Library ● Provide the necessary components to integrate with: ▬ Lotus Sametime ▬ Lotus Connections 28
  • 29. XPages Extension Library Content Type Rendering ● Computed fields, as well as view columns, supports a content type property ▬ Generally support Text or HTML ▬ But can be extended to support custom rendering ● New renderers can be contributed through extension points 29
  • 30. XPages Extension Library Lotus Sametime Integration ● Sametime awareness rendering 30
  • 31. XPages Extension Library Lotus Connections Integration ● Popup card ● Inline Business card 31
  • 32. XPages Extension Library ● Enable developers to develop mobile apps via XPages' rapid application development mechanism ● Enable developers to build mobile apps that look & feel like native apps to achieve the best user experience ● Enable developers to build sophisticated mobiles apps accessing native services and supporting offline ● Allow building mobile apps for Android™, iPhone® and Blackberry® using XPages 32
  • 33. XPages Extension Library Use of HTML/JavaScript/CSS ● Based on the initial set of XPages controls provided on openNTF ▬ But using native controls ● Web technologies are used, with eventually native extensions ▬ Dojo Mobile – Since Dojo 1.5 ▬ PhoneGap or other libraries to get access to native platform services (wink toolkit?, ▬ Integration of new libraries (wink toolkit?, 33
  • 34. XPages Extension Library What the Library is Providing ● Automatic detection of the device based on the user agent ▬ Current device is available to JavaScript ● New themes targeting the mobile platforms ▬ Adapts to the look and feel of the platform ▬ 3 themes currently proposed: iPhone, BlackBerry and Android ● Set of new, mobile dedicated controls ▬ Application configuration/layout ▬ New renderers for existing controls (ex: view) ▬ Mobile specific controls (ex: on/off) 34
  • 35. XPages Extension Library Application Configuration/Layout ● Define one XPages that contain the entire application ▬ Uses a dynamic JSF tree on the server ▬ Allows smooth transition between the pages ● Application Configuration ▬ Defines the main options the mobile application ▬ Option menus, … 35
  • 36. XPages Extension Library Possible Dedicated Mobile Controls/Renderers 36