RNext Domino Designer Overview (by David DeJean)
Domino Designer Rnext Technical Overview

by

David
DeJean


Level:
All
Works with:
Designer Rnext Beta 2
Updated:
05/23/2001

Inside this article:

Support for complex applications

Reusability

Presentation design

Database development

Agent design


Related links:

Beta 2 download

Notes Rnext technical overview

Domino Rnext technical overview

Overview of the Domino Rnext Web application server


Get the PDF:

(625 KB)

Please note: This technical overview is a draft. It reflects features found in Beta 2 of the upcoming release of Domino Designer, code-named Rnext. Beta 2 is not feature complete, and more features will be included in subsequent betas. This overview will be updated as new features appear in each beta release, resulting in a finished article with the gold release.


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, Java Server Pages, cascading style sheets, and layered pages. Domino Designer is expanding to keep pace. That is what Designer Rnext 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, Iris Project Leader for Domino Designer, says that her team's goal for Designer Rnext 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 Designer Rnext, four major areas of focus for improvements in this new version emerge:
    • Managing complex applications. Designer Rnext 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. Designer Rnext includes many changes that make that reusability easier.
    • Presentation development. The Web has fundamentally changed the presentation of content, and Designer Rnext 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, they 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 Designer Rnext 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 and Java Server Pages in the Programmer's Pane, and the Data Connections resource type.
    • Agent design. The agent interface has been redesigned and agent properties have been enhanced.

Support for complex applications

When you open Designer Rnext, 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, fishnet.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.

Database with nested folders

You can drag applications into the pane, as well, 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 and Servlets, and Java Server Pages are added. Style Sheets and Data Connections have been added to Shared Resources:

New resource types

When you expand individual items in the list, you will see new icons and columns in the view pane, as well, that reflect new properties you can set for these elements. One of these 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.

Another new feature that helps make Designer Rnext more extensible is the addition of a Tools item to the main menu:

Add Tools menu

The Tools menu provides a convenient place to 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. The Tools menu is divided into three areas:
    • The first area lists the two dialog boxes for managing the Tools menu itself: Add Tool and Organize Tools.
    • The second area lists tools that are 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:

Add Tool dialog

In this dialog box, you name the tool and indicate the "Tool Action" 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 Location selection box allows you to specify either 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 Organize Tools dialog box lets you manage the menu pane:

Organize Tools dialog

Use this dialog to order the appearance of tools, to remove tools from the menu, and to create submenus of tools.

Add Tool and Organize 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 Designer Rnext 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
    • Servlets
    • Java Server Pages
    • 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.

A new Insert Resource dialog box makes it easier to reuse objects, as well:

Insert Resource dialog

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 will 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 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 extends to design elements as well—in particular, views. In Designer Rnext 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:

Shared resource actions

"New" 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. Designer saves the pathname of this application in the object's Design Note so that the next time you click Open With for that object, the application you used previously will be the default.
    • 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 in DXL format.

Presentation design

Release 5 of Designer made major steps forward in incorporating support for Web technologies into the IDE, and Designer Rnext 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 Designer Rnext. 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.

Designer Rnext also lets you edit and check the syntax of HTML, servlets, and Java Server Pages. For these, it uses the same editing control developed for LotusScript and JavaScript.

Editing HTML can be taken even farther in the new version of Designer. It lets you 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:

WYSIWYG and HTML

Select the WYSIWYG table and select Edit - Convert to HTML and the page is redisplayed:

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:

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.

Designer Rnext incorporates similar support for an increasingly important Web design feature, layers, in ways Web designers will find familiar as well: You can save layers as resources, insert them into 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

Designer Rnext moves to harmonize the development of applications for the Notes client and the Web. The Notes Rnext client's ability to render HTML is an important feature, because it makes it possible to write HTML that runs on both 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 Designer Rnext, two new drop-downs appear at the top of the programmer's pane:

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, Java Server Pages, and @functions in Beta 2, 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:

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:

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 Designer Rnext 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 brings a new ease to integrating Domino and relational data sources. It takes three steps.

First, in the Database properties box, select "Allow connections to external databases" as shown here:

Database properties

Second, 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 ODBC. In this case, an ODBC driver was configured to a RDBMS resource named Northwinds.

Data Connection

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.)

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.

Agent design

A redesigned agent interface provides more screen real estate to write code. The agent properties have been enhanced, as well—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 "Allow user activation" in an agent's properties box:

Allow user activation

The Notes Rnext user interface extends the "View - Agents" functionality of R5, where a user sees only private agents. In Notes Rnext, "View - Agents" also displays any scheduled agents in the database:

View - Agents

New selection 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.

Other cool stuff

Not every new feature in Designer Rnext 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:
    • LotusScript support includes a remote debugger capability for server agents.
    • An 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 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.
    • A "No refresh" selection is added to the database properties, which allows you to effectively lock the design of the database against changes.
    • 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.
    • Views have a new property: "Hide column if formula is true."
    • Color palettes have been made consistent throughout Designer Rnext.

Power for productivity

The changes in Designer Rnext 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."

Designer Rnext 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.
Iris Home | Lotus Home | IBM Home
© Copyright Iris Associates Inc.

Kolaco, Inc.
88 East Main Street, Suite 300H
Mendham, NJ 07945
P 973.984.3000
sales@kolaco.com

© 2012 Kolaco, Inc. All rights reserved.