Switch-box is a framework. The CF5 version of the files are on the
developer exchange. The all framework code works with CFMX6 and CFMX 6.1.
The framework development tool will not work with CF6 because it uses
CFTree. There the version on the exchange uses Access, but on request I can
provide the same but using SQL Server. Also, the framework development tool
uses _javascript_ instead of CFTree.
Switch-box gets little press largely because I don't spend time promoting
it. Nevertheless here are some things to consider when choosing your
framework.
-- the single biggest problem with building a Web application is actor
messages. It is not CF code, nor DB design, nor Web page layout, nor
networks, nor performance.
-- a message into a Web application is a trigger for some execution strategy
-- Switch-box's premise is an Object Orient Execution strategy triggered
by the message.
-- Switch-box defines message vectors as the format for detailing the
execution strategy.
-- Switch-box enables semantic messaging by using named symbols for the
message.
-- Execution strategies are managed as database elements
In Switch-box 3.1, I introduced the Logical Framework Tool (LFT). This tool
builds the entire execution framework as a logical model in database
tables. This feature of putting the model in database provides an
environment for managing the design and the messages. The LFT has built-in
copy, cut, paste, and generate for object nodes. The copy and paste means
you can spend your time designing a execution plan in one design then move
that design to another design. Since the design is a logical model, the
design cost is nearly invisible. (If you do nothing else with the LFT, you
might like to study the code for database nested trees and cut, copy and
paste in trees.)
The LFT's code generation lets you build an implementation code-frame that
demonstrates the logical design. The code-frame uses the Switch-box custom
tags. Since the LFT generates the code-frame, these tags require no extra
programming. In the Switch-box methodology, structure is distinguished
from function. Designers build the structure framework, programmers
build the function.
Getting back to messages. When a request message arrives at the
application, the code-frame goes to work. The first thing for the
code-frame does is query the logical-frame to make sure the message request
is defined and if so is it active and does the requester have permission.
If these tests fail, in the logical-frame is redirection message. If the
message is valid, then the execution vector is forwarded back to the
code-frame for execution. The early test on the request message is a
Switch-box feature that saves resources. It also allows building some
business rules right into the framework itself.
Technical note. Switch-box message vectors use a dotted notation like other
OO implementations. The difference is that the dot is a switch operator not
a dot operator. File directory path slashes are closer to switch operator
notions than dot operators.
Joseph
At 11:49 AM 3/9/2004, you wrote:
>Hi All-
>
>I know this was discussed a bit a couple weeks ago, but I would like to
>rehash it a little. I'm working for a local government agency here and
>to this point, there really has not been any sort of framework or coding
>standards present in the Web department. One of my first tasks is to
>help decide what framework to adopt, and also to be able to train the
>rest of the developers on it.
>
>I've used Fusebox for years and have been very happy with it, but at the
>same time I want to give everything a fair chance as I help this
>organization make the decision. I've done some googling and come up with
>the following frameworks for ColdFusion, and am wondering if any of you
>have experience, opinions, or additions with/to these frameworks.
>
>- Fusebox
>- MachII
>- Blackbox (http://www.cfblackbox.com)
>- BatFink (http://www.mossyblog.com/downloads.cfm)
>- onTap (http://www.turnkey.to/ontap/)
>- SmartObjects
>
>Thanks in advance,
>
>-Bret
>
>----------
>[
[Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]