Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Borland's IntraBuilder 1.0


January 1997: Borland's IntraBuilder 1.0

Borland cashes in on its past client/server experience and creates a development environment for intranet applications.

HTML can be stretched and pulled in many ways, but throw in a common gateway interface and some Perl scripting and a lot more can be accomplished. Limitations, however, remain evident. Database programming is difficult and time-consuming, precise layout and formatting is extremely difficult, and, most of all, state management is next to impossible.

Recognizing this, many software companies are coming to the rescue with programming languages, active objects, and complete development environments that offer various capabilities: HTML editors, site management tools, Java, JavaScript, VBScript, ActiveX controls, Java components, server APIs, and integration tools. Some are more complete than others and some are targeted to different audiences.

Microsoft, Borland International, Symantec, and Rogue Wave are a few of the companies targeting Java developers. Borland has used the client/server experience and expertise it developed with InterBase, Paradox, Delphi, and dBase to create IntraBuilder 1.0. IntraBuilder targets developers who create datacentric intranet applications.

Borland, with IntraBuilder, is one of the first vendors to release a complete client/server application development environment for intranets. The product is full-featured, including a wizard-filled IDE that supports the JavaScript language for both server- and client-side scripting. A JavaScript server engine for run-time application support (IntraServer) uses the Borland Database Engine for database connectivity during both design and run time.

IntraBuilder is available in three configurations. IntraBuilder Standard includes the IDE, Borland's Personal Web Server for single-machine deployment testing, Netscape's Netscape Gold browser, and support for common gateway interface web servers and departmental data access through a single instance IntraServer. IntraBuilder Professional adds a multi-instance IntraServer for handling greater activity volume on a single Windows NT machine, Netscape's FastTrack Web Server plus connectivity support for Borland's own InterBase remote database management system and Microsoft's SQL Server and Back Office, plus support for web server APIs and common gateway interfaces. IntraBuilder Client/Server includes all features of the Professional edition and adds native drivers for additional remote database management systems including Oracle, Sybase, Informix, and IBM as well as support for distributed processing and multitiered applications using Remote IntraServers. The base edition has a list price of $99.95, the Professional edition is $499, and the Client/Server edition retails for $1,995.

