ORM Support

  • Object Relational Mapping is key to RAD (you find it in Ruby, CFWheels, etc)
    Hibernate: the number one ORM tool is included with CF9 (requires additional tool on development side –CFBuilder or others)
  • Requires use of application.cfc (will not work in application.cfm)
  • At the very least, use of hibernate with a tool like cfbuilder will write 2/3 of your database queries for you. Frequently more than that.

FLEX and AIR Support

  • More Flash Remote commands available without purchasing Flex. (Great for Flash users)
  • Now integrated with Adobe Air allowing you to use your ColdFusion to power your Air apps.

Language Enhancements

  • More commands available within CFScript (You can now write most of your app within cfscript):
    • Basic language constructs: throw, writedump, writelog, location and trace
    • Script functions: query, mail, http, storedprod, pdf and ftp
    • Keywords: abort, exit, include, param, property, rethrow, throw
      Operations: import and new
  • New onServerStart() method to run only when server starts. Useful for configuring logging, instantiating applications, and setting up scheduler.
  • Nested CFTRANSACTIONS
  • Udf/cfc name conflict resolution
  • Local scope/Var scope (helps with name conflicts between application and function) – also can use var anywhere within a cfc and not just at the top.
  • Local is now a reserved word!
  • Implicit getters and setters for cfproperty!

Product Integration

  • Ajax Controls – extJS 3 now embedded (was extJS 2.x), google maps now embedded,.
  • SharePoint integration: can use sharepoint signon in cf, can load sharepoint actions in CF application, can create web parts for sharepoint.
  • MS Office interoperability – now can use cfspreadsheet and cfpresentation rather than cfcontent. Can convert word and powerpoint to pdf with cfdocument.
  • OpenOffice support: if installed and the proper attribute is used, cfdocument will use openoffice engine to create pdf rather than cf engine.
  • Search using Apache Solr rather than Verity!!

Performance Enhancements

  • Improved clustering: supports serialization of query, array and datetime types in a cfc.
  • Granular control over cacheing (can cache fragments of page, can cache in memory, can cache specific objects, etc)
  • In-memory files: simplify execution of dynamic code.
  • Other: Faster cfcs, faster java method invocation

Database Enhancements

  • Now uses DataDirect 4.0 sp 1
    • Support MySQL(enterprise and commercial), Oracle 11g, Informix 11, SQL Server 2008
    • Support IPv6 (Internet Protocol).
    • Set default query timeout value.
  • Datasource attribute is now optional for cfquery, cfinsert, cfupdate, and cfdbinfo.

Code Analyzer

  • Helps migrate from CF7 and 8 to CF9

Service Features

  • More CF can be exposed as web service: cfpdf, cfimage, cfdocument, cfmail, cfpop, cfchart

Other Enhancements

  • Server Manager – desktop version of CF Admin (runs on Adobe Air) with limited availability
  • Built-in support for portlet standards: supports JSR-168, JSR-286, WSRP to help build cf powered portal content.
  • PDF functionality: can support FDF, PDF Package, size optimization, headers and footers (in cfpdf), RGB/ARGB and cfimage support in cfpdf, improved thumbnails, image extraction from pdfs.
  • IMAP support – can query imap servers for email, can run imap items like delete mail/folder, mark multiple as read, and manage folders.
  • JRE specifications – JRE 6 update 14 for all platforms except solaris which uses JRE 6 update 12.

New and Updated Functions

  • Visit livedocs for the full list
  • Most notable: spreadsheet functions and isIPV6().

New Tags

  • Visit livedocs for the full list
  • Most notable: CFFINALLY: brings try/catch up to date with Java allowing a portion of code to run regardless of an error being caught.

Notes

  • With the exception of extJS 3 from extJS 2, existing apps are unlikely to require many changes to continue to function.