Developing hybrid rich client and Web client applications
Table of contents
When developing a hybrid Lotus Notes and web application, there are several best practices to keep in mind:
Before you begin development on the browser interface for a rich client application, ensure that the functional requirements
for browser clients have been defined in order to avoid unnecessary work.
After you define the functional requirements for the browser interface, begin development by attempting to perform the required functionality in the browser or browsers with which you expect users to access the application. Move through the application step-by-step and document those items that do not work or functionality that is missing. This process helps you to create a realistic level of effort for Web enabling the application.
Having an accurate level of effort is important before undertaking any development project, but is particularly important for Web-enabling an existing Domino application. Clients often feel that creating a Domino Web application is a quick project and Web enabling an existing application is even faster. While Domino provides for rapid Web application development, the complexity of an existing Domino application is generally directly proportional to the amount of time it takes to create a browser interface for it.
Test and consider the following items:
By necessity, the first item to test for is application access:
- Are you prompted to authenticate when you access the application in a browser?
- If not, should you be?
- Is the data in the application sensitive?
- If so, does it require Secure Sockets Layer (SSL)?
As a developer, you may need to work with your Domino administrator to address authentication with the server and enable SSL for the application. You can find an overview of these topics in 6.0 Server configuration and SSL support
After application access, you must examine the user interface and ask the following questions:
- Does the existing application navigation as rendered by Domino work in a browser?
- If the application will be part of an intranet or a component of an existing site, is the navigation consistent with the rest of the site?
- Do the application graphics and color palette match the rest of the intranet or existing Web site?
As part of the user interface, also consider links that were not required in the Notes application but are needed on the Web to help users to navigate such as a link to the corporate home page or intranet splash page. Additionally, most Web sites contain an "About" page, a legal disclaimer, and a contact page. Check if these pages already exist to determine whether you need to create them.
Separate from the user interface, test the views that are required to support browser access of the application by asking the following questions:
- Do the views display as expected?
- Can users easily navigate the view, for example, move forward and backward?
- Are there links in the view to open the documents?
- Are the required view actions available and do they work on the Web?
As a result of testing the views, you might find that you want to create $$ViewTemplate
forms in the level of effort for Web enabling the application.
The next step in testing your application is to look at each form in a browser in both read and edit mode and examine is the overall appearance. Ask the following questions:
- Do field labels line up with the corresponding fields?
- Are the fonts on the form an appropriate size and color?
- Do the graphics render correctly?
After you examine the form's appearance, test for required functionality by asking the following questions:
- Are the required form actions available and do they work on the Web?
- Is there a way for the user to submit the form?
- Does the form validation work as you expected?
There is a broader list of @formulas that do not work on the Web, or are restricted, in the "@Functions on the Web" document in the "Programming Domino for Web Applications" section of the Domino Designer Help database
Finally, review form actions and events, such as PostOpen and QuerySave for LotusScript or @formulas that are not supported on the Web.
After you begin the work of creating a Web interface for a Lotus Notes application, always design with future application maintenance in mind. Specifically, avoid having two completely different sets of design elements in the application, one to support web clients and one to support Notes clients. There are almost always some forms and views duplicated for each client type. However, every time this occurs, it doubles the amount of work that you have to do when the design of the application changes.
A simple example is the addition of a field to a form. If there is a Web version of the form and a Notes version, the field must be added to two forms instead of just one. If the field data needs to be displayed in a view and there are two versions of the view instead of one, then two additional changes must be made.
See Server side user input validation in 4.0 Building Domino Web applications, for a detailed example of using a WebQuerySave agent for form validation.