Level: Introductory David DeJean (ddejean@dejean.com), Partner, DeJean & Clemens Dick McCarrick, Content Developer, Lotus
01 Oct 2002 Domino Designer 6 is expanded to match the ever-larger concept of what a Domino application is. It has more capabilities to manage complex applications, reuse code, create Web presentation elements, develop databases, and create and manage agents.
The vision of what constitutes a Domino
application is expanding-it's not just an NSF file
anymore. Now it's data from relational sources, cascading
style sheets, and layered pages. Domino Designer is expanding to
keep pace. That is what Domino Designer 6 is all
about."Designer is an integrated development
environment," says Martha Hoyt, Lotus Senior Manager for
Collaborative Application Development. "It has to do two things.
One is database development, building the way to get data into the
application. The other is the graphical user interface for the
presentation of the application's contents." Maureen Leland, Project Leader for
Domino Designer, says that her team's goal for Domino
Designer 6 has been to give developers "the ability to do whatever
you want, the way you want to do it. If you want to work in HTML,
you can. If you want to use a third-party application to edit a
design element, you can." When Leland and Hoyt talk about and
demo Domino Designer 6, five major areas of focus for improvements
in this new version emerge:
-
Managing complex
applications.
Domino
Designer 6 provides better support both for managing applications
that span multiple databases and include objects that aren't
traditional elements of an NSF file, and for third-party tools to
use on the design elements of those applications.
-
Reusability.
As Domino applications become larger
and more complex more code can be reused. Domino Designer 6
includes many changes that make that reusability
easier.
-
Presentation
development.
The Web has
fundamentally changed the presentation of content, and Domino
Designer 6 includes many changes and additions that bring the
creation and management of new presentation elements, like layers
and style sheets, into the IDE (Integrated Design Environment). At
the same time, these changes are intended to make Designer a tool
that leverages the skills of Web designers, as well as Notes
developers.
-
Database development.
Many of the changes in Domino Designer
6 are intended to make it easier for developers to do the basic
work of building an application-from small UI changes to
major additions like type-ahead for @functions, HTML in the
programmer's pane, the Data Connections resource type, and features
to support mobile applications.
-
Agent design and
management.
The agent
interface has been redesigned and agent properties have been
enhanced. And from Domino Designer 6, you can attach to and debug
agents running on the server.
Support for complex applications
When you open Domino Designer 6,
you'll notice major changes in Designer's bookmarks
pane. When you expand a database list, you see several new types of
database resources. And you can create nested folders that contain
arbitrary sets of databases, design elements, and other kinds of
objects that aren't traditional parts of an NSF
file.
The bookmark below shows folders that
have been created as children of a database, fishnet2.nsf, to hold
pages and views. These elements can come from this database or
other databases, and you can open them directly from the
bookmarks.
Figure 1. Database with nested folders
You can drag applications into the pane
and use it as a task bar for programs you run frequently. You can
also create new folders here, and drag databases and other elements
into them to group all the pieces of your projects
together.
With the Shared Code and Shared
Resources items expanded, you can see new resource types. Script
Libraries now include JavaScript Libraries. Style Sheets and Data
Connections have been added to Shared Resources.
When you expand individual items in the
list, you will see new icons and columns in the view pane that
reflect new properties you can set for these elements. One of these
properties is an icon to indicate whether an element has been
locked, which means that element can't be modified by another
developer until the lock is released by the developer who set it.
This provides basic file-locking for applications that are being
worked on by teams of developers, and the locking technology was
implemented in ways that support third-party check-in-check-out and
versioning products for Domino development.
In this element view, you can also
select multiple elements for action such as setting the hide-when
properties of a number of similar elements at once.
When you position the cursor over the
window tab, pop-up text appears to tell you the complete pathname
for the element. This UI enhancement, shown below, will help you to
know which design element you're working on. This is handy for
times when you may be making changes to a form with the same name
in two databases, or working simultaneously on a template and a
database created from it.
Figure 2. Design element pathname
Another new feature that helps make
Domino Designer 6 more extensible is the addition of a Tools item
to the main menu:
Figure 3. Tools menu
The Tools menu provides Add Tool and
Customize Tools commands that allow you to add and group the tools
you use in the course of building an application. These can be
third-party tools and external applications or tools you write
yourself. This area of the Tools menu is divided into three
areas:
- The first area lists the two
commands for managing the Tools menu itself: Add Tool and Customize
Tools.
- The second area lists tools that
you want to have available at all times when you are working in
Designer.
- The third area is
context-sensitive. Tools appear here as you select activities
within Designer.
Click on Add Tool to open the Add Tool
dialog box:
Figure 4. Add Tool dialog box
In this dialog box, you name the tool
and indicate the Tool Action that Designer should take when you
click on the menu entry for the tool-either run an external
program or run a formula. The dialog box then displays a browse box
if you specify Run Program or a formula editor if you select Run
Formula.
The Tool Context selection box allows
you either to specify that you want the tool listed on the menu at
all times or to select the contexts when it should appear. You may
want a third-party database analyzer to appear on the Tools menu
all the time, for example, while you want your favorite HTML editor
to appear only when you're in Page or Form design. The
selection box lists all the available contexts and supports
multiple selections.
The Customize Tools dialog box lets you
manage the menu pane:
Figure 5. Customize Tools dialog box
Use this dialog to order the appearance
of tools, edit their values, add or remove tools from the menu, and
create submenus of tools.
Add Tool and Customize Tools give you
complete control over the Tools menu. Third-party tool and
application vendors expect to use this menu as well, adding tools
and submenus as part of their installation processes.
Reusability
Shared Resources brought a "create
once, manage centrally, use everywhere" convenience to some kinds
of resources and code segments in R5-image resources, agents,
and subforms for example. A major goal of Domino Designer 6 is to
expand this kind of easy reusability to more kinds of elements.
JavaScript Libraries are added to the library types, and several
new kinds of shared resources show in the database design list,
such as:
- Files
- Style Sheets
- Data Connections
You can make a bookmark link to a
design element or code object in a different database, so a
frequently used block of JavaScript or a standard view or subform
can be managed centrally across several databases.
Plus, a new Insert Resource dialog box
makes it easier to reuse objects.
Figure 6. Insert Resource dialog box
This dialog box is context-sensitive;
you see only elements appropriate to the current object. If you are
working in the JSHeader object, you see only JSLibraries, for
example. If you are working in the HTML header, you see style
sheets.
The selection boxes let you select the
database and the resource type and displays the available resources
plus any resource-specific fields.
(This Insert Resource dialog box is the
primary reason to select the appropriate resource type when you
create a resource, by the way. You could save a style sheet simply
as a file resource, but then it wouldn't be available in the
Insert Resource dialog box in the HTMLHeader object.)
The ability to work with resources from
other databases also extends to design elements-in
particular, views. In Domino Designer 6, you can embed a view from
another database into a page or form-in fact, you can embed
multiple views. Outlines can be embedded in a similar
fashion.
Another reusability enhancement is a
new set of actions for shared elements that show as a row of
buttons across the top of the view of all elements of that
type:
Figure 7. Shared resource actions
The New option is actually not new, but
the rest are. Here's what they do:
- When you select a resource and
click Open File, Designer makes a temporary copy of the object,
saves its pathname in the Design Note associated with the object,
and opens it in whatever application is associated with the
object's file extension on your workstation.
- Open With performs the same action
as Open File but allows you to choose the application.
- When you have edited and saved the
object in the external application, return to Designer and click
Refresh. Designer follows the stored pathname to the temporary
copy, replaces it in the resource, and removes the
copy.
- Export takes advantage of DXL
(Domino XML) and the fact that all Domino objects are expressible
in DXL. Click Export, and the object is exported as a file in DXL
format.
DXL is also used in the Transformer
tool, which adds to the familiar Design Synopsis function.
Transformer allows you to output all of your database design or
selected elements, transform them by applying a style sheet, and
either send the output to your display screen or write it to an
HTML file. Transformer is found on the Tools menu, under DXL
Utilities.
When you choose Tools - DXL Utilities -
Transformer, Designer opens a dialog box where you choose the
elements to display, the style sheet you want to apply and the
output format you want:
Figure 8. Transformer dialog box
In the following example, the developer
has selected several forms from the left column of the DXL
Transformer, and an XSL style sheet named AllLSinForm.xsl, which
extracts any LotusScript code in the forms. When the extracted code
is formatted in HTML by a cascading style sheet, the results look
like this:
Figure 9. Transformer report showing extracted code
The flexibility of Transformer will
make it easy for you to extract, archive, and reuse your code in
ways that haven't been possible before with Design
Synopsis.
Presentation design
Release 5 of Designer made major steps
forward in incorporating support for Web technologies into the IDE,
and Domino Designer 6 makes several more very significant steps.
Some new features smooth out differences between developing for the
Notes client and for a browser, while others provide ways of doing
things and using tools in Designer that will be familiar to Web
developers.
Editing a style sheet is an important
example of the latter; style sheets are a new resource type in
Domino Designer 6. Rather than invent a new editor for them, the
Designer team simply incorporated the ability to access a style
sheet editor using the Open File and Open With reusability
technology.
Domino Designer 6 also lets you edit
and check the syntax of HTML using the same editing control
developed for LotusScript and JavaScript. You can work with HTML
code either as text or in WYSIWYG display. Here is a screen image
of a page with two tables-one a WYSIWYG table created in the
Designer, the other in HTML code:
Figure 10. WYSIWYG and HTML
Select the WYSIWYG table and select
Edit - Convert to HTML and the page is redisplayed:
Figure 11. Convert to HTML
The WYSIWYG view of the table is
replaced by the HTML code. You can edit this selected HTML code in
the HTML pane. Choose View - HTML Pane, which allows you to preview
the rendered page in the upper pane and edit your HTML in the
lower:
Figure 12. HTML Pane
Edit your HTML code (and use type-ahead
for HTML completion-note the tag selection box that appears),
and when you want to see the effect of your changes, click the
Refresh button and the WYSIWYG display is updated.
Domino Designer 6 incorporates similar
support for an increasingly important Web design feature, layers.
You can create them on a page or form, manipulate them in WYSIWYG
view, and edit their properties, setting absolute position and Z
order, and nesting layers within other layers.
Database development
Domino Designer 6 moves to harmonize
the development of applications for the Notes client, the Web, and
mobile devices.
The Notes 6 client's ability to
render HTML is an important feature because it makes it possible to
write HTML that runs on different clients without recoding. Another
new feature that will reduce the duplication of effort required to
prepare an application for both Notes and the Web is an enhanced
event model that does away with redundant events-one for
Notes, the other for the Web.
When you open an event in Domino
Designer 6, two new drop-downs appear at the top of the
programmer's pane:
Figure 13. Event model
If you're writing LotusScript to
run in a Notes client, you choose Client in the first field and
LotusScript in the second. If you're writing JavaScript for a
browser, you choose Web and JavaScript. You can write both kinds of
code in the same event-JavaScript for the Web and LotusScript
for the Notes client-and both will be stored and executed
appropriately. Or you can write JavaScript and specify you want
both clients to run it by selecting Common JavaScript for the Notes
client.
A new feature that gets applause from
developer audiences whenever it's mentioned is type-ahead for the
programmer's pane. Type-ahead, which will work for HTML code,
@functions, and LotusScript, puts coding information on the screen
for you to work with. When you type an @ symbol to begin a formula,
for example, it pops up a list of @functions for you to choose
from:
Figure 14. Type ahead
When you make a selection, it is
inserted into the formula, and pop-up text provides the attributes
that can be used with the function:
Figure 15. Type-ahead attributes
"It's long-awaited, and it will really
change the code-writing experience," says Maureen Leland. "It will
make it much easier."
Many of the enhancements in Domino
Designer 6 extend the properties-box paradigm to make functions
easier and more intuitive. One of the most powerful is the creation
of a Data Connector and linked fields that connect a form to an
external database. This simplifies integrating Domino and
relational data sources. It takes three steps.
First, create a data connection
resource (DCR). The illustration below shows a new DCR named DB2 -
Employee of class RDBMS (such as DB2, Oracle, or ODBC), and type
DB2. In this case, an DB2 driver was configured to a RDBMS resource
named Northwinds.
Figure 16. Data Connection
Second, in the Database properties box,
select "Allow connections to external databases using DCRs," as
shown here:
Figure 17. Database properties
Finally, set the properties for the
fields that will connect to the external database. You'll
need to specify the table and column names, the data connection,
and whether the field is a key field or a data field. (One key
field and at least one data field must be specified.)
Figure 18. Field properties
What you've just done is
configured a real-time connection using Domino Enterprise
Connectivity Services (DECS) in a way that is easier than
it's ever been.
The properties boxes for some elements
have been changed to make it easier for you to customize
applications for mobile client platforms like PDAs and WAP phones.
The limited screen real estate of these devices means that you'll
have to manage data display very closely, while still supporting
the functionality of the application. Domino Designer 6 makes it
easier for you to design applications that will run on both desktop
and mobile devices by allowing you to set the hide-when properties
of paragraphs, actions, and design elements so that they can be
hidden from mobile clients, just as you've been able to selectively
hide them from Notes or Web clients.
Domino has supported the dynamic
loading of a design element based on the client type since R4.6. If
you want to use a different form for a Web client than for the
Notes client, you create two forms with the same alias and mark one
hidden from Notes and the other hidden from Web. When a user
requests a form, Domino looks for a form with that alias that is
not hidden from the user's client type. Domino 6 extends this
capability to a new client type-mobile.
You can use this capability to hide or
reveal paragraphs and any elements they include in forms or
documents that display only on mobile clients, only on Notes, only
on the Web, or on any combination, by selecting the appropriate
checkboxes in the properties box. The choices are set in the
hide-when panel of Text and Shared Actions properties boxes. For
example, here is the Text properties box:
Figure 19. Text properties
You can also use this capability to
create forms, pages, subforms, views, and folders (the only design
elements used by mobile clients) that display selectively on mobile
clients. For these design elements, the choices are set in the
design panel of the Design Document properties:
Figure 20. Design Document properties
Agent
design
A redesigned agent interface provides
more screen real estate to write code. The agent properties have
also been enhanced-the most important change allows you to
make a shared agent private with a click in a checkbox, and the
reverse is true.
You can also create agents that can be
enabled and disabled by users who have only the Notes
client-they need editor access to the application, but they
don't need the Designer client-and they don't need to sign
the agent. You can enable this by selecting the Allow user
activation checkbox in the Agent properties box:
Figure 21. Agents Properties box showing "Allow user activation" option
The Notes 6 user interface extends the
View - Agents functionality of R5, where a user sees only private
agents. In Notes 6, View - Agents also displays any scheduled
agents in the database:
Figure 22. View -- Agents
New action buttons across the top of
the display allow the user to create a new agent or enable,
disable, and sign selected agents in the list.
Your control over server agents has
been significantly expanded as well. You can halt runaway agents on
the server. You can also diagnose problems with server agents
through Domino Designer 6.
"In R5, you can debug local agents, but
you can't tell what an agent running on the server is doing," says
Leland. "In Domino Designer 6, you'll be able to set a property
that marks the agent as debuggable. Then when you run it on a
server, you can launch remote debugger with the File - Tools -
Remote Debugging command that brings up the top-level UI so that
you can attach to the running agent and see what's going
on."
Other cool stuff
Not every new feature in Domino
Designer 6 is as big as the Database Connection or agent interface.
Many of them are small-but important to making a
developer's life a little easier.
For example, here are a couple of
changes to action design. First, changes in the design of shared
actions make it easier to manage them in multilingual databases,
too. The Shared Actions view organizes the actions by language and
shows you whether there is a note for each action. You can see the
notes and write or edit notes in each language.
Another change is that you can write a
formula that computes the label for an action button or menu item.
In the element's properties box, either write the formula in the
label box (as show in the following screen) or click on the @
button to open the formula editor.
Figure 23. Shared action properties
And when you're ready to insert shared
actions, the Insert Shared Actions dialog box now allows you to
select multiple actions at once.
Here's a list of some more cool
stuff:
- The Actions design pane displays an
icon for each action and supports multiple selection, drag-and-drop
to set the action's order on the action bar, and double-click to
edit in place. From this new interface, you can delete system
actions you don't need (and system actions are no longer
added by default to new forms and views).
- Dynamically named elements have
been enhanced. The creation dialog box allows you to compute not
only the element name, which you could do in R5, but also the
database the element is stored in and the kind of element it is
(form, view, and so on).
- You can customize the twisties that
appear in views using an image resource that is an image
well-the first state is displayed when the category is
collapsed, the second when it is expanded.
- You can print the code that appears
in the programmer's pane.
- The 64K limit on code segments has
been removed.
- You can set persistent breakpoints
in the LotusScript debugger.
- View columns have a new property:
Hide column if formula is true.
- Color palettes have been made
consistent throughout Domino Designer 6.
- You can now embed an editor into a
form-for example, to embed one or more forms into an existing
form. You can also link an embedded editor to an embedded view,
allowing users to edit documents in a view without having to open
separate windows.
- The programmer's pane properties
have a new option to automatically add Option Declare in new design
elements.
- Bookmarks have been enhanced. You
can create arbitrary levels of folders in the bookmark pane, giving
you greater customization and organization of the design
environment. You can also select multiple databases in the Open
Database dialog box and create multiple bookmarks at one time.
Design elements can be opened directly from bookmarks by expanding
the list of design elements, clicking on the icon for the design
element type, and then clicking on the design element of
interest.
- You can integrate Lotus Sametime
instant messaging into your Domino application. This allows users
of your application who are currently on-line to communicate
directly with each other.
 |
