Developer

Getting to know ColdFusion 8

In the final interview of our MAX07 series, we talk with Tim Buntel, senior product marketing manager ColdFusion, and discuss the release of ColdFusion 8

In the final interview of our MAX07 series, we talk with Tim Buntel, senior product marketing manager ColdFusion, and discuss the release of ColdFusion 8

Builder AU: What's new in ColdFusion 8?

Buntel: ColdFusion 8 is, of course, the first Adobe release of ColdFusion, the last version, MX 7, was of course a Macromedia product. So there's a lot of interest to see how Adobe would inject their DNA into this release and I think that we've done that really successfully.

The features in the product are in three main areas. There are features that impact a user's experience with your application, these are things such as support for Flex and Ajax, a lot of features around incorporating PDF documents and forms into a Web application. Image manipulation, presentations on demand that give a Acrobat Connect type presentation in an app. All of these features together will give the users of your application a much richer experience.

The second category is around ColdFusion fitting into the enterprise. If you look at today's enterprise environments where the Web applications are deployed, they tend to be more complex than they were in the old days. A lot more need for deeper integration with other technologies, security, management, performance. Some significant key features there are native integration with Microsoft .NET, so we can natively invoke .NET objects from within ColdFusion code.

We have direct support for Microsoft Exchange servers, so all of the functionality that you would use in Exchange from calendering to tasks to contact management can all be programmatically integrated into a ColdFusion application.

We've also added great emphasis on pure performance increases of ColdFusion applications. On average customers are experiencing four to five times faster performance without touching a line of their code. And then beyond that we have new language features that can allow a developer to further code higher performance applications.

Then there's also improvements around security, broader platform deployment capabilities, the addition of JBoss as an application server is a key one there.

The third category is about developer productivity, which has always been a hallmark of ColdFusion. However in the past we've generally accomplished this through the language itself, by encapsulating complexity in ColdFusion tags we make the developers more productive.

With ColdFusion 8 we've continued that and we've evolved the language with a lot of enhancements to the way one develops with the script that were direct suggestions from the developer community. But beyond that a couple of key features go even further down this productivity path.

The first and most important is probably our server monitor, which is an API and a Flex application that gives insight into how the ColdFusion application is running. So a developer could use the server monitor when they're building their application to find out where the bottlenecks [are], how can they fine tune their code to make the performance better, look for trouble spots, improve caching and other memory optimisation approaches.

Then once that application moves into production the server monitor can watch the application as it's being used by the public or by the user audience and alert the system administrator if there are any troubles. It can watch out for memory consumption problems or problems with JVM threads and so forth, and then takes some action to fix that problem before it gets out of hand.

So it's a very very powerful tool that really overcomes that black box of ColdFusion that runs on the J2EE server. Beyond that for the developers we've added a full suite of extensions for Eclipse, a lot of ColdFusion people of course are looking at Flex Builder today doing Flex and ColdFusion apps together.

So this suite of extensions installs on top of the Eclipse framework, if you're using Flex Builder, if you're using CFEclipse or some of the other community Eclipse projects and it's a great assortment of productivity tools.

One of the most important right now is the debugger, so we have full capability of breakpoint debugging so you can set breakpoints in your code, watch variables as you step through and watch that code. But then there's also many other features of that extension. There's database browsing capabilities, there's a ColdFusion component explorer, there's some code generation wizards that can get new developers up to speed very quickly on Flex development and so forth.

I think if you look at these three categories; the user facing features, the administrative and sort of IT features, and then look at the developer productivity features. That's why we're getting this good response to the release, because every person who's a part of the process, from building to deploying to interacting with the application is getting something really important in this release.

Could you explain the improvements in Acrobat features with this version?

In ColdFusion 7 we introduced the idea of generating PDF content from Web content but it was really just for that. It was solving a problem of printing on the Web, it was solving a portability issue. With ColdFusion 8 we've expanded the range of capabilities for working with PDFs so that the PDF format and the Acrobat Reader can almost be a new client for an application with ColdFusion.

So we definitely still generate PDFs and we have made some improvements there in terms of the rendering, finer grain control over some of the other properties of the document, headers and footers and numbering and so forth. But then two other really important new areas in PDF are manipulating existing PDFs and then working with PDF forms.

Manipulating existing PDFs is a large list of features, things like being able to merge multiple PDFs together into one, being able to extract individual pages from PDF documents, being able to set passwords and create tables of contents automatically and perform some transformations on PDFs.

And PDF forms of course have been around for some time as a way to collect data from users but with ColdFusion 8 we now allow you to actually work with that data. ColdFusion can pre-populate the fields in a PDF form, if you have data already in a database or another system that you want preloaded for the user to have that form personalised.

But then also when a user has filled out a PDF form they can submit that back to ColdFusion. They can either save the data in the PDF itself and ColdFusion can extract the fields that have been filled in to process into a database or what have you. Or that PDF form can be posted via HTTP back to a ColdFusion server for that same extraction.

So if you look at that range of features, from generating custom PDF documents to working with multiple PDF documents to then being able to interact with a user of those documents, all with the ability to make it portable and printable and those benefits of the format; it really opens up a lot more possibilities for the ColdFusion developer.

Ajax capabilities have been introduced with this version, what are they?

The Ajax features are actually proving to be very exciting, certainly for the features themselves, but also in that it's allowing us to talk about ColdFusion to a new class of developer. There are a lot of people who have been interested in Ajax but have found it difficult. It's a strange assembly of different techniques and Web scripting approaches and ColdFusion 8 really goes quite far to making it approachable for developers. So we're speaking to the Ajax people who probably wouldn't have considered ColdFusion.

Let me explain the features briefly, there's really two parts to it. We wanted to accommodate users who were already experienced with Ajax but needed a more efficient way to bind their Ajax applications to servers. And we also wanted to appeal to developers who were interested in starting with Ajax but didn't have the skills required to dig into the JavaScripting and some of the more advanced techniques.

So with those two groups we've added features in ColdFusion 8, for the first — the people who are already using Ajax, perhaps you have your own Ajax framework or you're using Spry from Adobe or some of these other things.

We provide a binding mechanism for exchanging data from the server to your Ajax client. It's quite similar to how we work with Flex applications where the remote client, the rich client, in this case Ajax can use very simple syntax to invoke logic that resides on the ColdFusion server. ColdFusion executes that logic and then passes the data back to the rich client and handles all the complexity of datatype conversion and formatting of that information so that it's all ready to use in the client.

And the best part about this for the ColdFusion developer is you're still writing that logic the same way. It's the same ColdFusion component you may be using for your standard HTML application but now you can use that to power this next generation Ajax based rich client.

On the other side of the extreme are people who are looking for some of the richness that Ajax brings but they don't really want to go down that path of JavaScripting and working with all of the different libraries that are out there. So for them we've included in ColdFusion 8 a really nice collection of pre-built Ajax components that you can use in your ColdFusion application with the same simple CFML syntax that you may have used for other user interface components.

We have things like data grids, we have tree controls, we have menu systems, we have pop up windows. All of these dynamic user interface components that can be refreshed asynchronously from the ColdFusion server, but they really require no knowledge of the underlying Ajax techniques used.

So we really think that between those two ranges we're going to allow a lot more Ajax development with ColdFusion 8.

Editor's Picks

Free Newsletters, In your Inbox