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