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:
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.
As Domino applications become larger and more complex more code can be reused. Domino Designer 6 includes many changes that make that reusability easier.
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.
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
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.
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.
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.
- Style Sheets
- Data Connections
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.
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.
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.
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
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
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."
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.
"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.
Notes 6 Technical
Domino 6 Technical
Enhancements to the formula
language in Domino 6
Building Web applications in
Domino 6: A tutorial on Web site addressing
Building Web applications in
Domino 6: Web site rules
Building Web applications in
Domino 6: Accessing and protecting the file
Building Web applications in
Domino 6: Browser caching and response header
Jeff Calow on new Web
technologies in Domino 6
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.