ColdBox and ColdCourse Gotchas

While working on my latest ColdBox application, I had a need to implement friendly URL support for the public facing front-end. This is pretty much a requirement for all of our client sites so it was important to use something that worked really well without coming up with some hacky method.

I turned to ColdCourse after reading several posts about how easy it was to setup and use. I quickly found out its not a plug and play solution, it took some work to get it going properly in my application, although nothing difficult, it was just a little more than I expected after reading the docs. During the setup there were a few things that I ran into that I thought you guys might benefit from reading about. But before I get into that, remember, this is ColdBox specific. I have no experience with using ColdCourse with any other frameworks.

[More]


Why Did I Decide To Use ColdBox? Hmmmm...

In my previous post on porting one of my Fusebox applications over to ColdBox, one of my readers asked the question in the comments:

"Hey Russ,

Curious as to why you are porting from Fusebox to Coldbox? What about Coldbox do you like more than Fusebox if anything?"

I actually started replying to his question in the comments and then I realized I had about 3 paragraphs in my reply already and this might get buried in the comments. So I decided to make it a post to explain my reasons for choosing to use ColdBox over Fusebox for this application and most all of my new applications.

[More]


Porting Fusebox 5 Apps to Coldbox : Controllers

I started poking around Coldbox a couple months ago but only had enough time to see how it operates from a 10,000 foot view. So I decided that I wanted to take another crack at it and really see what it was all about. I figured the best way to do that was to port one of my existing Fusebox 5 apps over to Coldbox so I could get a good comparison. After creating a new application via the Coldbox dashboard and importing it into CFEclipse, I was on my way to porting bliss.

In my opinion, the two frameworks aren't really all that different. Of course I develop all of my Fusebox applications using MVC so that helps quite a bit. One of the biggest differences that I noticed right away is that Fusebox 5 uses XML based controllers where Coldbox uses CFC based controllers. I have to admit after writing literally thousands of XML fuseaction's over the last couple years, I am finding myself smiling every time I write a new method in one of my event handlers for Coldbox. This has been the one single feature of Fusebox that has bugged the crap out of me since it was introduced. And to be fair, I know that Sean Corfield and Team Fusebox are working hard on the new Fusebox 5.5 release which will allow you to use CFC based controllers.

Going into a full feature comparison is beyond the scope of this post so lets look at a couple examples of what I did when porting my application over to Coldbox.

[More]


Ogres Have Layers... Onions Have Layers...

I apologize for the obscure Shreck reference but that scene from the movie pops into my head every-time I start thinking about all of the different layers we code into our applications. I was thinking recently about how many different layers we use and I started to wonder, are we doing this because it truly makes our applications better or simply because we can?

As ColdFusion has progressed as a language, lots of these concepts have started to surface from other types of programming. Seven years ago, no-one was talking about building service layers and domain models in the ColdFusion community, we were so focused on frameworks and trying to increase code re-use. Now its not uncommon for an application to use a framework and MVC to separate the views from the model and use a controller to tie it all together, then throw in a service layer as your model which points to a data access layer and processing logic layer and, well you get the point.

[More]


Frustrations with Fusebox After All These Years...

I've been using Fusebox for well over 6 years now. Its the only framework I have have ever used when developing applications for clients or myself. Its served its purpose well and has always seemed to fit my needs. However, lately I have been running into some things that are frustrating me about it. Mostly when it comes to working with other frameworks for CFC's and throwing in an ORM here and there.

I have been working on an application over the last month or two that I wrote in FB5 and ColdSpring. At first it was fine. Mostly due to the custom lexicons written by Nathan Strutz to instantiate ColdSpring and get beans from the factory right in the XML control file. Then after seeing Mark Mandels Breezo on the Transfer ORM, I decided I wanted to give it a whirl and throw it into the mix. Now this is where things started to get interesting (read aggravating).

[More]


Sniffing the Model-Glue....

I've been coding ColdFusion applications for about 8 years now and I consider myself to be a pretty good developer. I have used Fusebox for every app I have built going all the way back to 1999. I follow pretty sound coding practices and read all the blogs and try to keep up with whats going on in the CF Community. But for some reason, I am just not getting a handle on this Model-Glue thing!

I have spent almost all day today setting up Model-Glue:Unity and trying to get a simple app up and running using a few CFC's and some views. I read the Model-Glue Quickstart in the documentation and managed to get the basic application template up and running but thats about the extent of it. I feel like someone has Model-Glued my head to the table and then flipped it upside down on me.

I know there is something that I am just missing or not grasping that is preventing me from moving forward with it but I cannot put my finger on it. No matter how many times I go through the code, or read a tutorial or refer to the documentation.

Maybe I have just been doing Fusebox for too long and have no experience with any other frameworks. Maybe my brain just thinks in fuses and circuits and then short-circuits when I try to alter the way that I think about an application.

Im not going to give up but, WOW, I certainly need a break so Im going back to doing some Fusebox development for the evening. Ahhh, the comforting feeling of something familiar!


Trac_Fu

After using Trac for sometime now in our production environment, I have come across quite a few things that I like about it and several things that I dislike about it. This being the case, I decided that I would take it upon myself to write my own issue tracker. I am not very good with Python so I could probably rewrite a system in ColdFusion twice as fast as I could modify Trac to do what I want. So the Trac_Fu project has been born. Trac as in "Trac" obviously and Fu as in "coldFUsion". So Im not the most creative namer in the world!

Sticking true to my roots, I am developing it in Fusebox. Im currently using the newly released Fusebox 5 and as of today, Im using Reactor for the back-end model. Progress is pretty good. The stylesheets are mostly done. I have several of the list pages done, most of the database is ready. Speaking of the database, its basically modeled after the Trac database so that I can entertain the idea of porting existing items from Trac to Trac_Fu.

Im using the JavaSVN libraries to hook into subversion as well. Im only going to concentrate on getting the changesets pulled into Trac_fu for the first release. Then the source browser features will follow.

I hope to have some screenshots for you by the first of the week.


FuseBox 5 Officially Released

Sean Corfield has just released the first "official" build of the brand spanking new Fusebox 5 core files. You can download them at Fusebox.org. There is also a skeleton application offered up for download on the same page to help kick start your first FB5 project.

I have been working behind the scenes on a Bug/Issue tracking system written in ColdFusion that is basically a port of Trac and its using FB5 as the framework. All the development so far was based on a general release candidate build that Sean sent me a few weeks ago and so far it has been rock solid. I really like some of the new features that were added and the cool thing is that FB 4.1 apps are completely backwards compatible!!

What are you still doing here??? Go grab the files and start coding something!!