Understanding the Lotus Notes application architecture is fundamental to passing
exam 610, Notes Domino 6 Application Development Foundation Skills. This understanding
is also fundamental to application development in general! This chapter covers
the Domino Designer development environment and the technologies supported by
the Domino Designer. Specifically, the application architecture, Notes design
elements, and how to utilize the design elements in developing for Notes clients
are covered.

The most important element with any Domino application is Notes documents.
Lotus Notes documents contain application data and design data. In addition,
design elements are special Lotus Notes documents that are a part of the database
design. However, when referring to Notes documents, people are typically referring
to application data documents. Likewise, references in this chapter and the
remainder of this book will typically be referring to application data documents
unless otherwise noted.

Creating, Modifying, Troubleshooting for Notes Clients

When the Domino Designer client is opened, the welcome page is displayed. The
default welcome page displays four options to display content in the Show Me
field. The four options are

Quick links for common tasks (default)These tasks include Create
New Database, Open an Existing Database, Designer Help, and links to online
developer resources such as the Lotus Developer Domain, Domino Enterprise
Integration, Domino Global Workbench, and What's New in Domino Designer
6.

Domino Objects For LotusScript and OLEA graphical layout of
the Front-End and Back-End classes with links to respective help documents in
the Lotus Domino Designer 6 Help database.

Domino Objects for DXL SupportA graphical layout of the DXL
classes with links to respective help documents in the Lotus Domino Designer 6
Help database.

JavaScript Object ModelA graphical layout of the DXL classes
with a link to help contained in the Lotus Domino Designer 6 Help database. This
help document explains how the JavaScript object model is implemented in Domino
and contains links to online JavaScript help.

Languages Used to Code within the Domino Designer IDE

The Domino Designer Integrated Development Environment (IDE) enables
developers to use the following languages to code:

Notes Formula language

LotusScript

Java

Imported Java

JavaScript

The Domino Designer Client Interface

Although you will not be asked specifically to point out these areas for the
exam, the areas of the Lotus Domino Designer interface are referenced within
exam questions. And although the exam does not visually depict the development
environment, you may be asked questions that refer to user interface areas (such
as the Design pane), so understanding the terminology used by Lotus when
referring to the development environment is important.

Table 3.1 Interface Functional Areas

User Interface Area

Description

Menu bar

Context-sensitive menus of the Domino Designer commands.

Properties Box button

Opens the properties box for the active design element.

Preview buttons

Launch a Web browser or Notes client to preview the work.

Design pane

Contains the list of the design elements and resources for the database.
The bookmark icon contains a list of the most recently opened databases.

Work pane

The WYSIWYG ("what you see is what you get") environment for
creating and modifying forms, pages, views, and other design elements
specific to an application or database. Lists all the specific design
items in the current database for the selected design element. The Design
action buttons, which are listed across the top of the Work pane, change
depending on the current design element being modified. These buttons
then perform actions respective to the currently displayed items in the
Work pane.

Window tabs

Each item that you are currently working on has its window tab. When
each tab is clicked, the window the tab represents is opened.

Design Action buttons

Used to trigger common tasks associated with the current design element
being used.

Bookmark bar

Displays bookmarks, which are graphical links to help you quickly access
and organize your databases.

Objects tab

Lists all the objects (specific parts of the design element such as forms,
fields, or buttons when working within a form design element) and events
(object-related actions to which you can attach scripts to perform activities
in an applicationwhen the event occurs, the script attached to the
event executes) for the currently selected design element to which logic
(code) can be added. When clicking on the various items, the script area
changes to reflect the language type and logic that can be added for the
current object. Logic is then added into the script area.

Info list

Scrollable window that displays the objects and coding reference information
for the design element currently displayed in the work area.

Title bar

Displays the title of the current design element, object, or event.

Reference tab

Lists the fields and functions available for the currently selected object.
Code can be pasted from the list to the script area or pop-up help. Reference
tab is language sensitive and lists help available for the currently selected
event. If a formula event is selected, the reference lists all the Database
fields, @Functions, and @Commands available. When you select a JavaScript
event the Document Object Model is listed. Likewise, when LotusScript
is selected, the Reference tab displays the Domino classes. Code can be
pasted from the list or Designer help can be opened.

Script area

Area where script (LotusScript or JavaScript), command language, and
formula language are written for the current object selected. When you
select a JavaScript event you are given the choice to code for the Web
client or the Notes client. Certain events can be coded to both clients,
and you can do this by choosing Common Javascript.

Errors box

Displays errors generated during the compile when working with LotusScript.

Figure 3.1 displays the Lotus Domino
Designer and the various design elements contained within it.

Forms and Documents

Typically, users use Notes forms to create, open, and modify documents.
(Documents can exist, however, without forms to display them.) The form
is the physical template providing the structure and formatting of the document
to be displayed to the user. For example, the form might contain the document
layout, field layout, text, images, background color, and so forth. Regardless
of whether the user is a Web client or Notes client, Domino uses the Access
Control List (ACL) to determine whether the user has rights to create, read,
modify, or delete documents.

Four types of data can be stored in documents:

Text

Numbers

Dates/times

Rich text (graphics, tables, sections, objects, and so forth)

Troubleshooting Database Access

If users are having problems accessing the Domino database(s), consider
investigating the following potential causes of failure:

The target server is down, and no clustered servers are available to
serve as failover servers. Consider setting up Advanced server options such as
clustering and failover.

Users have insufficient access to perform the requested operation.
Investigate the database Access Control List to ensure that users have been set
up with sufficient database access.

The Database file is being used through the operating system, possibly by
a third-party backup system, so that access is locked. Ensure that the database
file is not currently being backed up, or that the previous backup has not
failed and the backup process has locked the file from being used. Also ensure
that the operating system user rights have not been modified to restrict access
to the file or file directory.

The full-text index frequency is set to immediate, and the server is
continually updating the database full-text index. Consider modifying the
full-text index update to update less frequently.

Users are assigned to more than one access level. Table 3.2 refers to
some common user access conflicts that occur when users are assigned to more
than one access level and their respective resolutions.

Table 3.2 User Access Conflicts

Conflict

Explanation

The user is listed individually and as a member of a group.

The access granted to the explicitly listed username takes precedence
over the access granted in the group, even if the group access is higher.

The user is included in two or more groups.

The user is granted access of the group with the highest access.

The user appears in the ACL as well as in specific design element access
lists.