a brief history of fusebox zneeded way for others to inherit my applications zcreated architecture...

Post on 03-Jan-2016

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

A Brief History of Fusebox

Needed way for others to inherit my applicationsCreated architecture that would be understood and maintainable

A Brief History of Fusebox

Moved into building with Steve NelsonDiscussion on cf-talk about creating a modular architectureFusebox.org went online

Benefits of using Fusebox

Have a developed architectureFlexible enough to modify to your

needsBecoming widespread that new team

members may not have to learn from scratch

Created by developers (this means you!)

Using Fusebox for eCommerce

Using Fusebox for eCommerce

Analyze and designImplement structureExpand and maintain

Analyze and Design

More Design = Less Time = Less Money

Most time and money spent fixing flaws missed during design

Fusebox encourages design up front

Determine the players and props (objects)

Products Customers

Shopping cart Orders

Determine the actions of the objects

ProductsSeachDisplay

CustomersJoinLoginEdit Information

Shopping cartView CartAdd ItemRemove ItemClear cart

OrdersGet Shipping and BillingReview OrderProcess OrderShow Confirmation

Determine the attributes required by the objects

ProductsAttributes.FuseactionSeachDisplay

CustomersAttributes.FuseactionJoinLoginEdit Information

Shopping cartAttributes.FuseactionView CartAdd ItemRemove ItemClear cart

OrdersAttributes.FuseactionGet Shipping and BillingReview OrderProcess OrderShow Confirmation

Can represent objects with UML

Implementing the Structure

Creation of each objectJoining the objects within the siteCalling individual objects

Creating an object

From our object model…

Shopping cartAttributes.FuseactionView Cart Add ItemRemove ItemClear cart

Creating an object

To the object’s file (/shoppingcart/index.cfm)

<cfparam name="attributes.fuseaction" default="#attributes.fuseaction#">

<cfswitch expression="#attributes.fuseaction#"><cfcase value="ViewCart"> </cfcase><cfcase value="addItem"> </cfcase><cfcase value="RemoveItem"> </cfcase><cfcase value="UpdateCart"> </cfcase><cfcase value="ClearCart"> </cfcase>

</cfswitch>

Creating an objectThen adding the fuses or modules

<cfparam name="attributes.fuseaction" default="#attributes.fuseaction#">

<cfswitch expression="#attributes.fuseaction#"><cfcase value="ViewCart">

<cfinclude template="dsp_Cart.cfm"></cfcase><cfcase value="addItem">

<cfinclude template="act_addItem.cfm"><cflocation url ="index.cfm?Fuseaction=viewcart">

</cfcase><cfcase value="RemoveItem">

<cfif BasketItems.recordCount><cfmodule template="act_removeItem.cfm"

ItemID="#attributes.ItemID#"></cfif><cflocation url ="index.cfm?Fuseaction=viewcart">

</cfcase>

Creating an objectOr a much simpler version…

/info/index.cfm

<cfinclude template="app_locals.cfm"><cfinclude

template="dsp_#attributes.fuseaction#.cfm">

Containership of objects

Containership 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

Tying the objects together

eBags

Shopping cart

Products

Customers Orders

Tying the objects together

eBags

Shopping cart

Products

Customers OrdersApp_locals App_locals

App_localsApp_locals

App_Globals

Each objects’ app_locals includes the site’s app_globals

Tying the objects together

Calling the objectsURL: Sports Bags = “/search/index.cfm?

fuseaction=search&CategoryID=4”

<cflocation url=“/orders/index.cfm?fuseaction=showConfirmation”>

<cfinclude template="/shoppingcart/act_check_for_Basket.cfm">

<cfmodule template=“/shoppingcart/act_check_for_Basket.cfm">

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

Fusebox resources

the site - http://www.fusebox.orgMailing list -

fusebox@houseoffusion.comForums -

http://www.fuseware.com/support/Forums/Index.cfm?cfapp=2

top related