For this article, keep in mind that we are looking at a late beta version, with incomplete online help files and no printed documentation. A 30-day trial version is available on the Borland web site (http://www.borland.com) so you can evaluate the shipping version of the product on your own infrastructure. Also note that all applications created with the trial version include the tag "Powered by IntraBuilder" at the bottom of forms, but this tag will not be included by default on applications created with a paid copy.

Getting Started

Before you can do any substantial development, you must properly install and configure the web server you'll use for testing. IntraServer is used by the web server to manage interaction with IntraBuilder-based applications. While installation and configuration is not an onerous task, you must be careful with required registry entries and configuration files. Borland could have done more to automate this process. Installing IntraBuilder itself was extremely simple, with the readme file going so far as to list known problems and provide solutions when available. This problem list is a welcome inclusion and something more vendors should adopt as standard practice.

The IDE

Borland has long been applauded for its well-structured, easy-to-use development environments-IntraBuilder is no exception. This version moves to a multiple document interface (MDI), the prevalent interface of most C++ vendors. (MDI will also be available in the upcoming Microsoft Visual Basic 5 release.) Separate, task-focused windows are provided for form design, table design, report design, properties, source code, project management, and debugging and immediate execution. Figure 1 shows IntraBuilder in design mode.

Experts, also known generically as wizards, are provided for most major tasks including creating home pages, application forms, reports, and database tables. Also included is an updated version of the Visual Query Builder, first seen in Delphi 1.0. After an expert is used, the result can be further refined in a standard design window. IntraBuilder also provides more than 20 visual property builders that guide users through the appropriate options for an object's properties including font, type, and color.

Another Borland innovation included with IntraBuilder is Two Way Tools. This feature lets you make changes in the generated JavaScript, have them appear in the corresponding design tool, and vice versa. Few other development environments have this capability so consciously and thoroughly embedded in them.

The Experts

Developing a datacentric application, whether for an intranet or for client/ server, starts with a database. IntraBuilder includes the Table Expert to simplify this task. With minor exceptions, the Table Expert can help users create tables in any database that can interact within an application. The starting point is a set of sample tables, covering a range of potential applications from billing to video collection. You build a new table by selecting one or more fields from each of the sample tables. The table design can be enhanced by moving to the table design window after the expert's steps are completed.

After the tables are created, you can use the Form Expert to create forms based on the tables. The Form Expert lets you include one or more fields from any single table, select a color scheme, choose action and navigation buttons, and designate links to any other forms or reports. A definite weakness in this component is that all columns are represented on the form as text boxes. Most forms actually use a mix of text boxes, combo and list boxes, option button groups, grids, and various other types of interface widgets. In fact, IntraBuilder does not include a grid control in the set of user interface widgets that are supplied with it. Instead, you must purchase or otherwise obtain an ActiveX grid control or Java applet to serve this purpose. Figure 2 shows the Form Expert in action.

The Report Expert is limited to a single table or query. It was difficult to know whether this limitation was a beta issue or related to the limited types of databases I could access. After selecting the table, the expert guides users through the selection of fields to be included, fields to be used for grouping, and fields to be used for sorting. Summaries can also be added at one or more of the grouping levels using a number of standard operations such as Sum. The expert is finalized by selecting a columnar or tabular layout and entering a title. This is a definite shortcoming: I expected more from the company that makes the ReportSmith reporting tool, which offers far more substance, both in the way of templates and in a stronger expert.

After the Form Expert and Report Expert complete their tasks, you can turn to a full-featured design environment to add additional elements or rearrange existing ones. While the supplied controls are pretty basic, Java applets and ActiveX controls can be added to the standard set. An important and useful IntraBuilder feature is visual inheritance, where you can derive custom controls from existing ones. This means that a text box or combo box could have certain properties set by default, saved off, and then reused by any other IntraBuilder user or application. Further, since IntraBuilder is an object-oriented environment, changes to parent class controls are carried down automatically.

One of the more interesting pieces of IntraBuilder's design environment is its Field Palette. This component is a modeless dialog, similar to the toolbox, with one page for each query on the form and one box for each field in the table used on the form. From this palette, you can drop fields at will on the form, with each field type taking an appropriate control type.

Finally, you can use the Home Page Expert to tie one or more IntraBuilder applications to a page serving as a single starting point. This expert guides the creation of links to other IntraBuilder pages (essentially, forms and reports) as well as to any other valid URL.

JavaScript

Like Delphi, IntraBuilder forms are stored as editable code and all properties can be altered through the script. These changes are immediately visible in the form. This is what Borland terms Two Way Tools, giving you the option of working with the visual tools or source code as desired. Code that will handle specific events is also entered using the Method Editor. Unlike Delphi, the underlying language is JavaScript and not Object Pascal.

JavaScript is the high-level scripting language created by Netscape. A simple example of using JavaScript code to implement the onClick event of a command button intended to move the form's underlying query to the next record is shown following this paragraph. In this code sample, Borland's quality of implementation is shown by the extra nicety of a navigation method returning success or failure, rather than by requiring examination of an error object as is more commonly found in other products.

    function NextButton_onServerClick()
    
     
    
    	{
    
    	if (!form.rowset.next())
    
    		form.rowset.next(-1);
    
    }

Borland has extended the base JavaScript language, which is why servers running IntraBuilder applications must run the Borland JavaScript engine instead of the engine built into the Netscape web server. This lets IntraBuilder applications run against many different vendors' servers, whether they inherently support JavaScript or not. The key extensions added by Borland are the class keyword, which adds support for user-defined classes and single inheritance, and a number of enhancements for database support.

Besides making IntraBuilder's version of JavaScript object-oriented, Borland has also adopted the superior error and exception handling model that was first seen in Delphi with the try, catch, finally, and throw keywords. Try, catch, and finally set up a block of code to be executed (try); then list any exceptions handled (multiple catch keywords are permitted for each code section); and have a final block of code that must be executed whether the guarded code succeeds or fails (finally). Throw is used to raise exceptions so you can handle them gracefully, such as application-detected resource constraints.

Working with Databases

The key to IntraBuilder's usefulness is its database support, through the data access objects in the form designer, the Table Expert, and the database classes included in the language. As I noted previously, state management is a difficult problem in the connectionless world of hypertext transfer protocol used on the Internet. As far as a hypertext transfer protocol server is concerned, each request submitted by a user is totally independent of the previous request. Hypertext transfer protocol has no direct method of tracking the actions of a given user as the user navigates through the pages offered by that server. In Tim Berners-Lee's original conception, after all, hypertext transfer protocol and HTML were simply a way to manage the distribution of documents between a group of scientists.

On the other hand, vendors producing database servers have long understood the need for state management so that user activity could be both controlled and facilitated: controlled in the sense of security and access and also to allow higher levels of performance (logging in for each discrete action would annoy users and require a significant increase in resources); facilitated because users would not put up with continual log in requests, but also because it would be impossible to handle actions that spanned more than one piece or form (transactions, for example).

Borland has taken this understanding of state management from the database arena and included it in IntraBuilder applications by implementing a class called "the session," which retains the basic user information-not only who the user is, but also resource and transaction information-as long as the application requires it. A single user may require multiple sessions, even on a single table, to compare two invoices or to permit multiple concurrent transactions. The number of concurrent sessions IntraServer can support seems to be limited only by memory resources on the server. Figure 3 illustrates the database object hierarchy.

Overall, Borland has taken a strong position in the intranet application development marketspace with IntraBuilder, particularly for datacentric applications. Clearly showing the weaknesses of a 1.0 product, such as unnecessary limitations to the Experts and an inadequate report generator, this product does show promise and is fully usable today. The company seems to recognize that it is inappropriate to try to shoehorn every last web composition function into IntraBuilder. For example, since the IDE is not suited for the creation of standard document-oriented pages, Netscape Navigator Gold is bundled into all versions of the product. Note that links to pages created with the Navigator Gold tool can easily be added to any form created with IntraBuilder. The CD-ROM we received did not include all of the tools that come bundled with the retail versions. There are several well-known and well-regarded products that add significant value to IntraBuilder.

Corporations have developed a huge need for Internet and intranet development tools during 1996, and many firms are rushing to try to fill it. In terms of sales, Borland has traditionally played second fiddle to Microsoft in the development tools arena, but rarely has it taken a back seat in terms of quality-and that may be the case yet again. IntraBuilder, in spite of the changes and turmoil at Borland during the past few years, shows that the company hasn't abandoned its commitment to quality or lost its drive to succeed.

Bill Lazar is a frequent contributor to Software Development magazine. He frequently writes on database and software development technology. You can reach him through Software Development magazine.

Company Information

Borland International Inc.

Scotts Valley, Calif.

Tel: (800) 233-2444

Web: http://www.borland.com


Price:

Standard Edition: $99.95

Professional Edition: $499

Client/Server Edition: $1,995

No run-time fees

Hardware Requirements: 12MB (minimum) to 48MB RAM, also depending on edition, components, and so forth. 30MB (minimum) to 120MB hard disk space, depending on which edition and components are installed and whether the development machine is also used as a web server testbed.

Software Requirements: Windows 95 or Windows NT for both development and server deployment.

Money-Back Policy: 30-day guarantee


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.