Power for
productivity
"The changes in Designer 6 are
evolutionary rather than revolutionary," says Maureen Leland. The
goal for this new version of Designer, she says, is to make it "fun
to use." Then she amends that, adding, "...and
powerful." Domino Designer 6 is indeed powerful to
use. It delivers features that make the development of increasingly
complex applications easier-features that save developers
from repetition and wasted effort and make them more productive. It
makes it easy to use new presentation features like layers and new
programming features like database connections. It brings the IDE
up to speed with the current state of the application-development
art. And it really does make it fun.
Resources
About the authors  | |  | David DeJean has been working with and writing about Lotus Notes and Domino for as long as they've existed. He was co-author of the very first book about Notes, "Lotus Notes at Work," and has been an editor and writer for a variety of computer publications. He is a Lotus CLP and a partner in DeJean & Clemens, a firm that does Notes and Internet application development and technical and marketing communications. |
 | |  | Dick McCarrick is a content developer for Lotus Developer Domain. Previously he was a member of the Domino/Notes Documentation team for over 11 years, playing a variety of roles in documenting many major components of Domino and Notes. He also wrote the occasional article for Iris Today (including Ask Professor INI) before joining the Notes.net/Lotus Developer Domain team permanently in 2002. In his spare time, Dick's leisure activities include running, fishing, woodworking, and reading about the natural sciences. An avid astronomer, he's former director of the Bridgewater (Mass.) State College Observatory. Dick lives in Vermont. |
Rate this page
|