31
Building Fusebox Frameworks Jeff Peters [email protected]

Building Fusebox Frameworks

Embed Size (px)

DESCRIPTION

Building Fusebox Frameworks. Jeff Peters [email protected]. 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 - PowerPoint PPT Presentation

Citation preview

Page 1: Building Fusebox Frameworks

Building Fusebox Frameworks

Jeff Peters

[email protected]

Page 2: Building Fusebox Frameworks

What is Fusebox?

• An Emerging Standard

• A Way to Think About Web Applications

• A Way to Organize Development

• A Way to Manage Dev Projects

Page 3: Building Fusebox Frameworks

What is Fusebox?

• An Emerging Standard

• A Way to Think About Web Applications

• A Way to Organize Development

• A Way to Manage Dev Projects

Page 4: Building Fusebox Frameworks

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

Page 5: Building Fusebox Frameworks

What is Fusebox?

• An Emerging Standard

• A Way to Think About Web Applications

• A Way to Organize Development

• A Way to Manage Dev Projects

Page 6: Building Fusebox Frameworks

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

Page 7: Building Fusebox Frameworks

What is Fusebox?

• An Emerging Standard

• A Way to Think About Web Applications

• A Way to Organize Development

• A Way to Manage Dev Projects

Page 8: Building Fusebox Frameworks

A Way to Organize Development

• Great for team development

• New team members can learn app quickly

• Revisiting old apps is much easier

Page 9: Building Fusebox Frameworks

What is Fusebox?

• An Emerging Standard

• A Way to Think About Web Applications

• A Way to Organize Development

• A Way to Manage Dev Projects

Page 10: Building Fusebox Frameworks

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

Page 11: Building Fusebox Frameworks

Fusebox Frameworks

• Main application

• Circuit apps

• Fuseactions

• Fuses

• Fusebox File

Page 12: Building Fusebox Frameworks

Fusebox Frameworks

• Main application

• Circuit apps

• Fuseactions

• Fuses

• Fusebox File

Page 13: Building Fusebox Frameworks

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

Page 14: Building Fusebox Frameworks

Fusebox Frameworks

• Main application

• Circuit apps

• Fuseactions

• Fuses

• Fusebox File

Page 15: Building Fusebox Frameworks

Circuit Apps

• Have specific areas of responsibility

• Each can contain a variety of fuseactions

• Think of them as the breakers in a power panel

Page 16: Building Fusebox Frameworks

Fusebox Frameworks

• Main application

• Circuit apps

• Fuseactions

• Fuses

• Fusebox File

Page 17: Building Fusebox Frameworks

Fuseactions

• Represent specific actions to be performed

• Each requires one or more fuses

• Think of them as the wires

Page 18: Building Fusebox Frameworks

Fusebox Frameworks

• Main application

• Circuit apps

• Fuseactions

• Fuses

• Fusebox File

Page 19: Building Fusebox Frameworks

Fuses

• Individual CF files

• May be app, dsp, act, qry or “roll your own”

• Think of them as lights, switches, motors, etc.

Page 20: Building Fusebox Frameworks

Fusebox Frameworks

• Main application

• Circuit apps

• Fuseactions

• Fuses

• Fusebox File

Page 21: Building Fusebox Frameworks

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)

Page 22: Building Fusebox Frameworks

Fusedoc

• Standard for documenting fuses

• Based somewhat on JavaDoc

• Details fuse responsibilities and attributes

Page 23: Building Fusebox Frameworks

Sample Fusedoc

<!---|| BEGIN FUSEDOC ||

|| Properties ||Name: dsp_showCatalog.cfmAuthor: [email protected]

|| 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 ||--->

Page 24: Building Fusebox Frameworks

Mind Mapping

• Free-form outlining

• Framework visualization

• VisualMind, MindMapper Plus, etc.

Page 25: Building Fusebox Frameworks

Sample Mind Map

Page 26: Building Fusebox Frameworks

Fuseminder

• Reads text outline file

• Builds Fusebox framework

Page 27: Building Fusebox Frameworks

Fuseminder Syntax

• <cf_fuseminder outline=“myFile.txt”>

• Optional attributes:– Location ( string; location of main application

fusebox)– Verbose ( “yes” | “no” )– Indenter ( string; outline’s indent string.

Default is two spaces )

Page 28: Building Fusebox Frameworks

Sample Outline

BookEm:[email protected] Catalog showCatalog dsp_showCatalog.cfm <!--- || BEGIN FUSEDOC || || Properties || Name: dsp_showCatalog.cfm Author: [email protected] || 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

Page 29: Building Fusebox Frameworks

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

Page 30: Building Fusebox Frameworks

Fuseminder Demo

Page 31: Building Fusebox Frameworks

Scintillating Q&A