New Feature Developments in ColdFusion 8
 
Published: 07 Dec 2007
Abstract
In this article Debjani discusses the feature enhancements in ColdFusion 8 in comparison to earlier versions and how these feature developments can lead to better programming code.
by Debjani Mallick
Feedback
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 16311/ 26

Introduction

Compared to all versions, ColdFusion 8 software results in a significant performance increase. Software developers developing applications using ColdFusion 7 must be very happy with the performance delivered by ColdFusion 7, since ColdFusion 7 is able to deliver applications capable of processing significantly more requests than applications developed from previous versions of ColdFusion. Now ColdFusion 8 has strengthened this point.

Features

New features introduced in ColdFusion 8 such as CFThread, file functions and stored procedure caching enables users to develop better performing applications. Similarly, in ColdFusion 8 the CFC (ColdFusion Component) creation performance has drastically increased as compared to ColdFusion 7. The performance of tags like CFSwitch and CFCase has increased in ColdFusion 8 2.7 times as compared to ColdFusion 7.0.2 and 4.3 times as compared to ColdFusion 6.1. The performance of lists and list manipulation functions has also significantly increased. The file functions added in ColdFusion 8 solve the performance issue with CFFile tag when used for reading large files. The tag introduced new to ColdFusion 8, CFThread, enables developers to quickly and easily add powerful multithreading capabilities to sever applications. It enables asynchronous processing in CFML, which results in improving the overall user response time for web applications (especially Adobe Flex and Ajax applications where many sever side requests are made from a browser and delays in server response can make an application appear unresponsive).

Server Monitoring and Multiserver Monitoring

Being ColdFusion developers, we always want to easily build applications that can handle heavy traffic as well as quickly respond to user activities. But with the earlier versions of ColdFusion, it was not possible to analyze the software's performance after deployment and understand how the server is processing the pages. So it was difficult to tune applications for maximum performance and to monitor applications in case of any potential problems. ColdFusion 8 has introduced the server monitoring and multiserver monitoring. The Server Monitor provides information about the server which can be used to fine tune applications. The Sever Monitor can be used during the creation of the application for getting information regarding page processing time, memory usage, database query performance which can help in fine tuning the code for increasing the performance. After deployment it can be used to monitor the server performance like memory usage, page processing time, etc.

Alerts and other actions can be used for preventing memory problems, errors, or other issues that would negatively impact a user's experience with the application. The Multiserver Monitor can be used while running multiple ColdFusion servers or server instances. Though it provides a subset of information available in the Server Monitor, it can simultaneously monitor several ColdFusion servers. This can be used to monitor the performance of all ColdFusion servers in a cluster and across the network or even elsewhere on the web. There is also a Monitoring API available for programmatically retrieving all the information that the Server Monitor collects.

PDF Support

It has always been a problem for creating well formatted portable content on web. Most of the time it happens when we go for printing a web browser window then the margins are cut off, the page breaks interfere with the graphics, or many other irregularities. If we think carefully, we may notice that we do not have any simple way for saving print formatted web content offline nor do we have any simple way of sharing content by e-mail attachment. Things are made even worse when we need to capture data from users, since there is no way to save or share HTML web forms with offline users. ColdFusion 8 has introduced a number of features for handling PDF documents; using those we can create PDF files, manipulate the existing PDF files, create PDF forms, etc. In ColdFusion 8 an existing HTML content can be transformed dynamically to a PDF for producing printable quality content with headers and footers, multiple page sizes, etc. The PDF documents can contain embedded PDF forms. In ColdFusion 8 it is possible to combine PDF documents to produce one PDF package, remove pages from a PDF file, password-protect and encrypt a PDF document, etc. Users can now work with PDF forms offline providing a portable way to capture and share information in Internet applications.

AJAX Support

As we know, Ajax applications are asynchronous, i.e. they can exchange data with the server independent of the loading and reloading of the entire web page which results in a more interactive and user friendly application for a user. Now, simple tags can be used to access a large library of prebuilt Ajax user interface components such as rich text editors, data grids, tree controls, tab navigators, etc. Even ColdFusion 8 has features for Ajax logging and debugging.

.NET Integration

