Fusebox 3 Development Methodology www fusebox org Fusebox
Fusebox 3 Development Methodology : www. fusebox. org Fusebox 3. 0 groffman@metarail. com With thanks to David Laing, Hal Helms, Nat Papovich, and others More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Agenda • Quick revision of core fusebox concepts • Fusebox 3 (FB 3) by example – The colours app • The core files – fbx_fusebox 30_*. cfm • The map – fbx_Circuits. cfm • The fusebox – fbx_Switch. cfm • The building blocks - fuses • The documentation – Fusedo. X • Nested settings – fbx_Settings. cfm • Nested layout – fbx_Layout. cfm More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org The Fusebox Philosophy There are two ways of constructing a software design: • One way is to make it so simple that there are obviously no deficiencies, • and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. C. A. R. Hoare More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Point-to-Point Routing New York Tampa More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Hub-and-Spoke System Chicago Seattle New York Los Angeles Tampa More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Point-to-Point Programming More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Fusebox Programming More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Nested Fusebox Programming More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Fusebox Architecture Fuseactions Circuits Fuses More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Fusebox 3 • Consolidation of ideas of FB 2 • Standardised frozen core files • Polished methods for most web apps • Fusebox Conference #1, 20 th Oct 2001 • Whitepaper (Conference in a box – www. halhelms. com) • Newbies guide. • The Fusebox structure More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Fusebox : The Colours App More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org FB 3 core files : fbx_fusebox 30_*. cfm The application server for the fusebox framework • Handles • Environment variables • Nesting • Layout • Different versions for different platforms. • Standard, static – maintained by FBSteer. • 2 modes : Fusebox. suppress. Errors = true/false More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org The core support files • Application. cfm : • Prevents accessing fuses directly • index. cfm : • Decides which fusebox core to include • Sets default fuseaction • fbx_savecontent. cfm • Emulates CF 5 Save. Content • ses. Converter. cfm • index. cfm/fuseaction/cart. add/ID/653 More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org The map file : fbx_Circuits. cfm Provides a map to the location of each circuit • Each circuit has a unique name • index. cfm? fuseaction=circuit. Name. fuse. Action • Fusebox. Circuits. <circuitname> More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org The fusebox : fbx_Switch. cfm • Just the <cfswitch> from FB 2’s index. cfm • Every circuit has one • Switches on Fusebox. fuseaction • Includes fuses to perform particular action More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org The building blocks : Fuses Official • dsp_ : HTML display – coded by HTML coder • act_ : CFML logic – coded by CF coder • qry_ : DB interaction – coded by DBA (Query. Sims) Unofficial • url_ : sometimes used for conditional redirections • lay_ : prefix for layout files. More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org The Documentation : Fusedo. X • Officially adopted the XML Fusedocs spec • Explains the “what” of the fuse • What it does (<responsibilities></responsibilities) • What it needs (<in></in>) • What it produces (<out></out>) • CF Studio VTML & help from www. fusebox. org More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Circuit level settings : fbx_Settings. cfm FB 3 core traverses down nested tree, executing fbx_Settings. cfm as it goes • Switch settings based on is. Home. Circuit • Good place for security logic, breadcrumbs etc More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Nested Layout : fbx_Layout. cfm • FB 3 core traverses up the tree, wrapping each fbx_Layout. cfm around Fusebox. layout as it goes • fbx_Layout. cfm a kind of switch, which can include different layouts in different circumstances (ie, suppress. Layout) More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Referencing files • Fuses in same directory – just <cfinclude template=“dsp_hello. World. cfm”> • Fuses in other circuits – <cfinclude template=“#Fusebox. root. Path#/circuitname/act_a. Fuse. cfm”> • fuseactions of other circuits <cfmodule template=“#Fusebox. root. Path#index. cfm” fuseaction=“circuit 2. do. Stuff” suppress. Layout=“true”> HTML includes – all relative to home circuit – <img src=“#Fusebox. current. Path#/images/monkey. jpg”> More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Limitations of FB 3 • Does not support <CFFLUSH> • Does not support <CFCONTENT> More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org Summary • Quick revision of core fusebox concepts • Fusebox 3 (FB 3) by example – The colours app • The core files – fbx_fusebox 30_*. cfm • The map – fbx_Circuits. cfm • The fusebox – fbx_Switch. cfm • The building blocks - fuses • The documentation – Fusedo. X • Nested settings – fbx_Settings. cfm • Nested layout – fbx_Layout. cfm More on Fusebox at www. halhelms. com
Fusebox 3 Development Methodology : www. fusebox. org The Fusebox Community Websites • www. fusebox. org • www. bombasbee. com • www. meta-magic. com/cgi-bin/fusewiki Mailing lists • fusebox-subscribe@topica. com • fbcommunity@topica. com • Steer. FB-subscribe@topica. com • PHP-fusebox@yahoogroups. com • fusebox_asp-subscribe@topica. com More on Fusebox at www. halhelms. com
- Slides: 23