ColdFusion MX Overview
About two years ago, I was at the Allaire Developer Conference (known today as Macromedia DevCon) where a very early version of ColdFusion MX, codenamed “Neo,” was first publicly unveiled. When ColdFusion developers saw an extremely primitive ColdFusion MX rocket past ColdFusion 5 in a performance comparison, I definately heard a few “regular expressions” from some of the programmers seated around me.
Today, I’ll introduce you to ColdFusion MX and show you what has become of that product since its announcement two years ago. We’ll go through three coding examples to get you up to speed with the coolest new features, and I’ll explain to you the benefits and the pitfalls of this breakthrough version of ColdFusion.
In case you haven’t already heard the hype, CFMX is actually built on top of a Java-powered Web application server called JRun. This is a big deal, given that ColdFusion 5 was written in C++. As you can imagine, the gutting and rewriting of ColdFusion’s underlying architecture in a different language means ColdFusion has changed more in this release than it probably ever will again. For this reason, it’s important to think of CFMX as a new product rather than as an upgrade from ColdFusion 5. Fortunately it still uses the same easy-to-master tag-based CFML (ColdFusion Markup Language) as before, and Macromedia has tried hard to make everything work the way it used to.
The vast majority of your ColdFusion 5 code will probably work if you are upgrading a project to CFMX. It comes with a code compatibility analyzer in the ColdFusion Administrator to help you upgrade. At a glance, my biggest projects seem to work after some minor changes, but I’ve heard some tales of frustration in the House of Fusion CFTALK Mailing List. (Every ColdFusion developer should subscribe to this list! It’s the best developer-to-developer CF support resource that I am aware of.)
Besides the all-new engine, there are three new features that illustrate the versatility of CFMX. First, there have been some drastic improvements to the tags and functions of ColdFusion 5. Secondly, there’s a new way to write modular code using ColdFusion Components, or CFCs. Most importantly, CFMX gives the developer a set of simple tools for utilizing Web services in other applications, as well as for sharing your logic and content with other systems. If “Web services” and “components” sound like Greek to you, don’t sweat it — we’ll explore the details in the pages that follow.
If you read the other articles on CFMX out there, many authors are delving into high-end Java magic that you can do in this software. Since I’m writing this under the assumption that you are familiar with ColdFusion and not Java, I’ll only briefly mention some of the Java features and leave it up to you to venture on.
That said, in this overview I will be explaining the performance and productivity enhancements of the new platform. I’ll also teach you a new way to write functions and build on that knowledge with an introduction to components. Then we’ll take it to the next level by designing a Web service of our own that could be used by another system. And, of course, what fun would it be without trying out somebody else’s Web service in a CFML page of our own? Finally, we’ll wrap up with a look at some must-sees, including native XML handling and Flash integration. No doubt by the time you’re done here, you’ll have a black belt in CFMX.