An introduction to the ColdFusion framework created by Sean Corfield.
Presented by Ben Ellefson
ColdFusion developer for 9 years
Twin Cities CFUG Manager
Framework enthusiast
Experience with Fusebox, Model-Glue,
Mach-ii, ColdBox, ColdSpring, Reactor and now FW/1
Disclaimer: Mach-ii fan
ColdFusion MVC Framework
Lightweight – single CFC file (1700 lines)
Convention based instead of configuration based
Flexible code organization
Dissatisfied with current application frameworks
Too bloated
Too complex
Requires XML
Dependent on configuration
Too much overhead for simple apps
org
Contains single framework file
views
Contains section folders
View cfm files within each folder
Application.cfc
Extends org.corfield.framework
Index.cfm
Blank
controllers
Contains cfc for each section
layouts
Contains cfm for each layout
services
Contains cfc for each service
All links direct to /index.cfm
Pages access using ?action=section.item
Section = name of folder within views folder
Item = file within views/section folder
SES URLs available
/index.cfm/section/item/name/value
?action=section.item looks for the method item() in /controllers/section.cfc
Passes the request collection “rc” as a single argument. Struct containing url and form variables, plus more.
Automatically calls before(), startItem(),
Item(), endItem(), after()
Controllers are cached, cleared with
?reload=true
Multiple layouts are available
View Layout: /layouts/section/item.cfm
Section Layout: /layouts/section.cfm
Site Layout: /layouts/default.cfm
Layouts cascade from view to section to site
Cancel cascading by setting request.layout = false
#body# contains current rendered view
Services called from controller by fw.service(“cfc.function",“variable")
Results placed in requet collection “rc” with variable name stated in the call
Receive the request collection “rc” from the controller to display variables populated by the service.
View file called is automatically determined by the action (i.e. section.item)
View file can be changed by calling setView() or setLayout() to call a new action.
Hard to find information
No framework website
Documentation only found through Corfield’s Blog
No community around FW/1
Very little found via Google search
Framework not compatible with CF previous to
9.0.1
Conventions assume small app and do not allow for deep nesting of folders.
Sample and Skeleton apps are poor
Filled with bugs
Too simple to understand how a full app would be built with FW/1
No comments in code
In 6 hours testing for this presentation, I was unable to build one page that had a query in the service passed to the view to display.
Available for download at http://fw1.riaforge.org/
Free for use under the Apache 2.0 License
Latest version requires ColdFusion 9.0.1
Documentation at https://github.com/seancorfield/fw1/wiki