[REBOL] Re: RFC: Rebol Framework
From: petr:krenzelok:trz:cz at: 21-Sep-2002 6:42
Robert M. Muench wrote:
>Hi, it took some time but IMO I have a quite OK prototype running that's
>available for download. Point your browser too:
>http://www.robertmuench.de/rebol-framework.zip
>
>You get some data-files and the main program (rebol-framework.r).
>
>How to use it:
>- The business object "dialect" is from line 618. Very rudiementary but
>OK for a start. Define your own objects and you are able to use them
>instantly.
>
>- Searching is done by hacking in some value in the search-field. Only
>exact matches work.
>
>- Relations between left side (master) and right side (detail) can be
>set with the double-arrow-button in the middle.
>
>- Pressing the graph button will give you a layout of your semantic net.
>
>- Clicking on a node will set the node into the middle of the screen and
>indicate the actual button.
>
>- Buttons can be dragged around.
>
>That's it for now. Most infrastructure stuff work, so we now can start
>to make it sexy. My next steps are:
>
there seem to be XY bugs ... pressing middle button, monitor, debug
button - all crash an app. There should be also some kind of simple
example of how to actually use it.
>- Try to integrate the "nakedobjects" idea.
>- Create a prototype for a report-dialect: sum all time-entry nodes that
>have a person with name="Robert" and a project with id="15"
>
>Let me know what you think. Robert
>
I looked at sources and it lead me to idea, that I will probably gather
some screenshots of our old DOS Clipper app generator called Zachary.
Very good production app could be generated by it. I especially find
highly insufficient (unless I miss something) to define field type as
only being a datatype. In Zachary, we were able to define e.g.
- how to initialise the field (e.g. by other field in db, joining some
other fields in db, etc.)
- is it part of index expression? If so, which one? 1, 2, 3 ...(index
firstname + lastname + age)
- can be edited?
- is visible?
- represented by collumn in browse?
- VTG - variable to get - a cool feature - e.g. VTG("AB") allowed us to
type only A or B chars (used for floppy sellection).
- mask - (999)-(999 999) - e.g. phone-number
- min - max value
- field type - could be other than just datatype! We had something like
- M - menu, R - Report, U - user code
- relations/validations - is field validated? If so - does it need to
exist in child db? Or it must not exist? Can user add new new value, if
it does not exist in child db?
- updates - a cool one. e.g. - imagine typical storage management
system. You have stock-db, you have material-entry-db, and
material-outgoing-db. In your material-outgoing-db, you set field called
e.g. 'amount, as updating field 'amout in stock-db, and the equation is
decrease
. You does not need to care of anything else - if you give 5
pieces of mouse to some customer, the amount of mouses in your stock-db
will be decreased. If you cancel order of your user, it will be added
back to stock-db ...
- and - very important - conditions, conditions, conditions! conditions
for access, conditions for update, conditions for browse
- the fine thing was - you could first define .dbf in your FoxPro or so
tool, then you could go to Zachary, name your procedure, press import,
and basic definitions were created for you - then you just went to
screen-painter, and imported desired fields. Assigned given procedure
name to menu field 1, and voila - your app was done ...
- you could export your procedure definition to global repository - wow
- repository based shared development in DOS times - we were kinds,
noone could do what we did with Zachary back at that time.
Then there was one executable, which went thru your app definitions and
generated executable ... in clipper. But - app definitions are just that
- it could as well be used to generate code in other language ...
Some overview found:
http://www.incredibleprogram.com/html/zachary_overview.html
So, I don't understand a bit, where is your app framework positioned?
What can be defined? What has to be maintained in code by ourselves? etc.
-pekr-