ColdFusion is an application server and software development framework used for the development of computer software in general, and dynamic web sites in particular. In this regard, ColdFusion is a similar product to Microsoft ASP.NET, JavaServer Pages or PHP. ColdFusion was the first amongst these technologies to provide the developer the capability of creating dynamic websites that were attached to a backend database.OverviewThe pimary distinguishing feature of ColdFusion is its associated scripting language, ColdFusion Markup Language(CFML), which compares to JSP, ASP.NET, or PHP and resembles HTML in syntax. ColdFusion is often used synonymously with CFML, but it should be noted that there are additional CFML application servers besides ColdFusion, and that ColdFusion supports programming languages other than CFML, such as serverside Actionscript and embedded scripts that can be written in a JavaScriptlike language, known as CFScript.

Originally a product of Allaire, and released in July, ColdFusion was originally developed by brothers JJ and Jeremy Allaire. In Allaire was acquired by Macromedia, which was in turn acquired by Adobe Systems in. ColdFusion is most often used for datadriven web sites or intranets, but can also be used to generate remote services such as SOAP web services or Flash remoting. It is especially wellsuited as the serverside technology to the clientside Flex.ColdFusion can also handle asynchronous events such as SMS and instant messaging via its gateway interface, available in ColdFusion MX Enterprise Edition.edit Main FeaturesColdFusion provides a number of additional features out of the box. Among them Client and server cache management Clientside code generation, especially for form widgets and validation Conversion from HTML to PDF and FlashPaperData retrieval from common enterprise systems such as Active Directory, LDAP, POP, HTTP, FTP, Microsoft Exchange Server File indexing and searching service based on Verity K GUI administration Platformindependent database querying via ODBC or JDBC Session, client, and application management XML parsing, querying, and validation Server clustering Task schedulingOther implementations of CFML offer similar or enhanced functionality, such as running in a .NET environment or image manipulation.

History of ColdFusion

Early versionsThe first version of ColdFusion then called Cold Fusion was released on July. This first version was written almost entirely by one person, JJ Allaire. Primitive by modern standards, early versions of ColdFusion did little more than database access. All versions of ColdFusion were written using Microsoft Visual C++. This meant that ColdFusion was largely limited to running on Microsoft Windows, although Allaire did successfully port ColdFusion to Sun Solaris starting with version edit Releases Allaire Cold Fusion version .Allaire Cold Fusion version. Allaire Cold Fusion version. Jun Allaire Cold Fusion version .n Allaire Cold Fusion version. Allaire ColdFusion version. space eliminated between Cold and Fusion to make it ColdFusionov Allaire ColdFusion version. Macromedia ColdFusion version .ay Macromedia ColdFusion MX edit ColdFusion MXPrior to, Allaire began a project codenamed Neo, that would rewrite the basis of ColdFusion using Java, which would allow for greater portability among different platforms.

On January, Allaire announced that it would be merging with Macromedia. Shortly after the merger, Macromedia continued with the incremental release of ColdFusion . and in June , Macromedia released Macromedia ColdFusion MX, extending the naming convention of Macromedias line of products. ColdFusion MX was completely rebuilt from the ground up and was based on the Java Enterprise Edition JEE platform. ColdFusion M was also designed to integrate well with Macromedia Flash using Flash Remoting.Starting from the MX . release, ColdFusion is compiled to bytecode, like JSP and ASP.NET. The compiled .class files are readily accessible, and are cached until their source changes, like JSPs.With the release of ColdFusion MX, the CFML language was also extended to support basic OOP.edit ColdFusion MX With the release of ColdFusion, the naming convention was amended, rendering the product name Macromedia ColdFusion MX. CFMX added Flashbased, and XFormsbased, web forms and a report builder that output in Adobe PDF as well as FlashPaper, RTF and Excel. The Adobe PDF output is also available as a wrapper to any HTML page, converting that page to a quality printable document. The enterprise edition also added Gateways. These provide interaction with nonHTTP request services such as IM Services, SMS, Directory Watchers, and an asynchronous execution. XML support was boosted in this version to include native schema checking ColdFusion MX, codenamed Mystic includes advanced features for working with Adobe Flex .

Adobe ColdFusion

On July, Systems released ColdFusion, dropping MX from its name. During beta testing the codename used was Scorpio. More than, developers worldwide were active in the beta process many more testers than the, Adobe Systems originally expected. The ColdFusion development team consisted of developers based in NewtonBoston, Massachusetts and Bangalore, India. Some of the new features are the CFPDFFORM tag, which enables integration with Adobe Acrobat forms, some image manipulation functions, Microsoft .Net integration, and the CFPRESENTATION tag, which allows the creation of dynamic presentations using Adobe Acrobat Connect, the Webbased collaboration solution formerly known as Macromedia Breeze. In addition, the ColdFusion Administrator for the Enterprise version ships with builtin server monitoring. ColdFusion is available on several operating systems including Linux, Mac OS X and Windows Server .

