Developing Domino 8.5 Web Applications
Course Title: Developing Domino 8.5 Web Applications
Units: 12
Duration: 3 classroom equivalent days
Discussion Access: One Year

Summary Description
Ready to move your Notes application to the web? Great web applications using Domino require knowledge of how Domino works with web browsers along with some special techniques. This course builds on your Notes development skills and adds the knowledge and skills you need to unleash Domino as a world class web development platform to create dynamic web sites. Learn the ins and outs of how to make your application function and look great on the web. Get the most from forms, views, and frames when displayed using a web browser. Use layers, CSS, and image resources to enhance your application. Learn how the Domino server interprets URL commands and how to secure your application. There is a complete module on the new 8.5 design element, XPages and how to convert a Domino application to XPages.

The Developing Domino 8.5 Web Applications course will help prepare you for the required exams to be certified as an IBM Certified Application Developer - Lotus Notes and Domino 8.5.

Audience and Prerequisites
Experienced Notes Application developers who want to learn how to develop web applications in Domino. The recommended prerequisites are:
  • Notes Domino 8.5 Application Development 1
  • Notes Domino 8.5 Application Development 2
  • A basic understanding of HTML and JavaScript is recommended

System Requirements
A single Notes 8.5 and Domino Designer 8.5 client. Access to the Internet is required to get instructor support.

Course Modules
Module 1 - Introduction to Domino Web Applications
The Domino server is also a web server. Applications can be delivered to both web browser clients in addition to Notes clients. Domino does this by converting Notes objects to HTML web pages and delivering them via HTTP. This module describes how Domino delivers web access to applications. The differences between Notes clients and web browsers are discussed and cross-development techniques are covered. Internet terminology is defined and recommended design standards are presented to help you get started. Learn the techniques for adding HTML to your applications.
  • Setup and use the Web Preview Feature in Notes and Domino Designer
  • Learn how Domino converts Notes objects to web pages
  • Review the Domino URL syntax
  • Learn what HTML, CSS, and JavaScript are
  • Review the anatomy of a web page
  • Learn the various techniques for adding HTML to Domino elements
  • Develop Domino applications for both Notes clients and web browsers
  • Learn the different hide-when techniques to develop applications for both Notes clients and web browsers
Module 2 - Domino Form Design
Forms are a key design element in both Notes applications and in Domino web applications. This module goes into detail about the differences when Domino forms are displayed in web browsers. Form and field display problems are demonstrated and techniques to resolve these problems are explained. Learn how to provide input validation for web browser clients. Control what happens after a document is saved and add actions to the form.
  • Learn how Domino renders a form for display in web browsers
  • Learn about alignment problems and techniques to address these
  • Learn how text fields are rendered and how to manipulate their function and display
  • Control input field size and length
  • Use different techniques to render a Rich Text Field
  • Add a File Upload Control to a web form
  • Understand how to create and use select, checkbox and radio list inputs
  • Learn the different ways to render hidden and computed fields in web applications
  • Provide alternatives to the Notes Create menu for web browser users
  • Add a submit button to a form
  • Use $$Return to customize the form processed message
  • Compare and use different input validation techniques for web applications
  • Review the @functions which are not supported in web applications
  • Review the @commands which are supported in web applications
  • Enable the Action Bar applet
  • Use reserved fields to control HTML
Module 3 - Domino View Design
Domino converts Notes views to HTML web pages and delivers them to the browser. There are obvious differences when comparing a view in a Notes client with a web browser. Learn about those differences and the problems encountered when Notes views are delivered to web browsers. Then use proven techniques to make your views work in a web browser by adding HTML code and using different options available in Domino's view and column properties settings. Use the Domino view applet to make your views act more like Notes views when accessed in a web browser.
  • Learn the main differences in the way a view is presented to a web browser compared to a Notes client
  • Add HTML to improve view display
  • Understand the different options for displaying views on the web
  • Create a view template form to add formatting to a view
  • Enhance view function with the addition of view navigation links
  • Embed a view in a form, subform, page, or document
  • Enable single-category display for an embedded view
  • Use the Java view applet to enhance the display and function of views and embedded view elements
Module 4 - Visual and Organizational Design Elements
Domino provides a number of design elements which can be used to enhance the appearance and function of a Domino web application. Pages can hold static text and graphics. Graphic images, image resources, and image maps can be added to enhance the appearance and usability of a web application. Learn how use Layers to position and overlap blocks of content on a page or form. Framesets are often used to allow the use of a navigation pane. They are also useful to provide a consistent look and feel. Learn how to use all of these elements in your web application in this module.
  • Create, edit and use page design elements
  • Add computed text to a page design element
  • Add horizontal rules to pages and forms
  • Design, use and manage graphic images in Domino web applications
  • Create and manage image resources
  • Learn about picture properties and how to create an image map
  • Create and use layers
  • Create an outline to provide web navigation support
  • Create a frameset
