XPages Development 2 for Notes and Domino 8.5
Course Title: XPages 2 for Notes and Domino 8.5
Units: 16
Duration: 4 classroom equivalent days
Discussion Access: One Year

Summary Description
Take your XPage development skills to the next level with the XPages Development 2 course! This course picks up after TLCC's Developing XPages for Domino Designer course. This course concentrates on the skills needed to move your traditional Notes/Domino applications to XPages and to enhance your applications using the latest Web 2.0 tools. Learn how to optimize your application by understanding XPage architecture, specific uses for Custom Controls, use Dojo to add Web 2.0 features, and how to use the OneUI theme. The inclusion of Dojo now adds a native charting capability that Domino developers have never had! Learn how to create different types of charts and graphs and to use the Dojo DataGrid widget to display reports. XPages can display more than Domino views and documents and the course will show you how to use XML and relational data on your XPage. Learn how to use XPages as an "XAgent" to output Domino data in XML and JSON data formats. Discover how to create a great user interface with the use of dialogs to prompt the user and how to use third party CSS frameworks like Blueprint on your XPage. Learn how to optimize the use of views on XPages such as expanding and collapsing all categories via a control, fixing display issues with categories, and return the user back to the page from where they opened a document. Finally, this course will show you how to localize your XPages for different languages.

There are unique versions of this course for 8.5.1, 8.5.2 and 8.5.3 and you get access to all versions!

With this TLCC course, like all TLCC courses, you are not watching videos or just listening to a speaker, you get hands-on experience in Domino Designer. Just about every topic has a demonstration of the techniques used in the lesson. Then you will perform an activity to give you the skills and confidence you need to be productive. This course requires previous XPages development skills which were covered in TLCC's Development XPages Using Domino Designer 8.5 course.

Audience and Prerequisites
Experienced Notes and Domino 8.5 application developers with XPages development experience. The following TLCC courses (or their equivalent) are recommended prerequisites for this course:
  • Developing XPages Using Domino Designer 8.5
  • JavaScript for XPages Development (8.5)
System Requirements
The system requirements for this course are:
  • Domino Designer 8.5.x
  • A current web browser client
  • Access to the Internet for instructor support

Course Modules

Module 1 - XPages Application Architecture
This module covers the XPages application architecture. Learn how the XPages lifecycle and programmable events affect XPages design considerations and options. Since XPages are supported in various web browsers as well as the Notes client, learning how to determine which client is in use is important so different code can be used as appropriate to that client. This module also covers the design considerations when converting existing Domino applications to XPages. Finally, this module discusses how to add meta tag data to XPages.
  • Determine what XPages events will be triggered and in which order they are triggered
  • Code the querySaveDocument event to prevent the submission of a document
  • Use methods from the XSPUserAgent class to determine which browser and version is in use
  • Use @ClientType to determine if the client is either Notes or a web browser
  • Create code that will test if the Web browser is Internet Explorer 8 (IE8) and force IE7 Compatibility Mode
  • Understand the design considerations for migrating existing Domino forms, views and agents to XPages
  • Add meta tag data to Custom Controls and XPages
Module 2 - Custom Controls
Custom Controls are an integral part of efficient XPages design. This module covers various advanced uses of Custom Controls. Learn how to design a Custom Control that can access data sources and understand the scope of data sources defined in a Custom Control. Create Custom Controls to be used for document navigation and for adding Authors and Readers fields. Learn how to dynamically display a Custom Control based on a criteria in XPages such as a selection made by the user. Use properties in Custom Control to define a "View" Custom Control used on multiple XPages that specifies which XPage to load when the user clicks on a document in the view.
  • Understand the implications of where the data source is defined in a XPage designs that includes multiple Custom Controls
  • Understand the scope of data sources defined in a Custom Control
  • Create a Custom Control to easily include common document navigation buttons
  • Use a Custom Control to add the Authors and Readers Names fields to the document
  • Access Custom Control components using both Client-side and Server-side JavaScript
  • Dynamically display a Custom Control based on a condition or selection on XPages
  • Use Custom Control Properties to allow a "View" Custom Control to load different XPages when a document is clicked
