ColdFusion MX was released last year to much fanfare in the Macromedia community. It represented a complete overhaul of the ColdFusion application server, built from the ground up in Java. The improvements over the previous releases were significant: complete Java integration, improved performance, object-like constructs called ColdFusion Components (CFCs), Web services, and much more.
The results were impressive, but with the full reconstruction of the engine, CFMX was essentially a version 1.0 product. When you consider this, it is truly amazing that everything worked as well as it did. But as one might expect, a few bugs surfaced and a few features were found to be lacking. Macromedia assimilated a huge amount of feedback from the ColdFusion community and began work on the update to CFMX, code-named Red Sky. Red Sky represented one of the most intense and lengthy beta development cycles of any product Macromedia has developed. The result is ColdFusion MX 6.1, a free upgrade to CFMX that packs in a vast number of new features and improvements.
The first improvement you're likely to notice is the simplified installation process. The new installer makes setup and configuration much easier than it was before. If you have a previous version of ColdFusion installed, you can choose to upgrade and have CFMX 6.1 keep all of your server settings, mappings, paths, etc. The setup screens will walk you through connecting CFMX to Internet Information Server or Apache, or you can elect to install CFMX in a standalone mode with its own internal Java-based Web server.
In addition to the self-contained Java server, CFMX gives you options to deploy the application server as an EAR or WAR file. The installation now includes the option to install JRun along with CFMX, and to set up ColdFusion to work on top of the JRun server as a full-blown J2EE application. You can also deploy on top of other J2EE servers, such as Sun ONE, WebLogic, WebSphere, and Tomcat. This makes it easier than ever to integrate ColdFusion with an existing J2EE infrastructure. It also means that you can combine Java frameworks such as Struts with CFMX and leverage any or all aspects of the J2EE standard including servlets, EJBs, and JSPs within your ColdFusion applications.
Expanded OS support
This release also expands on the operating system support of ColdFusion. Previously, CFMX would run on a wide range of OSs, including Windows NT and 2000, Linux, and Solaris. But since the release of CFMX, a number of new operating systems have hit the market, and they have become options with CFMX 6.1. This includes Windows Server 2003 and Internet Information Server 6, AIX 5.1, and Solaris 9. It also includes several brand new versions of Linux, such as Red Hat 8, Red Hat 9, and SuSe Linux 8. You can also deploy to Mac OS X. Truly, ColdFusion now offers one of the widest sets of operating system support of any Web application server.
Arguably, the greatest benefit of ColdFusion MX 6.1 comes in the form of increased performance. Version 6.1 is significantly faster than any previous release of CF. The engine has been highly tuned and tested, and virtually every significant bottleneck has been removed.
Previously, ColdFusion MX would compile your CFML code into Java source code, which was then compiled into Java bytecode. While this only happened the first time a given template was called, it made development relatively slow because your CFML kept jumping through these two compilation steps. This is not the case any more. Version 6.1 now compiles the CFML directly to Java bytecode, which greatly speeds up recompilation when you're doing development.
But beyond faster compilation, CFMX 6.1 is much faster at processing requests, as well. Performance tests show that the new version is over 2.5 times faster than the original ColdFusion MX, and over 23 times faster than ColdFusion 4.5 on Windows 2000. On Red Hat the improvements are similar: MX 6.1 is over 2.7 times faster than 6.0. Improvements on Windows Server 2003 and Solaris follow the same trend. Any way you slice it, the result is that CFMX 6.1 is blindingly fast.
CFCs were a great addition that came with ColdFusion MX. These object-like components allowed CF developers to leverage encapsulation, inheritance, and polymorphism to build more object-oriented systems. However, there were a few bugs associated with using them (especially in persistent scopes), the way they handled variables was a bit unexpected, and they sorely lacked the ability to invoke overridden methods in parent objects.
Version 6.1 addresses these concerns. The CFC bugs associated with persistent scopes and internal variables have been eliminated. And the super() method is now available to call overridden parent object methods. CFCs are now ready to be used in creating full-blown object-oriented applications and frameworks. The Mach-II framework is an example of a fully OO ColdFusion framework (and it is coming for other languages as well).
More improvements abound
There are many more improvements and bug fixes in CFMX 6.1. The mail processing engine is now capable of generating over a million e-mails per hour, which is great news to anyone running a community site on ColdFusion or sites that send out frequent newsletters. The CFMAIL tag now also supports multipart e-mails (allowing you to send both HTML and text mail in the same message).
The CFHTTP tag now allows you access to the full set of HTTP commands, including GET, POST, TRACE, OPTIONS, DELETE, PUT, and HEAD. It also allows you to make HTTP connections via proxy servers and to specify timeouts for your connection attempts.
You can also use CFINVOKE to invoke a Web service across HTTPS. Additionally, you can now specify timeouts and proxy servers in conjunction with CFINVOKE.
The integrated Apache Axis Web services engine has been updated to version 1.1. This fixes some bugs in the engine, allows more functionality, and improves the way CFMX's Web services play with the Web services on other platforms, such as .NET.
A big jump forward
When ColdFusion MX was released, it was a giant step forward for ColdFusion developers. But since it was a total rebuild of the engine, there were some problems and missing features. CFMX 6.1 is another big jump forward. It fixes many outstanding issues that came with CFMX, offers several important new capabilities, and greatly improves performance. And best of all, it's a free upgrade for existing users of ColdFusion MX. If anyone was waiting for the kinks to be worked out of ColdFusion MX, your wait is over. CFMX 6.1 is a must-have upgrade.