Other additions to ColdFusion are built in AJAX widgets, file archive manipulation CFZIP, Microsoft Exchange server integration CFEXCHANGE, image manipulation including automatic captcha generation CFIMAGE, multithreading, perapplication settings, Atom and RSS feeds, reporting enhancements, stronger encryption libraries, array and structure improvements, improved database interaction, extensive performance improvements, PDF manipulation and merging capabilities CFPDF, interactive debugging, embedded database support with Apache Derby, and a more ECMAScript compliant CFSCRIPT. For development of ColdFusion applications, several tools are available Adobe Dreamweaver CS, Macromedia HomeSite, CFEclipse, Eclipse and others. Tag updates are available for these applications to update their support for the new ColdFusion features.edit Adobe ColdFusion Adobe is currently working on ColdFusion Codename Centaur. There is no release date set, but the list of potential new features include Ability to code User Defined Functions UDFs and ColdFusion Components CFCs entirely in CFScript. An explicit local scope that does not require local variables to be declared at the top of the function.Implicit getterssetters for CFC. Implicit constructors via method called init or method with same name as CFC. New CFFinally tag for Exception handling syntax and CFContinue tag for Control flow. Objectrelational mapping ORM Database integration through Hibernate Java. Server.cfc file with onServerStart and onServerEnd methods. Tighter integration with Adobe AIR.

Features of ColdFusion

Merge arrowIt has been suggested that this article or section be merged into ColdFusion Markup Language. Discussedit Rich formsColdFusion Server includes a subset of its Macromedia Flex technology. Its stated purpose is to allow for rich forms in HTML pages using CFML to generate Flash movies. These Flash forms can be used to implement rich internet applications, but with limited efficacy due to the ActionScript restrictions in place on Flash forms by Macromedia.Flash forms also provide additional widgets for data input, such as date pickers and data grids.n previous versions of ColdFusion, some form validation and additional widgets were available using a combination of Java applets and JavaScript. This option persists for those who do not wish to use Flash, however not all features are supported.An examplecfform formatflash methodpost width height cfinput typetext nameusername labelUsername requiredyes cfinput typepassword namePassword labelPassword requiredyes cfinput typesubmit namesubmit valueSign In fformColdFusion also includes some XForms capability, and the ability to skin forms using XSLT.

PDF and FlashPaper generationColdFusion can generate PDF or FlashPaper documents using standard HTML i.e. no additional coding is needed to generate documents for print. CFML authors simply place HTML and CSS within a pair of cfdocument tags and specify the desired format FlashPaper or PDF. The generated document can then either be saved to disk or sent to the clients browser. ColdFusion has now introduced the cfpdf tag which allows for unprecedented control over PDF documents including PDF forms, and merging of PDFs.edit ColdFusion Components ObjectsColdFusion was originally not an objectoriented programming language, and even today lacks some OO features. ColdFusion falls into the category of OO languages that do not support multiple inheritance along with Java, Smalltalk etc.. With the MX release +, ColdFusion introduced the component language construct which resembles classes in OO languages. Each component may contain any number of properties and methods. One component may also extend another Inheritance. Components only support single inheritance. With the release of ColdFusion , Javastyle interfaces are supported. ColdFusion components use the file extension cfc to differentiate them from ColdFusion templates .cfm.


Component methods may be made available as web services with no additional coding and configuration. All that is required is for a methods access to be declared remote. ColdFusion automatically generates a WSDL at the URL for the component thusly httppathtocomponentsComponent.cfc?wsdl. Aside from SOAP, the services are offered in Flash Remoting binary format.Methods which are declared remote may also be invoked via an HTTP GET or POST request. Consider the GET request as hown.httppathtocomponentsComponent.cfc?methodsearch&queryyour+query&modestrict
This will invoke the components search function, passing your query and strict as arguments. This type of invocation is wellsuited for AJAXenabled applications. ColdFusion introduced the ability to serialize ColdFusion data structures to JSON for consumption on the client. The ColdFusion server will automatically generate documentation for a component if you navigate to its URL and insert the appropriate code within the components declarations. This is an application of component introspection, available to developers of ColdFusion components. Access to a components documentation requires a password. A developer can view the documentation for all components known to the ColdFusion server by navigating to the ColdFusion URL. This interface resembles the Javadoc HTML documentation for Java classes.

Custom tagsColdFusion provides several ways to implement custom tags, i.e. those not included in the core ColdFusion language. The traditional and most common way is using CFML. A standard CFML page can be interpreted as a tag, with the tag name corresponding to the file name prefixed with cf_. For example, the file IMAP.cfm can be used as the tag cf_imap. Attributes used within the tag are available in the ATTRIBUTES scope of the tag implementation page. CFML pages are accessible in the same directory as the calling page, via a special directory in the ColdFusion web application, or via a CFIMPORT tag in the calling page. The latter method does not necessarily require the cf_ prefix for the tag name.A second way is the development of CFX tags using Java or C++. CFX tags are prefixed with cfx_, for example cfx_imap. Tags are added to the ColdFusion runtime environment using the ColdFusion administrator, where JAR or DLL files are registered as custom tags.Finally, ColdFusion supports JSP tag libraries from the JSP . language specification. JSP tags are included in CFML pages using the CFIMPORT tag.edit Alternative server environmentsColdFusion originated as proprietary technology based on Web technology industry standards. However, it is becoming a less closed technology through the availability of competing products. Products include Railo, BlueDragon, IgniteFusion, SmithProject and Coral Web Builder.

For more information visit our ColdFusion Development Services.
Read More