ColdFusion is a Java application, so ColdFusion applications run on J2EE application servers as compiled Java bytecode. This makes it easy to integrate existing Java assets/objects into the ColdFusion applications. In previous versions of ColdFusion, there was no native way to integrate .NET assets into a ColdFusion application. One could use web services to integrate ColdFusion and .NET, but that may result in poor performance or compatibility problems. ColdFusion 8 software solves this problem by introducing native .NET integration that allows access to Microsoft .NET assembly classes as CFML objects. Since the .NET integration capabilities of ColdFusion 8 do not rely on .NET remoting or web services, there is no requirement of changing the existing .NET assets. ColdFusion application can access .NET components that are on remote systems. Also, the ColdFusion system does not require .NET runtime software installed to use remote. ColdFusion 8 also converts data types automatically.

Microsoft Exchange Server Integration

Many organizations rely on Microsoft Exchange servers for messaging, contact list, and task management. Though it was possible to send and receive email from Exchange Servers using ColdFusion, other Exchange Server functions were not accessible from ColdFusion Markup Language (CFML). Now in ColdFusion 8 software, several new tags make it easy to interact with Microsoft Exchange servers for sending, getting, and managing e-mail, creating, getting, and managing calendar events, contacts, and tasks. E-mail messages, calendar events, contacts, and tasks can all be programmatically controlled with ColdFusion 8.

Interactive Debugger

In ColdFusion 8, interactive line debugger has been introduced. This would help to look into the application while the code is executed. It lets you know what is happening in the application while the code is executed. It can be used to set breakpoints, inspect variables, view log files, etc. It also allows stepping over, into, or out of code. This is particularly useful when writing code that does not produce HTML output, such as ColdFusion components (CFCs), SOAP web services, Ajax applications, etc.

Adobe Flex Integration

Being developers, we always want to develop an application which is highly user friendly and interactive. For creating such multimedia-rich applications where user experience is dramatically enhanced, there is no easier way than the combination of Adobe ColdFusion 8 and Adobe Flex 2 as Flex enables us to create high-performance applications that run identically on all major browsers and operating systems, and ColdFusion lets us link those applications to virtually any enterprise data source or service quickly and easily. Even a ColdFusion Component (CFC) can be called from a Flex application easily which means that the logic written previously for traditional HTML applications can enrich Internet applications without any changes required to the server-side coding.

Application Settings on a per-application basis

In ColdFusion 8 it is possible to set ColdFusion mappings and custom tag paths on a per-application basis.

Multithreading

This feature has been added to ColdFusion 8 which might appear new to ColdFusion developers. In ColdFusion 8 there is a tag, CFThread, which can be used to create new threads, end a thread, join together threads or temporarily suspend the processing of particular ColdFusion threads. The use of this tag can lead to high performance increase for pages that carry out a lot of independent processing and for actions not important for the end user.

Image Manipulation

In ColdFusion 8 a number of functions and tags have been added for creating and manipulating images, which are able to perform actions ranging from simple to sophisticated. For example, the cfimage tag. It is used to create a ColdFusion image. It can be used for the manipulation of images as a shortcut to the functions introduced for images. It can also be used in conjunction with the image functions. It can be used to convert the image from one format of file to another, enforce size limits to a JPEG image, and save a ColdFusion image to a file. The number of functions added for image manipulation is large. For example, ImageAddBorder function can be used to add a rectangular border to an image. ImageCopy function can be used to copy a rectangular area of an image. ImageCrop fucntion can be used to crop an image to a specified rectangular area. ImageFlip function can be used to flip an image across an axis and ImageBlur can be used for making an image appear blurred. ImageNegative fucntion can be used to invert the pixels value of an image. IsImageFile function can be used whether an image file is valid or not. This function returns false if the file being checked has a format that is not supported by the server where ColdFusion has been deployed or if the pathname to the image file is valid. It would also return false if the pathname to the image file is null. Like these, there are a lot of functions added for image manipulation in ColdFusion 8.

Presentation on demand

ColdFusion 8 allows for dynamic creation of multimedia experiences with animation, audio, and video which are generated on the server with up-to-the-minute data and content from multiple external resources.

ATOM and RSS feeds

In ColdFusion 8 we have the cffeed tag, which can be used for reading and creating RSS and Atom feeds in commonly used formats, thus helping one to quickly and easily create complex content syndication applications.