Module 5 - Domino Web Application Construction
Once the basic forms and views of a web application are completed, the developer has to link together all the elements. Learn how the Domino URL syntax works and how to construct relative URLs that work on any server. Add links using hotspots. This module builds on prior modules and shows how to pull the different aspects of your web design together to create a complete web application.
  • Learn the Domino URL syntax and how to use @WebDBName
  • Construct a relative URL path using Domino URL commands
  • Access Domino objects using Domino URL commands
  • Link to Notes objects using Pass-Thru HTML, hotspot resource links, @URLOpen, and @Commands
  • Create a frame-based web application
Module 6 - Advanced Web Application Techniques
This module dives into advanced web development techniques like cookies, cascading style sheets and themes. Learn how to create an agent to validate and take action on user entered data. Use CGI variables to get information about the web browser user such as their login name and type of browser. Use a Domino agent to create a web page that displays after a form is submitted. Learn to validate user input using JavaScript. Understand the basic concepts of Web Services.
  • Create and use Style Sheets in Domino applications
  • Learn how to enable the Enhanced HTML Generation option
  • Learn how a Theme can be created to apply a style sheet to every web page rendered from a Domino database
  • Pass and retrieve data in the URL Query String
  • Create an agent using a form's WebQueryOpen or WebQuerySave event
  • Access field values in web agents
  • Capture and use CGI variables
  • Generate an HTML response page from a web agent
  • Use a web agent to redirect the browser user to another page
  • Use profile documents in web applications
  • Use cookies to set and retrieve user specific data
  • Understand the Lotus options to connect to enterprise data
  • Understand how Domino OffLine Services (DOLS) can be enabled to support off-line access to web browsers
  • Understand the JavaScript events and how to code them for web browsers and Notes clients
  • Understand the object hierarchy in the Document Object Model (DOM) and how to leverage it using JavaScript
  • Learn to validate user input using JavaScript
  • Learn about the different ways that Java programs can be included in a Domino application
  • Understand the basic concepts of Web Services
  • Use Domino Designer to create web service providers and consumers
  • Edit a Domino Design Element using the DXL Editor
Module 7 - Domino Server, Database and Security Settings
This module focuses on Domino server and database settings to deliver secure web applications. There are many server settings that control how web applications work and how secure your data will be. Learn how users are authenticated and what controls their access to all the databases on the server. Options like session authentication and SSL are important to understand and plan for before deploying an application to the web.
  • Learn the Domino database settings for web applications
  • Design confirmation and error messages using the DOMCFG.NSF database
  • Manage web sites using Web Site Rules
  • Learn the Domino server settings for web applications
  • Secure a Domino web application
  • Understand the security settings for web agents
  • Provide anonymous access to Domino web applications
  • Provide authenticated access to Domino web applications
  • Provide Secure Sockets Layer (SSL) access to Domino web applications
  • Understand what session authentication is and how it is configured
  • Learn techniques to resolve common Domino security vulnerabilities
  • Review strategies and considerations for multiple database site design
  • Enabling WebDAV on a Domino server
Module 8 - XPages
This module covers how to create XPages to build Domino web applications based on Domino views and forms. It also covers how to set up validation for fields, how to use container controls to display information in tabbed panels and tables, and how to combine different Domino data sources on one XPage. A technique to combine a Domino view and the selected document on the same XPage is reviewed. Finally, the use of client-side and server-side JavaScript (the programming language of XPages) is also covered in this module
  • The architecture of an XPage including the event driven model
  • Using Domino Designer for XPage development
  • Creating an XPage
  • Adding and formatting text on an XPage
  • Adding a control to an XPage
  • Use the Outline viewer to select and organize elements on an XPage
  • Troubleshooting errors on an XPage
  • Use a View control to display a Domino view
  • Set the properties for the View control including the pager, view column headers, and view columns
  • Create an XPage to display a Domino document
  • Add Edit controls to display Domino fields
  • Control which XPage will open when a user clicks on a link in a View control
  • Add buttons to an XPage to submit a page and control navigation between XPages
  • Hide controls based on the document's state
  • Understand the Core Controls and when and how to use them
  • Use various techniques to control the list of choices shown to the user when using a ComboBox or ListBox control
  • Create buttons to perform simple actions such as switching between read and edit mode
  • Use Computed Field controls
  • Understand the difference between client-side and server-side validation and how to set validation properties
  • Use the Display Error and Display Errors controls to display error messages
  • Use advanced validators including regular expressions to validate data in XPage controls
  • Understand the different Container Controls such as Sections, Tabbed Panels, Tables, and Data Tables
  • Use the Repeat control to display a Domino mufti-value field
  • Enable the Pager control to allow the user to page through data in a Repeat control
  • Use the Panel control to display a view and a document on the same XPage
  • Understand the difference in scope for sessionScope, applicationScope, and requestScope variables
  • Create Custom Controls for re-use in other XPages
  • Use Themes on an XPage to control the appearance
  • Use client-side JavaScript for events on XPage controls
  • Learn how to write client-side JavaScript to access XPage controls
  • Use server-side JavaScript.for events on XPage controls
  • Use sever-side JavaScript to get and set the values in controls on an XPage
  • Use Global Objects and Global Functions in server-side JavaScript
  • Use Scoped Variables to store data, such as the application scope, session, scope, request scope and view scope variables
  • Debug server-side JavaScript using either the log file or using a Computed Field control
  • Discover other changes to developing XPages with Domino Designer 8.5.1 and 8.5.2