Application Generators

Rob Cozens rcozens at pon.net
Tue Feb 3 09:50:06 EST 2004


>I was curious if anyone can offer general feedback about this topic 
>and also about using Revolution for this purpose.

Hi Michael,

In a third of a century of programming I have worked with several 
application generators, from Data General's IDEA in the 1970s to 
Microfinancial Corp's FlexWare in the 1980s & 90s.  I also spent some 
time in the mid 1990s playing with a HyperTalk AppGen design.

Your post forces me to show my hand a little earlier that I wanted: 
expect a release of Serendipity Library with AppGen features in about 
a week [look for the subject, "How RAD is SDB?"].

When this version is released, the steps involved in creating a 
database application in Revolution are:

1. Create a front-end stack with one card for each record type the 
application needs.  Make label fields shared text and record fields 
unshared text.

2. Use the new SDB Tools developer plugin to create the application database--
    A. Enter the db name & select its folder via an ask file dialog
    B. Enter & verify the db edit password (optional)
    C  Enter & verify the db browse password (if edit password is set)

3. Select the SDB Dictionary menuItem from SDB Tools' Edit menu, open 
the new database, and enter the db edit password (if any).

4. Select the Record Type From Card menuItem of SDB Dictionary's File 
menu, select the front-end stack created in Step 1, and select the 
desired card from the pop up on the Type From Stack dialog, and click 
on the "Thumbs Up" button..

5. The Data Dictionary will now read through all fields on the card. 
Each time a field with unshared text is encountered, the field is 
displayed in the Dictionary window with default attributes.  The 
developer can add the field as defaulted, change one or more field 
attributes & then add the field, or bypass the field & leave it out 
of the record definition.  Once all fields have been processed, the 
new record definition is added to the database.

All record fields on the selected card of the front end stack now 
have an sdbFieldName property set.  The syntax for the property is 
[record type] & ":" & [field name].

Record Type From Card will optionally place handlers needed to 
support SDB access of the db in the appropriate scripts, and menus & 
other controls can also be added as necessary.  Record Type From Card 
offers two alternative UIs: the "SDB Interface" (which opens one 
field at a time, edits each keystroke on input,  reformats the input 
on closeField, and requires a specific user action to file new or 
changed records & delete a record), and the "HyperCard Interface" 
(which leaves all fields unlocked, does no input editing or 
reformatting, and updates the db automatically...but NOT 
field-by-field on closeField).

6. Repeat Step 5 with each card in the stack.

7. Use the Distribution Builder to build the application, and viola!, 
you have a single-user SDB database application ready to run.

Oh! You want a multi-user client application to run with SDB Server?

In that case, you must change the front-end stack's rIPCMode property 
from "dc" to "tp" and add an sdbServerAddress property before Step 7. 
Serendipity Library includes a dialog stack, sdbIPCMode, which can be 
used to do this.

Bottom line: Since the RunRev development environment allows scripted 
manipulation of control handlers AND their scripts, it is an 
excellent environment for creating an in-house application generator 
plugin STACK.  OTOH, since this type of manipulation is not supported 
in the runtime environment, I suspect it is difficult, if not 
impossible, to create an AppGen standalone that will work without the 
development environment.
-- 

Rob Cozens
CCW, Serendipity Software Company
http://www.oenolog.net/who.htm

"And I, which was two fooles, do so grow three;
Who are a little wise, the best fooles bee."

from "The Triple Foole" by John Donne (1572-1631)


More information about the use-livecode mailing list