by Dana Tierney, Sr. Assistant Editor
This article is based on an Adobe MAX session by Hemant Khandelwal.
Some of the new features in CF9, such as improvements to caching of requests, CFCs, objects, and page fragments (such as pods) may not be so obvious or well-advertised. The UUID key generator has gotten a lot faster and so has indexing and search, with a new Lucerne-based search engine named Solr . Whitespace management is now true by default. Thread pooling in IIS connectors works better and the implicit get and set in CFCs also runs faster.
The CFPDF , CFPDFForm, CFTransaction, CFMail and CFDump tags have changed. CFPDF allows action = "optimize" and size optimization attributes such as downsampling and discarding of unused data. The team has added other new attributes: noJavaScript, noThumbnails, noBookmarks, noComments, noMetadata, noFileAttachments, and noLinksnofonts. You can now create or transform a PDF, or extract its data and images. You can add a watermark, and specify its accessibility. You can add and delete headers and footers, or generate thumbnails, using new attributes like HIRES, OVERRIDEPAGE, COMPRESSTIFFS, MAXSCALE, MAXLENGTH and MAXBREADTH.
CFPDFFORM supports FDF for Acroforms now. CFTRANSACTIONs now have a nested attribute. CFMAIL supports digital signing and the associated attributes keystore, keystorepassword, keyalias and keypassword. CFDUMP also has two new attributes, abort and metainfo, both pretty self-explanatory. CFHTTP can specify whether it is a multipart type and given a compliant browser, CFCookie can become inaccessible to client-side scripts with the HTTPOnly attribute.
New array functions include ArrayContains, ArrayFind, ArrayFindNoCase, and ArrayDelete. The listToArray has a new Boolean attribute multiCharacterDelimiter.and listlen, listsetat and listgetat take a new parameter now. Random Access Files have support now and CFDIRECTORY does also.
ObjectSave can serialize to a file; ObjectLoad deserializes. ObjectEquals can compare to objects. Other functions include isnull and getVFSMetadata. ApplicationStop fires onApplicationEnd to stop the application. New Application variables include datasouce, ormenabled, ORMSettings, smtpServer settings, Timeout, debugging IP addresses and GoogleMapKey.
Support for Flash Remoting and AJAX calls has been added with onCFCRequest. It passes a struct for AJAX and an object array for remoting. Also new, the onServerStart method can specify both a CFC and a timeout length. Changes to Administrator include a new MySQL driver (MySQL_DD) and a new admin property, Disableautogenkeys, which increases performance by disabling retrieval of auogenerated keys. You can add it under DSN advanced settings. The ColdFusion team has made it possible to specify handling of undelivered mail and settings can now be saved as a PDF.
How to find out more about the new improvements and feature changes in ColdFusion 9? Of course, check out the features list on Adobe.com, and pay attention to sites like Charlie Arehart's website, where you'll often find posts on such topics. But perhaps the best way is to download the trial edition and experiment. You'll be surprised at what you may discover!
"Hidden Gem in CF9: Controlling Application.cfm/cfc Lookup Order" by Charlie Arehart
Dana Tierney is the Sr. Assistant Editor at House of Fusion, where she causes authors to cry over their once-thought perfect articles. They recover, and their articles are better for it. But still, the sound of grown men weeping...