Setup a ColdFusion Application
using Fusebox MVC architecture
Presented by
Manjeet Kumar Mahto.
What will we discuss?
●
What Is a Framework and why we need it?
●
What is FuseBox
●
Installing FuseBox
●
MVC In FuseBox
●
Setting up CF App using Fusebox
Framework
●
it makes it easier to work with complex technologies
●
it ties together a bunch of discrete objects/components
into something more useful
●
it forces the team (or just me) to implement code in a
way that promotes consistent coding, fewer bugs, and
more flexible applications
●
everyone can easily test and debug the code, even code
that they didn't write
What is a FuseBox?
●
Fusebox is a framework for building web
applications.
●
It is meant to make your applications easier to
create and maintain.
●
It also makes team development easier.
●
It does this by helping you structure your application
and break things down into discreet pieces.
FuseBox Elements
●
A Fusebox application is made up of Circuits.
●
A Circuit corresponds to a directory in your
application. Within each circuit are one or more
Fuseactions.
●
A Fuseaction is a request handler. And finally, a
Fuseaction does its work by executing one or
more Fuses.
●
Fuses are individual CFML templates such as
display files.
FuseBox Installation
When installing Fusebox, the most important question is
where do you want your fusebox core files as well as the
supporting files from the skeleton to be placed in your
directory structure?
● In a shared directory that several applications can
share. (This will require a web site mapping)
● Within an application and inside the web root (Some
shared servers only give you the web root).
● Within an application, but above the web root.
How to install Fusebox?
● Download the core files from the official Fusebox
Website.
● Unzip the core files.
● Put the 'fusebox5' folder in the root of your application.
● Create the folder structure in M-V-C.
● Create Fusebox.xml.cfm file at the root of your folder
structure.
● Inside each folder create Circuit.xml.cfm file.
● Add corresponding rest of the files in each of their
respective folders of Model or View Or Controller.
Fusebox.xml.cfm
For configuring your application: setting application parameters
and declaring classes, plugins and global fuseactions.
<fusebox>
<circuits>
</circuits>
<classes>
</classes>
</fusebox>
Now this file is sort of like the brain of the fusebox. It will house
the information that each circuit will do.
<circuit access="public">
<fuseaction name="welcome">
<include template="welcome.cfm" />
</fuseaction>
</circuit>
circuit.xml.cfm
MVC in FuseBox
Setting up CF App using Fusebox
We are going to follow MVC architecture for setting
up the ColdFusion App using Fusebox.
Are Fusebox and Mach-II or Model-Glue
competing frameworks?
●
Not really. They represent two different approaches to
building an application. Both Mach-II and Model-Glue
require an object-oriented approach to development.
Fusebox does not require an object-oriented approach,
but can support an OO approach if necessary.
●
Important - Fusebox does not force the Model-View-
Controller (MVC) pattern or Object-Oriented
Programming (OOP) on the developer. However, either
or both of these development approaches can be used
with Fusebox.
Development Mode VS Production Mode
●
The mode can be set to various development modes or
"production". The difference is that in development-full-
load mode, the core files reparses the XML files only if
they have changed and re-builds all the Fusebox
memory structures on every request. Development-
circuit-load, does not re-load the fusebox.xml file,
doesn't re-build the Fusebox memory structures but
does reload any circuit.xml files required by the current
request.
Development Mode VS Production Mode
●
In production mode, after the first request the core files
do not reparse or re-build anything. Obviously
production mode is many times faster than either of the
development modes. However, once production mode
has been set, you must tell your application to reparse
the XML to incorporate your changes (and this includes
changing from production mode back to development
mode). Luckily this is pretty easy to do. It's done using a
URL with some special variables attached.
fusebox.password=&fusebox.parseall=true&fusebox.loa
dclean=true&fusebox.execute=true
Model-View-Controller w/out XML
index.cfm:
<cfset FUSEBOX_PARAMETERS.defaultFuseaction =
"main.welcome" />
<cfset FUSEBOX_PARAMETERS.allowImplicitFusebox = true />
<cfinclude template= "/fusebox5/fusebox5.cfm" />
controller/main.cfc:
<cfcomponent>
<cffunction name="welcome">
<cfargument name="myFusebox" />
<cfset myFusebox.do("dsp.welcome") />
</cffunction>
</cfcomponent>
view/dsp/welcome.cfm:
Hello World!
Model-View-Controller w/out XML
References
●
http://www.fusebox.org/index.cfm/fusebox-
downloads/sample-applications/
●
http://tutorial389.easycfm.com/
●
https://www.youtube.com/watch?v=rLbsWRaOC3w
Thanks All
Q & A

