Review: ColdFusion MX 7.0

 

Summary

The latest release of Macromedia ColdFusion brings new capabilities and enhanced development speed to the table. We look at the new features in ColdFusion MX 7.0.

Events

IBM Technology Conference & Expo 2012
May 23, 2012

Convention Centre B2 Room at 22nd Floor, Centara Grand @ Central World, 999/99 Rama I Road, Pathumwan, Bangkok 10330

Echelon 2012
June 11 and 12, 2012

University Cultural Centre, National University of Singapore

Startup Asia Jakarta 2012
June 7 and 8, 2012

12th Floor, Annex Building, Wisma Nusantara Complex, Jl. M.H. Thamrin No. 59 Jakarta 10350, Indonesia

MMA Forum Singapore
April 23-25, 2012

Grand Hyatt Singapore

On February 7, 2005, Macromedia announced that the latest version of ColdFusion had been released. ColdFusion MX 7.0 offers up some significant new features, as well as improvements to existing ones.

If there is still anyone out there who has not heard of ColdFusion, it is a very powerful and easy-to-use application server. ColdFusion itself is actually a J2EE application that interprets a simple, tag-based language called the ColdFusion Markup Language (CFML). The CFML is compiled to Java byte code and executed on a Java application server such as JRun (included), WebSphere, WebLogic, or virtually any other J2EE server. Full details on ColdFusion are available from Macromedia.

Up to speed
A major focus of this release is to target new ColdFusion developers and get them up to speed even faster than before. Considering that simplicity is already one of CF's chief benefits, now there are excellent "Getting Started" resources. Two fully functional sample applications are available, and they do a great job of showing off the new features along with demonstrating coding best practices. One of ColdFusion's weaknesses is that it is so easy to use that new developers sometimes write poor code. Hopefully these well-done examples will help prevent this.

Another major area of focus is in giving developers some very powerful presentation options. Things like Flash-based forms and generating PDF files are now possible with stunning ease. And existing presentation elements like charts and graphs have had their capabilities expanded.



Downloadable version
A free downloadable version of this article is available in the TechRepublic Download Center.




Luckily, Macromedia didn't ignore the more advanced ColdFusion developers. Even though CF is simple to grasp by new developers, it can also scale to extremely sophisticated enterprise applications. The list of large customers using ColdFusion now includes JP Morgan, NEC, Reebok, Victoria's Secret, and Bank of America among many others. CFMX 7.0 brings some impressive new capabilities, including the ability to interact with SMS text messaging and development of non-HTTP event gateways.

CFMX 7.0 uses the core code from the very mature 6.1 release. Most of the existing code was not changed; the focus was on adding new features. This means that 7.0 promises to be stable and backwards compatible. I took a relatively large (60,000 lines of code) application that ran well on 6.1 and had it running on 7.0 within ten minutes.

Let's look over some of the new features and improvements that CFMX 7.0 offers. And I'll also point out a few things that I was disappointed to see did not make it into this version.

ColdFusion MX 7.0


Minimum requirements

What's new
Probably the most visible new feature is the ability for CFMX 7.0 to easily create Flash-based forms. With the use of a few tags (, , , among others), CF will generate sophisticated Flash-based forms. These include tabbed forms, expandable and collapsible accordion forms, trees, data grids, and calendar components. The Flash forms are cross-platform and look great, and are far easier to build than DHTML-based forms. The forms can also execute custom Flash ActionScript commands if you have the need. For a developer like me, who has rather rudimentary graphic design skills, the new Flash forms are welcome addition.

If you're not a Flash lover, you can use XForms instead. ColdFusion will take your form and apply an XML Stylesheet Language Transform (XSLT) skin to it. This gives you immense control over the appearance of your forms, and also makes it very easy to make site-wide changes to form display options.

Another highly anticipated feature is the ability to create PDF or FlashPaper files with a single tag. Simply wrap your content in the tag, pick your output type, and ColdFusion does the rest. The new file will incorporate graphics and layout as it was on the original HTML page. The generated PDF or FlashPaper file can be saved on the server, or streamed back to the user.

