Building Fusebox Frameworks Jeff Peters
What is Fusebox? An Emerging Standard A Way to Think About Web Applications A Way to Organize Development A Way to Manage Dev Projects
What is Fusebox? An Emerging Standard A Way to Think About Web Applications A Way to Organize Development A Way to Manage Dev Projects
An Emerging Standard Created by Steve Nelson and a gang of hundreds Continues to develop and expand “Is not a religion” – Hal Helms “May actually be a cult” – Michael Smith
What is Fusebox? An Emerging Standard A Way to Think About Web Applications A Way to Organize Development A Way to Manage Dev Projects
A Way to Think About Web Applications Provide a standard way to organize an application Control program flow in a very uniform manner Group like functionality together
What is Fusebox? An Emerging Standard A Way to Think About Web Applications A Way to Organize Development A Way to Manage Dev Projects
A Way to Organize Development Great for team development New team members can learn app quickly Revisiting old apps is much easier
What is Fusebox? An Emerging Standard A Way to Think About Web Applications A Way to Organize Development A Way to Manage Dev Projects
Modularity allows much better development control Pre-code prototyping and documentation Dev manager can make assignments that make sense
Fusebox Frameworks Main application Circuit apps Fuseactions Fuses Fusebox File
Fusebox Frameworks Main application Circuit apps Fuseactions Fuses Fusebox File
Main Application Many Fusebox apps have a two-tiered approach Main app controls interaction of circuit apps Think of it as the main power junction
Fusebox Frameworks Main application Circuit apps Fuseactions Fuses Fusebox File
Circuit Apps Have specific areas of responsibility Each can contain a variety of fuseactions Think of them as the breakers in a power panel
Fusebox Frameworks Main application Circuit apps Fuseactions Fuses Fusebox File
Fuseactions Represent specific actions to be performed Each requires one or more fuses Think of them as the wires
Fusebox Frameworks Main application Circuit apps Fuseactions Fuses Fusebox File
Fuses Individual CF files May be app, dsp, act, qry or “roll your own” Think of them as lights, switches, motors, etc.
Fusebox Frameworks Main application Circuit apps Fuseactions Fuses Fusebox File
The control center for an app Basically a big CFSWITCH on application.fuseaction Knows what to call and what to call NEXT (XFAs)
Fusedoc Standard for documenting fuses Based somewhat on JavaDoc Details fuse responsibilities and attributes
Sample Fusedoc <!--- || BEGIN FUSEDOC || || Properties || Name: dsp_showCatalog.cfm Author: || Responsibilities || I display the current catalog contents and allow the user to get details about specific items. || Attributes || --> XFA.showItemDetails: STRING (a fuseaction) <-- ItemID: INTEGER NOT NULL (item's catalog ID number) || END FUSEDOC ||--->
Mind Mapping Free-form outlining Framework visualization VisualMind, MindMapper Plus, etc.
Sample Mind Map
Fuseminder Reads text outline file Builds Fusebox framework
Fuseminder Syntax Optional attributes: –Location ( string; location of main application fusebox) –Verbose ( “yes” | “no” ) –Indenter ( string; outline’s indent string. Default is two spaces )
Sample Outline Catalog showCatalog dsp_showCatalog.cfm <!--- || BEGIN FUSEDOC || || Properties || Name: dsp_showCatalog.cfm Author: || Responsibilities || I display the current catalog contents and allow the user to get details about specific items. || Attributes || --> XFA.showItemDetails: STRING (a fuseaction) <-- ItemID: INTEGER NOT NULL (item's catalog ID number) || END FUSEDOC ||---> showItem qry_getItem.cfm
Generated Framework myDir Main Fusebox (index.cfm) myDir\Cart myDir\Catalog myDir\Users myDir\Checkout Circuit Fusebox (index.cfm) Fuse files w/Fusedocs Circuit Fusebox (index.cfm) Fuse files w/Fusedocs Circuit Fusebox (index.cfm) Fuse files w/Fusedocs Circuit Fusebox (index.cfm) Fuse files w/Fusedocs
Fuseminder Demo
Scintillating Q&A