ColdBox?
April 15, 2007 · 16 Comments
Recently I've been getting an increasing number of requests for my thoughts on the ColdBox application framework by Luis Majano. I've really only given it a cursory glance because, well, I've already spent a lot of time evaluating and using lots of other frameworks and I just didn't have space and time to start in on a brand new framework.
I was impressed by the amount and depth of documentation that Luis has created - there is also a good roadmap for folks new to the framework, listing articles to read and tutorials to follow.
Since I have not actually tried the framework, I'd like to hear from any of you who have tried it. Did you switch to ColdBox from another framework? Did you try ColdBox and decide not to use it? What do you like? What don't you like?
Tags: coldfusion

16 responses so far ↓
1 zac spitzer // Apr 16, 2007 at 12:09 AM
i've been using model-glue and i find the MVCX (meaning Model, Views, Controller AND XML) somewhat frustrating as it's not really DRY.
I like the approach of using CFML to define the application, CFML is just a lot more powerful. I don't want to being using XML as a programming language.
a lot of the XML vocabs for CFMX frameworks are just a subset of CFML, without all the functionality of CFML.
When google guice was released i saw a comment saying how great it was to not have to keep switching back to the struts xml file, which rang true with me.
being able to set values in the requestcontext directly feels a bit like old school CF
using eh (eventHandler) as a prefix for controllers looks ugly, but that's just a personal preference
just starting to try it today...
2 Michael O'Neil // Apr 16, 2007 at 4:30 AM
Most of my development in the past couple of years has been in Model-Glue and Fusebox, in the years before that, and switching to ColdBox has been an easy transition. Its integration with ColdSpring is clean and simple to use, the documentation is LENGTHY and helpful with numerous examples, and its performance and debugging output push it clear of the other frameworks.
3 Adam Fortuna // Apr 16, 2007 at 6:40 AM
As for the framework itself it's strangely simple in how it just works. One layout, one view, actions automatically call a specific method in a controller -- and that's pretty much it? Far more complexity when you dig into things of course, but for the basics it's easy to grasp. Think it lowers the barrier to entry too. I really like the idea of just writing the controllers and having which is called based on the URL though. Since most logic in a service layer already, it makes it easy to try to keep it clean, rather than trying to make small events. So far I'm impressed with it.
4 Damien McKenna // Apr 16, 2007 at 7:03 AM
5 Rob Symonds // Apr 16, 2007 at 7:17 AM
What I like about ColdBox:
- Very simple to understand Controllers and Event Handlers.
- Event Handlers defined in a CFC instead of XML. I don't like the way other frameworks make use of XML.
- Very good documentation.
- Built in logging.
- The view rendering is easy to understand.
- Good support for internationalization.
There is a lot more to the framework but I haven't had the need to explore past the basics at this point.
6 Terry Schmitt // Apr 16, 2007 at 8:05 AM
I have primarily been using Fusebox 4+ for all of my apps and find that Coldbox has been a relatively easy transition.
Reasons for trying Coldbox:
- I wanted to try a new framework, simply for my own education
- Wanted a framework to force me into the OOP world. I put that on the back burner for far too long and decided it was time to jump.
I, too, am extremely impressed with the documentation and example code/snippets. What I can't find in the docs, I have found in the numerous, well commented sample apps.
I read all the docs prior to starting any code and found them to be clear and flowed well. It's obvious that Luis has put major time into the documentation. While one of the newest frameworks, it probably has the most complete documentation.
I really like the CFC based controller, leaving XML for the application configuration.
I like the view rendering mechanism, which feels similar to Fusebox. (I need more time on this for more complex layouts)
No parsed files to worry about is nice.
Coldspring integration appears nice, although I am a Coldspring fledgling. (I'm using Coldspring and Transfer in my first app)
Speed seems quite fast when in full development mode.
Miss the URL reload plugin for Firefox!
Still a little confused on caching. (I believe the docs were updated this weekend) The caching gets even deeper when you throw in Coldspring and Transfer and their caching abilities.
The previously mentioned "eh" prefix is not required in 2.0.0, so you can use your own naming convention for the CFCs.
Two thumbs-up so far!
Terry
7 Oscar Arevalo // Apr 16, 2007 at 12:16 PM
However, what I think is by far the greatest strength of Coldbox is the simplicity by which it implements the MVC approach. The current version of Coldbox contains lots of great bells and whistles, but the real power relies on the overall breakdown of how the application works:
- A single and generic front controller that can be reused as-is between applications,
- Cleanly defined event handlers for application-specific logic, in which every application action is clearly defined as a method on an event handler's cfc.
- Separation of the application's visual output between page layouts and views.
Having all these parts of an application clearly defined and structured makes the application a lot clearer to understand and follow, even when there is no prior knowledge of Coldbox. Furthermore, this kind of separation and the minimal reliance on XML dialects and obscure framework-specific constructs allow for (God forbid!) porting a Coldbox application away into some other MVC environment if the need arises.
Now, add on top of that: event handler caching, autoupdates, integrated logging, a dashboard, an extensive plugins library, coldspring and Transfer integration and you definitely have a killer "framework" in your hands.
8 Damien McKenna // Apr 16, 2007 at 1:44 PM
9 Sana // Apr 16, 2007 at 2:29 PM
Most importantly road-map of coldbox, soon there will be more things which none of other frameworks holds at one time.
ColdBox built-in cache module, extremely informative debuging, plugins->javaloader,messaging system, session, client management,bean factory, i18n, webservices, stringbuffer and many more cool plugins.
and coming transfer plugin, event based system, event raise, ses Friendly URLs, event caching and more.
coldbox does not require any prior knowledge of using any framework and this is really positive aspect of coldbox.
10 Sean Corfield // Apr 16, 2007 at 5:23 PM
Fusebox already has lexicons for Reactor and Transfer and ColdSpring, support for SES URLs, fairly descriptive debugging output and lots of plugin points.
With Fusebox's new website in development and an all-new set of documentation also in the works, there's a lot on the Fusebox roadmap!
11 Ken Dodds // Apr 17, 2007 at 10:08 AM
12 John Allen // Apr 18, 2007 at 9:08 AM
I'm addicted.
13 kola // Apr 20, 2007 at 7:58 AM
14 Andrew // Apr 21, 2007 at 12:37 AM
But now, for all the reasons stated above, I am going to dive into ColdBox. It feels (smells) right.
Well done Luis.
15 Clint // May 24, 2008 at 1:01 PM
16 Christian N. Abad // Jun 21, 2010 at 9:42 AM
Well, I've been avoiding CF Frameworks like The Plague for many years now. However, I've worked with Model-Glue, Mach II, FuseBox, and a couple of "home grown" frameworks on occasion, and now I find myself thinking about using a framework for a new project I'm working on...
So, I'm going to take a deep dive into the ColdBox.org website to see if this is something I want to pursue. I'm going to start my evaluation now, and will post my findings in a few days...
Cheers!
~Christian
Leave a Comment