Module 3 - Advanced Client-side JavaScript
This module takes an in-depth look at the additional functionality and features provided by using the included Dojo JavaScript toolkit.. Use Dojo to work with arrays, create special effects and work with data using AJAX. The Dojo Dijit library includes widgets to create GUI controls such as menus, dialogs, user input controls and tooltips. It is easy to create great charts in a variety of formats with Dojo. These charts can be easily tied into data from Domino applications on an XPages. The DataGrid widget is used to display data in a table which includes drag-and-drop and sort-on-click columns. Finally, learn how to add any JavaScript toolkits such as jQuery to an XPage and how to use the Firefox Firebug extension to debug an XPage.
  • Learn how the Dojo toolkit is included in Domino and what it does
  • Use the functions in the Dojo Base library to work with Strings and Arrays
  • Use the Dojo language utilities to help in JavaScript programming
  • Understand how Dojo can help in working with the Web DOM
  • Create special effects with Dojo
  • Use Dojo AJAX controls to read JSON data
  • Add a Dojo Core function to work with dates and currency formats
  • Add Dijit controls to an XPage both declaratively and programmatically
  • Implement a Dojo Tooltip widget
  • Use Dijit widgets to add menus to an XPage
  • Add form Dijit widgets to an XPage such as a number spinner and a text box for currencies
  • Create a Dijit Dialog widget to to display modal dialogs
  • Put a bar chart and a pie chart on an XPage to chart data from a Domino application
  • Add multiple data series to a Dojo chart
  • Retrieve Domino data in a JSON format to create a DojoX data chart
  • Use the DojoX DataGrid widget to display Domino data in a table which includes drag-and-drop and sort-on-click columns
  • Include other JavaScript libraries like jQuery to an XPage application
  • Debug Client-side JavaScript using the Firefox Firebug extension
Module 4 - Advanced Server-side JavaScript
This module covers advanced XPage techniques using Server-side JavaScript. Many existing Notes/Domino applications have agents that contain core business logic. Learn how to call these existing Domino agents from Server-side JavaScript (SSJS) and how to modify these agents to best work with XPages. Design an XPage as an XAgent to produce output in alternative data formats like XML, JSON or HTML. XAgents have the advantage of staying resident in memory between invocations which is much faster than Domino agents that are loaded into memory each time they are invoked. Using XML and relational data such as DB2 as an alternative data source for an XPage is also covered in this module. Finally, an alternative approach to debugging SSJS in XPages is illustrated by logging information to a Domino application.
  • Run a Domino LotusScript or Java agent from Server-side JavaScript
  • Understand the limitations and considerations for running an agent from an XPage
  • Convert a WebQuerySave Agent to work with an XPage
  • Design an XPage as a memory-resident XAgent
  • Create an XAgent to retrieve Domino data and output it as XML
  • Create an XAgent to retrieve Domino data and output it as JSON
  • Use any XML data as the data source in an XPage using XLST Stylesheets
  • Use any XML data as the data source for a Data Table control on an XPage
  • Use DECS and DCR's to access relational data (RDBMS) from an XPage
  • Use Client-side JavaScript to access relational data (RDBMS) from an XPage
  • User Server-side JavaScript to access relational data (RDBMS) from an XPage
  • Debug Server-side JavaScript by logging information to a Domino Log application
Module 5 - Interacting with Domino Objects
This module covers how some traditional Domino development techniques can be translated to XPage design. One example is how to implement document field inheritance with XPages. Next we cover how an XAgent can combine data from different Domino applications to produce reports and charts. Use Server-side JavaScript to return the user back to the page from where they opened a document. Create the Expand All/Collapse All functionality for views on an XPage as well as fix the column display issues that may arise when using categorized views. Learn how to design a Dijit Dialog widget to execute Server-side JavaScript.
  • Perform the required steps to implement document inheritance in XPages
  • Use an XAgent to produce a report that combines data from different Domino applications
  • Use Server-side JavaScript to return the user back to the page from where they opened a document
  • Add Expand All and Collapse All functionality to an XPage with a View control
  • Fix display issues when using Categorized Views
  • Design a Dijit Dialog to execute Server-side JavaScript
Module 6 - Other Advanced Techniques
This module covers advanced techniques to enhance the look and feel of an XPage application and to translate the application for use with other languages. First, use the OneUI theme on an XPage to create a common web page layout. Learn how to use the OneUI theme classes with Custom Controls. Next, this module covers what changes are in the next generation of OneUI, the OneUI version 2 theme, and how to apply that theme. Some developers may wish to use common web frameworks like the Blueprint CSS to create a common look and feel for their application. This module shows how to use the Blueprint CSS framework to create a three column page layout with Custom Controls. Learn how to translate an XPage application to different languages (localization).
  • Use the OneUI and OneUIv2 themes
  • Identify the primary style sheets used in the OneUI theme
  • Apply classes from the OneUI stylesheets to XPage controls
  • Create a three column page common layout using the OneUI theme
  • Understand the options to apply the OneUI v2 themes
  • Use the Blueprint CSS framework to implement a multi-column page layout
  • Debug a page layout that uses the Blueprint framework
  • Understand the necessary steps to implement language localization for XPages
  • Localize static strings in JavaScript code