In 1989, two physicists, Martin Fleischmann and Stanley Pons, claimed that their research had uncovered a phenomenon that promised to solve the world’s energy problems. What they claimed to have accomplished was nothing short of astonishing: that they had achieved nuclear fusion at room temperature. They called their discovery Cold Fusion. Unfortunately, the scientific community at large dismissed their findings because no one was ever able to reproduce the results claimed in the original experiment. Oh wait, wrong book...
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. Unlike its infamous namesake, Allaire’s ColdFusion has delivered on the promises put forth by its creators.
ColdFusion is a rapid application development platform for creating and deploying dynamic server-based web applications. Web applications exist as a collection of web pages, also known as templates, that work together to allow users to perform such tasks as reading email, buying books, or tracking packages. Web applications often act as the frontend to back-end services, such as legacy applications and databases. Some examples of web 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 Infonautics’s Company Sleuth application for tracking publicly traded companies (http://www.sleuth.com/).
One key aspect of a web application is that it is dynamic; it is not just a static collection of web 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 HTML 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 web applications, from open source technologies such as Perl/CGI scripts or PHP, to such commercial options as Java Server Pages and Java servlets or Microsoft’s Active Server Pages. With all these choices, why use ColdFusion?
One reason has to do with ease of development. Unlike with 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 all the popular operating systems and web servers. ColdFusion is available for Windows 95/98/NT/2000, Solaris, Linux, and HP-UX. The application server can be configured to run in CGI mode or within the context of many popular web server APIs such as ISAPI, NSAPI, and WSAPI. Thus, ColdFusion runs on Netscape’s Enterprise and iPlanet servers, Microsoft’s Internet Information Server, Microsoft’s Personal Web Server, O’Reilly’s WebSite Pro, and Apache. 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 is a mature, robust product; the current version as of this writing is ColdFusion 5.0. 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 80 tags and 255 functions for handling almost any task imaginable. Add to that scalability features to handle high-traffic sites such as load balancing and failover, 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 Allaire and members of the developer community. Allaire also runs several web-based forums, where developers can post and answer questions related to ColdFusion development (http://forums.allaire.com). The forums are monitored by Allaire support engineers as well as a volunteer group known as Team Allaire. In addition, Allaire sponsors a number of user groups around the world. Known as CFUGs (ColdFusion 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.
 Early in 2001, Allaire and Macromedia announced plans to merge, with the combined company using the Macromedia name. The merger closed before this book went to press, but the Allaire name is still being used to refer to ColdFusion, so that’s what this book uses. In addition, as this book went to press, all the official ColdFusion web sites still use the www.allaire.com address, but that may change at any time. If you find that these URLs no longer work, please check the errata on the catalog page for this book (http://www.oreilly.com/catalog/coldfusion/) for the new addresses.