Over a million developers have joined DZone.

ColdFusion 10 Released Today: New Features

DZone's Guide to

ColdFusion 10 Released Today: New Features

· ·
Free Resource
Its out of beta and up for grabs... ColdFusion 10 has been released! (I make a small appearance in the intro video as well.)

So what is ColdFusion 10? Lets start with looking at the new features.

New Features

REST webservices
Native support for REST webservices from within a ColdFusion component (cfc) is as simple as adding a few attributes to the component, functions and arguments. Full support is baked in for the HTTP request model of POST, GET, PUT, DELETE, HEAD and OPTIONS. (And I'm not shouting thats how HTTP requests are referred to :) ).

In the never ending quest to communicate faster comes WebSockets. In the middle of the last decade came AJAX which sped up web applications. Now comes, WebSockets which takes the fast and offers very fast in return. And it does it by sending less data around. How? WebSockets communicate over TCP and allow the server and browser to both send messages to each other when needed. With AJAX similar functionality is achieved by polling -- sending a request from the browser to server somewhere between every 1 to 60+ seconds. WebSockets offer a better way.

The ColdFusion implementation has some niceties; sharing of authentication over HTTP, supports browsers without a native implementation (hello IE!) via a Flash plugin; supports both subscriber and publisher model and point-to-point communication. While other features use third-party tools or open-source libraries, WebSockets is one area where the ColdFusion team have written the implementation completely.

The default J2EE container is now Tomcat replacing the aging JRUN. This will make little difference to many but will make it easier to deploy ColdFusion to many cloud based systems both public and private.

While its always been possible to write secure ColdFusion applications the native support for OWASP ESAPI functions will make it easier and help meet the ever changing security threats. Features also include items such as settings to make session cookies be http only and SSL-only cookies as well as harder session techniques such as sessionRotate.

ORM Search
Full-text search, powered by Lucene, comes to ORM entities. Searches can use boost, sounds like, range and other features of Lucene searches including speed.

Every developers favorite JavaScript technique even when they are not sure what they are is now in ColdFusion.

Java First Class
JavaLoader has now been "Mandeled" and built into the language allowing for loading of Java classes placed anywhere on the system. That's great for ColdFusion developers. What is great for Java developers is that Java can now access CFCs from within a Java class. (And if you are both a ColdFusion and Java developer you are golden!).

Hotfix Updater
The often complicated hotfix process is now as simple as clicking Download and Install. Woo-hoo.

The Almost New Features
While technically improvements to existing features some of the improvements go so deep that they feel more like new features.

Priorities, cron commands, chaining, application level tasks, grouping, improved error handling the list goes on. While previous attempts at using the scheduler for complicated business needs felt like using duct tape, these improvements should usher in a brand new world.


Language Enhancements
Over twenty enhancements in all but my top three are using colon in implicit structs, dynamically calling object methods in script and implicit notation for getters and settings.

Display Improvements
The Media Player tag has been updated to include HTML5 video format while the map tag has the option to find the users geolocation.

HTML5 Charting
ColdFusion charts look sharp again. Real sharp. Such are the changes this one came close to being in the "Almost New Features" category.

Using regions and advanced configuration of Ehcache is much easier. But the biggest change is that cfquery caching uses Ehcache by default.

Exchange 2010
Support has been added for Exchange 2010 servers.

Searching with Solr
Unlimited custom fields. Importing data directly from databases and then accessing via ColdFusion search tags are just a few of the niceties added here. On a related note Verity is no longer shipped.

SOAP webservices
Axis 2 webservices are now supported along with Axis 1 webservices. From what I understand this was quite an engineering feat to maintain backward compatibility while providing support to more modern techniques.

Whats missing

The hardest part of software (and I include languages and frameworks in this) is deciding what not to add or upgrade. With the caveat out of the way I am disappointed that the engine for converting HTML to PDF, and the underlying JavaScript libraries behind the various cfajax functionality where not updated. Depending on your applications needs these may be big omissions or no big deal at all.

So, what is ColdFusion 10?

ColdFusion is often easier to think about as a tool-chest and one that keeps adding useful features and improvements with each release. ColdFusion 10 continues this with a pretty wide set of new features and improvements but I think three additions are quite notable.

First, the language enhancements, and I'm including closures and Java integration here, point to a determination to make the syntax lean and current. That is a good thing.

Second, the addition of REST baked in, points to ColdFusion servers playing a role both in talking with other API's but also providing a solid back end to the increasing number of front-end JavaScript MV* frameworks. It feels as though the ColdFusion team felt this was a vital area to stay current in (and some may argue come-up-to-current in).

Third is the addition of WebSockets. Due to its release cycles ColdFusion is rarely on the cutting edge of web technologies. WebSockets are cutting edge (as proof they don't work in IE9 -- although ColdFusion 10 makes them work) and it feels exciting that ColdFusion developers can start to build WebSocket based applications and functionality.


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}