My CFWheels Presentation at CFObjective ANZ

Had a great time at CFObjective ANZ down in Melbourne.

I presented on CFWheels, a beautiful ColdFusion framework, inspired by Ruby on Rails.

Mine was the first presentation on day one, and in a way it worked nicely as I could then enjoy others with full attention. This is what I covered in the presenation.

CFWheels is a new-ish ColdFusion (CF) framework inspired by Ruby on Rails.

With its emphasis on convention over configuration, simple code organizing principles, a beautiful Model-View-Controller (MVC) architecture, and a pretty neat Object Relational Mapping (ORM) framework, CFWheels brings agility into applications written in CF.

In this talk, Indy takes you through the building blocks of a CFWheels application. He then shares his experience of learning and developing with CFWheels — an experience he thinks every CF developer should go through.

Come, have a listen, and see how CFWheels brings agility into CF development. And how you end up writing beautiful code, while having loads of fun as you develop.

I’ve added the presentation to Slideshare. Have a look.

CFWheels – Rediscovering beauty in CF Code

I haven’t been blogging much of late. Lots of traveling and work kept me away.

During this time, however, I have somehow managed to find time to play with Wheels. And I must say it has been a pleasure working with it.

I’ve dabbled with Ruby on Rails and Grails in the past and have always lamented about the fact that the frameworks in CF do not possess the same beauty and elegance.

Well, CFWheels changes all that.

If you ask me, I’d say that all CF developers should at least try it out to once to see all that it has to offer.

Personally, I like they way the MVC architecture is implemented in CFWheels — pretty much like Rails/Grails. Plus domain modeling and  URL rewriting using routes — leading to very nice, readable URL. And not to mention time-saver features like view helpers that let you build nice views and forms and add validation to them. And also the plugins… And also the provision for different environment like design/development/test/production.

I’ve tried it on Railo and it is blazing fast. I’m sure it would be as quick on CF9.

I could go on and on. But it is simpler for you to simply head over CFWheels to discover the magic.

ColdFusionMX Syntax Files for PSPad

I use PSPad as the default reader/editor for text files of all kinds. Of late, I’ve been using it for working with ColdFusionMX files as well. It works very nicely!

However, the syntax definition file for ColdFusionMX available on the PSPad site was missing some tags and functions. I’ve updated the syntax definitions and attached the file here.

ColdFusionMX Syntax Files for PSPad (Again!)

Apologies for the repeat posting, but the earlier link to the syntax file was not working. The webserver was not liking sending back .ini files (which is the extension of the syntax file).

I’ve uploaded the syntax file again with the original entry. This time it is a zipped file. You’d need to unzip this into the {PSPad install path}/syntax directory.

Thanks to Ken Auenson for pointing this out.

Indy

Hungarian Notation for ColdFusionMX

Loose typing of ColdFusion variables is arguably one of the key factors that contribute to rapid application development.

However, the lack of any standard in which variables are named causes considerable grief, especially when working on large-ish ColdFusion application, in a medium to moderate sized team, over a period of time. Different developers start using different “conventions” for variable names and those “conventions” become more like fashions that come and go with each season.

And of course this is bad because it adds to the total time spent on maintaining legacy code.

Over a period of time, after trying various ways of naming variables (or using Hungarian Notation), I settled on using following.

Prefix Data Type Example
a array aItems
b boolean bValue
c single char cVar
i int iNumber
f float fNumber
l list lItems
o object oComponent
q query qGetRecords
s string sName
st struct stItems
u UUID uObject
w wddx wPacket
x xml xPacket