Macromedia has also included a robust report builder and report generation capability. Using the report building, developers can design data reports that far surpass normal HTML tables. This feature is similar to something like Crystal Reports and is sure to be another highly-used new addition.

So far, the new features I pointed out are all visual. But there is one new feature that I think might be the most significant of all, even though you can't really see it: event gateways. ColdFusion can now interact with any network protocol, not just HTTP. Basically, ColdFusion has become an application server for anything. Macromedia has included event gateways to let ColdFusion interact with SMS text messages (used mainly by mobile phones), send data to instant messaging clients, or execute asynchronous ColdFusion requests. And gateways for additional protocols, such as Telnet, can be created. Imagine your application automatically executing code in response to a database record being inserted, or to a file being added to a directory, and the importance of the event gateway functionality starts to sink in.

Improvements
The improvements in CFMX 7.0 are numerous, so I'll briefly discuss the ones I believe are most critical:

  • Application events now allow developers to execute code at specific points during the execution of a request, such as onApplicationStart() or onError(). The onSessionEnd() event fires when a user's session times out and is a capability that has been requested for many years.
  • Web services creation has been improved, including the ability to specify custom WSDL for a web service, and generating document-literal WSDL in addition to RPC.
  • XML data can now be validated against a DTD or XML Schema using the XMLValidate() function. Charting and graphing looks better than ever, with numerous new options for style and display.
  • The included Verity search engine has been upgraded, and now supports alternative spelling suggestions and categories.
  • The Query of Queries functionality is now more lenient about casting your data to various underlying Java data types, and also allows for specification of Java data types when constructing a query manually using the query functions.
  • Greatly expanded data validation options, form validation options, and automatic protection against cross-site scripting attacks. For example, new data validation types for the tag now include credit card, URL, European dates, and XML.




  • Additional resources
    "ColdFusion MX and the J2EE Architecture"
    "ColdFusion MX 6.1 Performance Brief"
    Download a free Developers copy or free 30-day trial version of ColdFusion MX 7.0 directly from Macromedia using the TechRepublic Download Center.


    Server and administrator features
    Some of the most significant changes in CFMX 7.0 are geared toward server administrators. An entire application can now be stored as an EAR or WAR file. This includes the actual ColdFusion runtime, which means you can save and deploy an entire application including the ColdFusion server.

    Along similar lines is the ability to save and deploy your application as compiled code only. In other words, no CFMLâ€"just compiled Java byte code. This has been requested for a long time and now provides a way for developers who sell their applications to protect their CFML source code.

    There is also a new Administrator API available. Macromedia has created a series of secured components to allow administrators to programmatically add data sources, enable debugging, create ColdFusion mappings, and more. When used with source less deployment and the ability to create EAR or WAR files, it becomes possible to create a self-contained application. A developer could provide an application that you simply drop into a J2EE server and configure through a Web interface using the underlying Administrator API. The customer would not have to deal with installing the ColdFusion server or configuring settings with the ColdFusion administrator at all.

    Finally, administrators can now manage ColdFusion server instances from within the ColdFusion administrator instead of through the underlying J2EE server administration interfaces. This includes the ability to add and remove servers from a cluster, making it even easier to create highly scalable and fail safe applications.

    What's missing?
    As great as CFMX 7.0 is, I do have a few minor complaints; mainly regarding two things that I really feel should have been included with the new version. I'll use this chance to point them out and urge Macromedia to include these as soon as possible.

    First is the surprising lack of a tag. Many developers have asked for a tag to allow for image manipulation, resizing, or conversion. There are some custom tags and third party components that do this, but the fact that ColdFusion is a Java application means that they could easily have provided hooks into the Java Advanced Imaging API (which is part of the Java Runtime). This seems like really low-hanging fruit and I'm a bit shocked that Macromedia elected not to include this.

    The other bothersome omission is the lack of interfaces for ColdFusion Components (CFCs). Many ColdFusion developers are beginning to take an object-oriented approach thanks to the introduction of CFCs in ColdFusion MX 6. CFCs support most of the fundamental features of an object-oriented language like inheritance, encapsulation, and polymorphism. However, the lack of interfaces means that developers must manually ensure that any polymorphic sets of CFCs all adhere to the same method interface specification. This makes building robust object models with CFCs more difficult. Every ColdFusion developer I know who is interested in object orientation really wanted this capability, and I hope Macromedia considers adding it in the next update.

    A solid version
    Overall, this new release of ColdFusion looks solid and brings a massive set of new capabilities to the table. Some of the features will be immediately useful, such as Flash forms and PDF generation. Others may take a bit of time for their impact to be fully felt, such as the event gateways. I think that Macromedia definitely listened to the developer community and delivered many of the most requested improvements. While there are still a few things that I wish were included, I would give this version of ColdFusion a strong recommendation. Stay tuned to TechRepublic for articles going into more detail on specific new features.

    Talkback

    Add your opinion

    In order to post a comment, you need to be registered. (Sign In or register below)

    Post your comment

    ZDNet Asia Live

    Better biz models needed for sustainability: By Jamie Yap , ZDNet Asia on May 23, 2012 (2 mins ago) Companies no... http://t.co/IDZyFTdg

    RT @BravuraFinTech: [Read] CFOs increasingly involved in #IT investment decisions http://t.co/jVHWyOdQ @zdnetasia

    Sudden departure of Pacnet CEO, with little explanation; acquisition rumors gain steam. http://t.co/WbKrhoSD

    A dedicated portal for the local games industry will be launched next month by the Media Development Authority... http://t.co/WXJkZ0pV

    Better biz models needed for sustainability http://t.co/B5DebtKB http://t.co/erFSwAUB #arcavir

    http://t.co/VNaUVSe1 Better biz models needed for sustainability: Companies now see sustaina... http://t.co/i0P8D1Fw http://t.co/wiqTBKkj

    Pacnet CEO departs; acquisition rumors gain #steam http://t.co/QSCFfCcy

    5 SaaS adoption speed bumps to avoid http://t.co/AJQYAkOh via @zdnetasia

    RT @SecMash: #InfoSec Malaysia organizations don't realize severity of cyberattacks - ZDNet Asia http://t.co/vFzACdwm #CyberSecurity

    Experience trumps content in apps monetization http://t.co/MVPlf9gR

    Better biz models needed for sustainability. http://t.co/tXuq7174

    Sudden departure of Pacnet CEO, no explanation - ZDNet Asia: Sudden departure of Pacnet CEO, no explanationZDNet... http://t.co/UVG3OKCG

    @ChemarieMonica : Malaysia organizations don't realize severity of cyberattacks - ZDN... http://t.co/iO8wdbz8 http://t.co/1QrdIsaV #tech

    Malaysia organizations don't realize severity of cyberattacks. http://t.co/QK7PKdaP

    RT @daryllau: Malaysia offers some manufacturing benefits over China http://t.co/mH23Uumr

    So much as we know , MTK6575 extremely integrated frequency1GHz ARM Cortex-A9 processor, the superiority of 3G / HSPA Modem, and help the...

    1 day ago by y15822137359 on 5 SaaS adoption speed bumps to avoid

    I reckon your view: "CRM is strategy, not software", if a company replicating the approach uses in ERP implementation into CRM, what they...

    2 days ago by wykoong on Gartner: Mobile CRM gives better ROI than social

    This video will teach you about the Excel fill handle but also provide you with a workook to download... http://www.youtube.com/watch?v=...

    2 days ago by TradeBrother on A quick fill handle trick for Microsoft Excel

    waiting...

    4 days ago by eapete on What should count in a company's market value?

    Boy, you've opened a can of worms now.

    Wait for the rants & raves.

    4 days ago by eapete on What should count in a company's market value?

    I was puzzling before this whether to replicate the success formula we executed for a financial institute, and come out with a standard s...

    5 days ago by wykoong on Drop the egos, copy ideas, then innovate