ZIP and ZAR file support

ColdFusion 8 introduces two new tags: cfzip and cfzippzram for manipulating ZIP and JAR i.e. Java Archives files. In addition to the basic functionality of zipping and unzipping files, cfzip tag can be used to delete files, filter files from an archive, read files in binary format, etc. cfzipparam is always used as a child tag to the cfzip tag. It can be used along with the cfzip tag to zip or delete multiple files or directories.

Administrator and RDS Access according to a user

ColdFusion 8 allows for the creation of multiple ColdFusion Administrator and Remote Development Services (RDS) accounts with individual permissions, so you can modify the Administrator and RDS access to fit your specific security needs. According to the roles assigned to a user, a user can access pages in ColdFusion Administrator and functions in the Administrator API.

File manipulation functions added

In ColdFusion 8, a number of file manipulation functions have been added to the ColdFusion Markup Language (CFML), making it easier to work on larger files.

JavaScript Operators in CFML

ColdFusion 8 supports common JavaScript operators such as ++, ==, ||, <, and > so they can be used in CFML expressions.

Improvements in CFC

Using ColdFusion 8, it is now possible to create interface definitions, have access to the CFCs in session data across all the machines in a cluster, etc. We can now use onMissingTemplate method added to ColdFusion 8. This method is invoked when ColdFusion encounters a situation when it is not able to find a file. This means that the URL has specified a CFML page that does not exists. It takes the targetPath, the path from the webroot to the requested CFML page, as its argument. It returns true if the request has been processed and false if the event is not processed. If it does not return any value, it is assumed to be true. If false is returned, ColdFusion invokes the standard error handler. But if the error occurs within the onMissingTemplate method, then the error handler is not invoked. So try/catch blocks should be used.

Strong Encryption Libraries

ColdFusion 8 includes strong encryption libraries like RSA BSAFE Crypto-J libraries, which provide FIP's 140-certified strong encryption and helps in building strong encryption and authentication. It provides for authentication features to be built into virtually any application for optimized performance reducing the development time and the need to compromise with the security of an application for performance issues.

Enhancements in Reporting Features

In ColdFusion 8 a completely new version of the ColdFusion Report Builder has been introduced. It can be used for creating high-quality structured reports with more choices of output, and a consistent look and feel throughout the application. Cascading Style Sheets (CSS) can also be created and applied to reports.

Improvements in Database Interactions

In ColdFusion 8 a new tag has been introduced to programmatically access information regarding data source, stored procedures, etc.  cfdbinfo can be used to retrieve information regarding a datasource along with the details of the database, tables, stored procedures, queries, indexes, foreign keys, etc. This tag supports only JDBC drivers.

Argument Collection

In ColdFusion 8 it has been made simpler for coding using tags that have many attributes by the use of an argumentsCollection attribute to specify the tag's attributes in a single structure.

Array and Structure creation Improvements

Now with ColdFusion 8 it is possible to create arrays and structures implicitly using assignment statements and without the use of ArrayNew or StructNew functions.

Expanded platform, OS, Database Support

ColdFusion 8 offers broad platform support and has also added Mac OS X on Intel, JBoss, 64-bit support on Solaris, JDK 1.5 and JDK 1.6, and support for VMware and Microsoft Virtual Server.

Conclusion

In this article you have seen some of the new features included with ColdFusion 8.

By Debjani Mallick

 



User Comments

Title: netgear wireless router   
Name: lararefaeli@gmail.com
Date: 2009-09-29 3:13:43 AM
Comment:
I haven't tried this for this specific problem but couldn't you use Apache's mod_rewrite to add index.cfm to any URL not containing a cfm?
Title: Very helpful to come across the advanced features added on ColdFusion 8   
Name: Chandrakanta Kar
Date: 2008-01-03 1:31:12 AM
Comment:
It is a very nice Article, to come across the different sectional enhancement done by Adobe on the ColdFusion 8.

I shall approach if possible give some examples on each section which will more helpful to the ColdFusion developers.

Thanks,
Chandrakanta

Product Spotlight
Product Spotlight 





Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2024 ASPAlliance.com  |  Page Processed at 2024-04-18 5:05:46 PM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search