Title: A Brief History of Fusebox
1A Brief History of Fusebox
- Needed way for others to inherit my applications
- Created architecture that would be understood and
maintainable
2A Brief History of Fusebox
- Moved into building with Steve Nelson
- Discussion on cf-talk about creating a modular
architecture - Fusebox.org went online
3Benefits of using Fusebox
- Have a developed architecture
- Flexible enough to modify to your needs
- Becoming widespread that new team members may not
have to learn from scratch - Created by developers (this means you!)
4Using Fusebox for eCommerce
5Using Fusebox for eCommerce
- Analyze and design
- Implement structure
- Expand and maintain
6Analyze and Design
- More Design Less Time Less Money
- Most time and money spent fixing flaws missed
during design - Fusebox encourages design up front
7Determine the players and props (objects)
8Determine the actions of the objects
9Determine the attributes required by the objects
10Can represent objects with UML
11Implementing the Structure
- Creation of each object
- Joining the objects within the site
- Calling individual objects
12Creating an object
- From our object model
- Shopping cart
- Attributes.Fuseaction
- View Cart
- Add Item
- Remove Item
- Clear cart
13Creating an object
- To the objects file (/shoppingcart/index.cfm)
- ltcfparam name"attributes.fuseaction"
default"attributes.fuseaction"gt - ltcfswitch expression"attributes.fuseaction"gt
- ltcfcase value"ViewCart"gt lt/cfcasegt
- ltcfcase value"addItem"gt lt/cfcasegt
- ltcfcase value"RemoveItem"gt lt/cfcasegt
- ltcfcase value"UpdateCart"gt lt/cfcasegt
- ltcfcase value"ClearCart"gt lt/cfcasegt
- lt/cfswitchgt
14Creating an object
- Then adding the fuses or modules
- ltcfparam name"attributes.fuseaction"
default"attributes.fuseaction"gt - ltcfswitch expression"attributes.fuseaction"gt
- ltcfcase value"ViewCart"gt
- ltcfinclude template"dsp_Cart.cfm"gt
- lt/cfcasegt
- ltcfcase value"addItem"gt
- ltcfinclude template"act_addItem.cfm"gt
- ltcflocation url "index.cfm?Fuseactionviewcart"
gt - lt/cfcasegt
- ltcfcase value"RemoveItem"gt
- ltcfif BasketItems.recordCountgt
- ltcfmodule template"act_removeItem.cfm"
ItemID"attributes.ItemID"gt - lt/cfifgt
- ltcflocation url "index.cfm?Fuseactionviewcart"
gt - lt/cfcasegt
15Creating an object
- Or a much simpler version
- /info/index.cfm
- ltcfinclude template"app_locals.cfm"gt
- ltcfinclude
- template"dsp_attributes.fuseaction.cfm"gt
16Containership of objects
17Containership of objects
- /products/index.cfm
- app_locals.cfm
- /app_globals.cfm
- qry_search.cfm
- dsp_search_results.cfm
- dsp_product_display.cfm
- qry_product_details.cfm
18Tying the objects together
eBags
Shopping cart
Products
Customers
Orders
19Tying the objects together
Each objects app_locals includes the sites
app_globals
eBags
App_Globals
Shopping cart
Products
App_locals
App_locals
Customers
Orders
App_locals
App_locals
20Tying the objects together
21Calling the objects
- URL Sports Bags /search/index.cfm?fuseactions
earchCategoryID4 - ltcflocation url/orders/index.cfm?fuseactionshow
Confirmationgt - ltcfinclude template"/shoppingcart/act_check_for_B
asket.cfm"gt - ltcfmodule template/shoppingcart/act_check_for_Ba
sket.cfm"gt
22Quotes from Users
- "Fusebox allows our developers to leverage the
strengths of standard techniques and practices to
deliver a better product along a faster
timeline. -Joshua Cyr - "We are integrating Fusebox into all of our
projects large and small. By building in
"modularity" to the code structures and programs
from the beginning, we have been able to speed
our development times and create better and
better systems that are very easy to revise and
modify, even for rookie CFers. -Truman Esmond - "As a team of developers, with different styles,
fusebox allowed us to follow a common path,
increasing the coordination of projects, while
decreasing time spent understanding each others
code. -Micheal Morris - Automated Graphic
Systems, Inc.
23Fusebox resources
- the site - http//www.fusebox.org
- Mailing list - fusebox_at_houseoffusion.com
- Forums - http//www.fuseware.com/support/Forums/In
dex.cfm?cfapp2