My new job is a 100% ColdFusion environment. That’s a switch from what I’ve been doing lately, and frankly, it’s a relief. At first, I was a bit apprehensive about going from object oriented C# back to CFML scripting. Then I realized that my ColdFusion expertise is a couple of versions out of date.
The last version of ColdFusion that I used extensively was CF 5. Since that time, three major release have passed me by. As I started to dig into the new capabilities of CF MX 6.1 and MX 7, my jaw hit the floor.
First and foremost are ColdFusion Components. While at first glance they appear to simply be another way to encapsulate and reuse code, they are much more. First, they are pseudo-objects. That is, they can be instantiated as objects in CFScript blocks, properties and methods can be referenced using dot notation, and they can extend from other objects. There are limitations, apparently, in the areas of persistence and levels of inheritance, but the are a huge improvement over straight scripting. For me, they let me design the way I’ve come to prefer, where business logic is safely segregated from the presentation layer.
Second, every CFC is a SOAP Web Service. Simply by calling the CFC file as a URL and adding the query string ‘?wdsl’ the CFC responds as a web service. Talk about versatile. I’m so excited I can barely stand it.
The good news is I have plenty of projects to flex these new techniques on. As I go forward, I hope to share some code snippets here for the sake of posterity.