In 1995, J.J. and Jeremy Allaire introduced a product they believed would revolutionize application development for the Web. They too called their creation ColdFusion. The two brothers formed the Allaire Corporation and began selling ColdFusion. Unlike its infamous namesake, ColdFusion has delivered on the promises put forth by its creators. In 2001, Macromedia acquired Allaire, and along with it, ColdFusion. ColdFusion MX represents the second ColdFusion product release under the Macromedia banner.
According to Macromedia’s marketing materials, ColdFusion is “the rapid server scripting environment for creating rich internet applications.” Internet applications exist as a collection of pages, also known as templates, which work together to allow users to perform such tasks as reading email, buying books, or tracking packages. Internet applications often act as the front-end to back-end services, such as legacy applications and databases, and can be accessed through various means such as web browsers, cell phones, and other Internet-enabled devices. Some examples of web sites and applications built using ColdFusion include Autobytel.com’s application for researching and purchasing a car (http://www.autobytel.com/), Williams-Sonoma’s storefront application (http://www.williams-sonoma.com/), and the online reservation system at the Broadmoor Hotel’s web site (http://www.broadmoor.com/).
One key aspect of an Internet application is that it is dynamic; it is not just a static collection of pages. The benefits of dynamically driven design are obvious. If you think of it in practical terms, which would you rather do each time a new press release has to be added to your web site? Would you rather the marketing department send you the text for the new press release so you can convert it to an HTML page, upload the page to your server, then go add a link to the menu of available press releases? Or, would you rather provide an online form to the marketing department so they can enter the text from the press release themselves and store it in a database that can then be queried to dynamically build the press release menu and associated pages? ColdFusion allows you to create just this kind of application.
Of course, there are a lot of different technologies you can use to create dynamic applications, from open source technologies such as Perl/CGI scripts or PHP, to such commercial options as JavaServer Pages and Java servlets or Microsoft’s Active Server Pages. With all these choices, why use ColdFusion MX?
One reason has to do with ease of development. Unlike most of the other technologies I mentioned, you don’t have to be a hard-core programmer to get started with ColdFusion. This doesn’t, however, mean that ColdFusion isn’t powerful. Quite the contrary. ColdFusion makes it simple to do common tasks, such as processing form data and querying a database. But when you need to perform more complex operations, such as transaction processing and personalization, ColdFusion makes that possible too.
ColdFusion is also designed for rapid application development (RAD). ColdFusion abstracts complex, low-level programming tasks, such as establishing connectivity with a mail server or querying a database, with simple HTML-like tags. The result is an application development cycle that is second to none.
Another advantage of ColdFusion is that it is available for a broad range of popular operating systems and web servers. ColdFusion can be run on Windows 98/ME/NT 4/2000/XP/Server 2003, Linux, Solaris, HP-UX, and the AIX operating system. Additionally, the developer version of ColdFusion MX Enterprise can be deployed on Mac OS X when the J2EE configuration is used. ColdFusion works in conjunction with several popular web servers including Microsoft IIS, Netscape Enterprise Server, iPlanet Enterprise Server, Apache, and ColdFusion MX’s standalone web server. In general, you can migrate ColdFusion applications between different operating systems, web servers, and databases, for instance, when you upgrade your databases for scalability purposes. There are, however, some minor incompatibilities between platforms (i.e., there is no COM support in the Unix/Linux version of ColdFusion). Although minor for the most part, these differences are explained in relevant sections of this book.
ColdFusion MX is also an integral part of Macromedia’s overall MX product line, which includes Dreamweaver MX for authoring, Fireworks MX for web graphics, and Flash MX for developing rich user interfaces for Internet applications. As Macromedia’s cornerstone server product, ColdFusion MX is tightly integrated with the rest of the MX products.
ColdFusion is a mature, robust product; the current version as of this writing is ColdFusion MX 6.1. When ColdFusion was released in 1995, it provided simple database and SMTP mail connectivity and supported basic output formatting. Each successive release of ColdFusion has added features and functionality. Today, ColdFusion contains over 90 tags and 265 functions for handling almost any task imaginable. Add to that scalability features such as load balancing and failover to handle high-traffic sites, and it is easy to see why ColdFusion is so popular among developers and administrators alike.
There is a vibrant community of ColdFusion users who are active both in shaping the future direction of the product and in supporting others who use it. A number of ColdFusion-related conferences are held each year by both Macromedia and members of the developer community. Macromedia also runs several web-based forums and Usenet-style newsgroups, where developers can post and answer questions related to ColdFusion development (http://webforums.macromedia.com/coldfusion/). The forums are monitored by Macromedia support engineers as well as a volunteer group known as Team Macromedia. In addition, Macromedia sponsors a number of user groups around the world. Known as CFUGs (ColdFusion User Groups) and MMUGs (Macromedia User Groups), these groups provide a place for ColdFusion developers to get together and share information on a variety of ColdFusion-related topics. Finally, there are a number of web sites devoted to furthering the ColdFusion community. For a complete list of community resources, see Appendix D.