Setup ColdFusion application using fusebox mvc architecture

  • 1.
    Setup a ColdFusionApplication using Fusebox MVC architecture Presented by Manjeet Kumar Mahto.
  • 2.
    What will wediscuss? ● What Is a Framework and why we need it? ● What is FuseBox ● Installing FuseBox ● MVC In FuseBox ● Setting up CF App using Fusebox
  • 3.
    Framework ● it makes iteasier to work with complex technologies ● it ties together a bunch of discrete objects/components into something more useful ● it forces the team (or just me) to implement code in a way that promotes consistent coding, fewer bugs, and more flexible applications ● everyone can easily test and debug the code, even code that they didn't write
  • 4.
    What is aFuseBox? ● Fusebox is a framework for building web applications. ● It is meant to make your applications easier to create and maintain. ● It also makes team development easier. ● It does this by helping you structure your application and break things down into discreet pieces.
  • 5.
    FuseBox Elements ● A Fuseboxapplication is made up of Circuits. ● A Circuit corresponds to a directory in your application. Within each circuit are one or more Fuseactions. ● A Fuseaction is a request handler. And finally, a Fuseaction does its work by executing one or more Fuses. ● Fuses are individual CFML templates such as display files.
  • 6.
    FuseBox Installation When installingFusebox, the most important question is where do you want your fusebox core files as well as the supporting files from the skeleton to be placed in your directory structure? ● In a shared directory that several applications can share. (This will require a web site mapping) ● Within an application and inside the web root (Some shared servers only give you the web root). ● Within an application, but above the web root.
  • 7.
    How to installFusebox? ● Download the core files from the official Fusebox Website. ● Unzip the core files. ● Put the 'fusebox5' folder in the root of your application. ● Create the folder structure in M-V-C. ● Create Fusebox.xml.cfm file at the root of your folder structure. ● Inside each folder create Circuit.xml.cfm file. ● Add corresponding rest of the files in each of their respective folders of Model or View Or Controller.
  • 8.
    Fusebox.xml.cfm For configuring yourapplication: setting application parameters and declaring classes, plugins and global fuseactions. <fusebox> <circuits> </circuits> <classes> </classes> </fusebox>
  • 9.
    Now this fileis sort of like the brain of the fusebox. It will house the information that each circuit will do. <circuit access="public"> <fuseaction name="welcome"> <include template="welcome.cfm" /> </fuseaction> </circuit> circuit.xml.cfm
  • 10.
  • 11.
    Setting up CFApp using Fusebox We are going to follow MVC architecture for setting up the ColdFusion App using Fusebox.
  • 12.
    Are Fusebox andMach-II or Model-Glue competing frameworks? ● Not really. They represent two different approaches to building an application. Both Mach-II and Model-Glue require an object-oriented approach to development. Fusebox does not require an object-oriented approach, but can support an OO approach if necessary. ● Important - Fusebox does not force the Model-View- Controller (MVC) pattern or Object-Oriented Programming (OOP) on the developer. However, either or both of these development approaches can be used with Fusebox.
  • 13.
    Development Mode VSProduction Mode ● The mode can be set to various development modes or "production". The difference is that in development-full- load mode, the core files reparses the XML files only if they have changed and re-builds all the Fusebox memory structures on every request. Development- circuit-load, does not re-load the fusebox.xml file, doesn't re-build the Fusebox memory structures but does reload any circuit.xml files required by the current request.
  • 14.
    Development Mode VSProduction Mode ● In production mode, after the first request the core files do not reparse or re-build anything. Obviously production mode is many times faster than either of the development modes. However, once production mode has been set, you must tell your application to reparse the XML to incorporate your changes (and this includes changing from production mode back to development mode). Luckily this is pretty easy to do. It's done using a URL with some special variables attached. fusebox.password=&fusebox.parseall=true&fusebox.loa dclean=true&fusebox.execute=true
  • 15.
    Model-View-Controller w/out XML index.cfm: <cfsetFUSEBOX_PARAMETERS.defaultFuseaction = "main.welcome" /> <cfset FUSEBOX_PARAMETERS.allowImplicitFusebox = true /> <cfinclude template= "/fusebox5/fusebox5.cfm" />
  • 16.
    controller/main.cfc: <cfcomponent> <cffunction name="welcome"> <cfargument name="myFusebox"/> <cfset myFusebox.do("dsp.welcome") /> </cffunction> </cfcomponent> view/dsp/welcome.cfm: Hello World! Model-View-Controller w/out XML
  • 17.
  • 18.