Home Contact

PD Versus-inspired Logophilduba.com

Adventures in Web Application Develompent by Phil Duba

Recent Entries

Popular Entries

Top Commenters

  • Nathan Mische (12)
  • CFFusionDev (6)
  • CFdevfusion (6)
  • Peter Bell (4)
  • Sean Corfield (3)
  • Rey Bango (3)
  • Terrence Ryan (3)
  • ah7866 (3)
  • Scott (2)
  • Jim Priest (2)

Slideshows

Dresser/Changing Table...
Images related to the lay...
Nursery renovations...
Pool Surprises...

Sponsored Links

Text Link Ads

CFUnited: ColdBox Framework 101

Posted On June 21, 2008 10:36 AM By Phil in CFUnited

Friday afternoon started off by me attending Luis Majano's Coldbox Framework 101 presentation. I must admit, I have never really looked at the framework before and wanted to see how it differs from the other frameworks. Luis gave a good overview of his framework and covered topics to be released in the next version (2.6 I believe). Anyways, here are my notes for this presentation:

by Luis Majano. covers 2.6 pending release.

Why was it created
- didn't start as an OS project
- designed back in 2005
- internal framework

What is ColdBox
- event-driven
- follows OO principles and best practices
- Conventions based framework
    - based on code controllers and not xml dialects
    - is a non-intrusive framework
- is a mvc framework but also has software tools
- a number of plug-ins to assist with integration with other technologies

Documentation
- mandatory
- increases adaptation rate
- over 38 step by step guides
- over 500 pages
- extremely important in the framework development

Custom Conventions
- use pre-determined set of folder names and locations
- ColdBox knows where to find the code it needs, no need of declaring logic or applicaiton flow in XML
- can create own application layouts
- can create per-application conventions

Code Controllers
- just CFCs
- new event = new function
- makes them more reusable and unit testable
- results in multiple applications running

Debugging Tools
- shows ColdBox under the hood
- gives feedback on some monitors - cache, cacheViewer, execution profile - across the whole request
- has logging facilities
- can use traces to see how data changes when events changes

Smart Caching
- more object caching, different timeouts
- Uses new JVM, multi-threading in CF8
- uses JDK 1.5>
- JVM memory aware

Software Toolkit
- logging facilities
- SES URLs
- Helper classes for storage
- security mechanism
- IoC

ColdBox Proxy
- interacts with RIA technologies
- can allow for creation of subscriber/publisher models
- does AJAX CFC data binding

Dashboard
- separate application & license (will be open source in its next release)
- built on ColdBox technology
- Documents ColdBox application API
- checks for updates

Request Collection
- takes form and urls and creates one data structure
- all parts of framework has access to it
- can set the layouts, views, etc.

Event Handler
- just a CFC
- events = public methods
- uses caching by cffunction metadata
- does all the piping to get your application to work

Layouts & Views
- it is a layout manager
- can declare implicit layouts beforehand or at runtime
- can use in folder which can really help in separating applications, part of the whole use a core
- can be rendered either as a view itself or as a content variable

Plugins
- are also CFCs

Interceptors
- wrap themselves around different execution points within an event
- this is how SES URLs are done in 2.6
- can be chained
- can be done a runtime (register/unregister), all using API
- a number of core ones, SES URLs, autowire, security, execution tracer

Demo
- Showed how to create an app using the dashboard
- it really isn't a black box, everything is shown
- syntax highlighting CFEclipse
- showed the sample application
- showed a Flex application

I think this framework, as well as Sean Corfield's Edmund, create a new way of thinking about how to build and organize applications in ColdFusion (CFML). Using convention over XML configurations, in theory, should allow for more natural migration between frameworks/application and/or usage of components outside of ColdFusion.

Comments

Post Your Comments

Captcha

If you subscribe, any new posts to this thread will be sent to your email address.