Macromedia has just released the latest version of the ColdFusion Web application server. ColdFusion MX (CFMX) is the result of over two years of work by Macromedia and, previously, Allaire. What they’ve done is pretty amazing: They’ve brought the power of the J2EE platform to ColdFusion developers, and the ease and rapid development of ColdFusion to the Java world.

An old favorite updated
If you’re unfamiliar with ColdFusion, here’s some quick background. CF has been around for about seven years, and it was one of the first application servers. Its strongest advantages have been its ease of use and its rapid development capability. This is due to the CFML language, an easy yet powerful tag-based language similar in many ways to HTML. A large and devoted developer community has grown around ColdFusion, but it has occasionally taken some bruises from other languages due to a perceived lack of power.

If that was ever true, it isn’t any more. CFMX now runs on the J2EE platform via Macromedia JRun or on several other leading J2EE servers like WebSphere and WebLogic. The CFML code that you write is compiled at runtime into Java bytecode, which gives a significant performance increase. And since CFMX can run on J2EE servers, all of the power and resources of the Java world are available to it.

Check out these Flash articles

“FlashForward 2002: Focus on development?”
“Flash MX: From fluff to serious application builder?”
“To Flash or not to Flash”

New features abound
CFMX is packed with new features. Among the most significant are the new ColdFusion Components (CFCs). CFCs allow you to create self-contained, reusable components with many object-like properties, such as methods and inheritance. On their own, they offer a number of advantages, including making a Model-View-Controller design pattern easier to implement. But there’s more: By adding a single attribute to your CFC, you can expose it as a Web service to anyone else. CFMX automatically creates the WSDL.

New tags and functions make it easy to handle XML data and XSL transformations. CFMX integrates seamlessly with Flash MX, allowing you to execute database queries and feed data directly into Flash. This brings tremendous flexibility to the interface you can create for your applications. And since it’s J2EE, you can fully leverage EJBs, JSP tag libraries, and JavaBeans, as well as COM and CORBA objects.

Thankfully, the ColdFusion MX includes migration tools for moving applications from older ColdFusion versions. Figure A offers a peek at one such tool, the Code Compatibility Analyzer. It streamlines the process of code migration.

Figure A
ColdFusion MX Code Compatibility Analyzer

What flavor do you want?
CFMX comes in two product lines, ColdFusion MX Server and ColdFusion MX for J2EE Application Servers. ColdFusion MX Server is available in two editions, the basic but capable Professional Edition, which runs on Windows and Linux, and the Enterprise Edition, which runs on Windows, Linux, Solaris, and HP-UX and which adds most of the high-end Java features, clustering, monitoring tools, and more. ColdFusion MX for J2EE Application Servers is currently available for WebSphere, WebLogic, Sun ONE, and JRun. Its operating system choices are Windows, Linux, and Solaris.

Installation is smooth and simple
I installed ColdFusion MX on two Windows 2000 servers, one a fresh installation and the other an upgrade. Both installations went smoothly, and the upgrade offered to migrate all of my ColdFusion 5 settings and database connections for me. One note of warning—isolated bits of code that worked under CF 5 generated errors under CFMX, so test your apps with the Code Compatibility Analyzer before the upgrade. Powerful debugging options make fixing errors as painless as possible.

Macromedia has really delivered a great product with ColdFusion MX. It’s more powerful, more flexible, and brings great new features to both Java and CF developers. And I’ve really only scratched the surface of this new version. For more details, download an evaluation.