Wait for the page to load completely...
Click here to view what's new in ColdFusion 10
-
The built-in webserver - JRun has been replaced with Tomcat.
-
The multi server installation option is not available when installing ColdFusion. However, after installing standalone version, you can create multiple instances and clusters.
-
To start\stop\restart ColdFusion on Windows based OS: coldfusion.exe -start\stop\restart
-
To start\stop\restart ColdFusion on Unix/Linux/Solaris/MacOSX: ./coldfusion -start\stop\restart
-
The Security features lets protect your applications from Cross Site Scripting(XSS) and Cross Site Request Forgery(CSRF) attacks.
-
New functions to protect against XSS atack:
-
encodeForHTML(inputString)
-
encodeForHTML(String inputString, boolean strict)
-
encodeForHTMLAttribute(inputString)
-
encodeForHTMLAttribute(String inputString,boolean strict)
-
encodeForJavaScript(inputString)
-
encodeForJavaScript(inputString, boolean strict)
-
encodeForCSS(inputString)
-
encodeForCSS(inputString, boolean strict)
-
encodeForURL(inputString)
-
encodeForURL(inputString, boolean strict)
-
canonicalize(inputString, restrictMultiple, restrictMixed)
-
New functions to protect against CSRF attack:
-
CSRFGenerateToken()
-
CSRFGenerateToken(String key)
-
CSRFGenerateToken(String key, boolean forceNew)
-
CSRFVerifyToken(String token)
-
CSRFVerifyToken(String token, String key)
-
Configure session cookies at the Server or at the Application level. Properties httpOnly, secure, domain and timeout
are added.
-
New functions for Session Management:
-
sessionInvalidate() - to invalidate a Session.
-
sessionRotate() - creates a new session, copies data from old session and then invalidates old session.
-
Protection against Carriage Return Line Feed attack(CRLF) in tags which create header - cfheader, cfcontent, cfmail, cfmailparam and cfmailpart.
-
New method HMAC to verify the data integrity and authenticity of a transmitted message.
-
cfcookie in cfscript. Ex: cookie.test = {value="example",expires="5",secure="true"}
-
for-in construct in cfscript can be now used to iterate over a query, list and a java array.
-
In-memory file system is now supported at the application level. Properties inmemoryfilesystem.enabled and inmemoryfilesystem.size
are provided at the application level.
-
Debugging made easier with callStackGet() and callStackDump() functions.
-
Initialize CFC properties when you instantiate a component. Ex: customer = new Customer(id=1,name="Sagar",place="Bangalore");
-
Set the properties of a component using the dot(.) notation. Ex: customer.id=1; customer.name="Sagar"; customer.place="Bangalore";
-
Chaining of cfc methods. Ex: customer.setId(1).setName("Sagar").setPlace("Bangalore");
-
Implicit struct now supports colon(:) separator. Ex: coordinates = {pointx:100, pointy: 200};
-
Function is a ColdFusion datatype. See Closures.
-
cffile tag:
-
action = "write\append" - specify the file content in the tag body
-
action = "upload\uploadAll" - specify the extensions that can be accepted in the accept
attribute.
-
New functions:
-
getApplicationMetaData() - to get application related data declared in Application.cfc
-
getTotalSpace() - returns total hard disk space or in-memory space available for an application.
-
getFreeSpace() - returns the free space available on hard disk or in-memory VFS space.
-
arraySlice() - to slice an array.
-
fileGetMIMEType() - to get the MIME type of a file.
-
dateTimeFormat() - one function to format date and time.
-
reEscape() - escapes regular expression characters in a string.
-
invoke() - invoke a method in a CFC or invoke a webservice. Ex: invoke(cfcInstance,"method1",{arg1="A1"});
-
listRemoveDuplicates() - removes the duplicate entries in a list. Ex: listRemoveDuplicates("1-2-3-4-5-3-5-1","-") removes the duplicate elements and returns a new list 1-2-3-4-5.
-
Functions enhanced:
-
arrayAppend(array1,array2,[concatenate]) - if the third argument is true; array1 and array2 are concatenated.
-
queryNew(columns,[columnTypes],[struct|array of structs|array|two dimensional array]) - the third argument is used to initialize the struct.
-
queryAddRow(queryName,[struct or array of structs]) - add a row by specifying a struct or add multiple rows by specifying an array of structs.
-
dateFormat() - you can now specify the timezone.
-
replaceList() - additional parameters for specifying delimeters. Ex: replaceList(stringToReplace,"bad:ugly","good:beautiful",":") or replaceList(stringToReplace,"bad:ugly","good:beautiful","-")
-
-
Tags enhanced:
-
cfinclude - attribute runOnce(true\false) is added. If true, the template is processed just once. Availabe in script syntax as well.
-
cfstoredproc - new attribute timeout
is added.
-
cfparam - new attribute maxLength
is added.
-
cfloop - new attribute group
is added. Also, now you can use dynamic references in a query. Ex: <cfloop query = "#getCustomers()#">
-
cfpop - new attribute secure
for is added. It is used to enable SSL for pop requests.
-
A Closure is an inner function that can access variables in the outer function. It is a stack-frame which is not deallocated when the function returns.
-
You can do this now:
function parent(arg1) {
return child(arg2) {
return arg1 + arg2;
}
}
func1 = parent(100);
result = func1(200);
-
Various function have been provide that support Closures:
-
ArrayEach(myArray,function(any currentObject) {
//do stuff here
});
-
ArrayFilter(myArray,function(any arrayEntry){
//do stuff here
return true;//or false
});
-
ArrayFind(myArray,function(any obj) {
//do stuff here
return true;//or false
});
-
ArrayFindAll(myArray,function(any obj) {
//do stuff here
return true;//or false
});
-
ArraySort(myArray,function(any obj) {
//do stuff here
return 1;//or -1 or 0
});
-
ListFilter(list,function(any listEntry) {
//do stuff here
return true;//or false
},",");//specify the delimeter as the third argument
-
StructEach(struct,function(any key, any value) {
//print the key and value
});
-
StructFilter(struct,function(any key, any value) {
//print the key and value
return true;//or false
});
-
Dynamically load Java libraries\classes without restarting the ColdFusion Server.
-
Update any Java class\library while the Application is running. The changes would get reflected at specified interval. Again no need to restart the Server.
-
Use CFCProxy in your Java application to call functions in a CFC.
-
Use createDynamicProxy function to pass CFC objects to a Java class.
-
Functions defined in the CFC can be invoked as a REST service.
-
Attributes httpmethod (to handle HTTP request with various verbs), produces (return data in the specified format), consumes (consume data sent by the client) are avaialble in cfcomponent and cffunction tags.
-
Serialize complex data types in ColdFusion to either JSON or XML format.
-
Perform content type negotiation available in HTTP.
-
Send a REST response using restSendResponse() function.
-
Play HTML5 videos and fallback to Flash videos when the former is not supported natively.
-
Dynamically Stream Flash videos.
-
Add playlist to your Flash videos.
-
Embed subtitles using HTML track element.
-
Apply skins to the videos.
-
Build realtime applications using WebSockets in ColdFusion.
-
Support for Publisher\Subscriber.
-
Support for Push from the Server.
-
On old browsers fallback to flash is provided.
-
Create HTML5 charts i.e. client side charting on Canvas, SVG and even VML is now supported
-
Create interactive charts.
-
Support for various Chart types which include:
Line Charts, Area Charts, Bar Charts, Scatter Charts, Bubble Charts, Horizontal Bar Charts, Pie Charts, Radar Charts, Bullet Charts, Nested Pie Charts, Piano Charts, Funnel Charts, Gauges Horizontal Bullet Charts and Cone 3D Line Charts.
-
If HTML5 charts are not supported then it would fallback to Flash.
-
Search for the persisten entities that match the given query text.
-
Search is a two step operation - Index the entities using ORMIndex() function and then search using ORMSearch().
-
New functions include:
- ORMIndex() - Index the entities.
- ORMIndexPurge() - Clear data for indexed entities.
- ORMSearch() - Search the text in the entities.
- ORMSearchOffline() - Search on indexed properties and returns stored fields.
-
Set caching at Application level. The applicaiton level setting this.cache.configfile="path to ehcache.xml".
-
All cache queries are cached using Ehcache.
-
New optional attribute region is added cfcache tag.
-
New optional attributes cacheId (id to use to store query result in cache) and cacheRegion (cache region to be used to cache query result) are added cfquery tag.
-
An optional parameter region has been added has been added to the functions: cacheSetProperties, cacheGetMetaData, cacheGetProperties, cacheGetAllIds.
-
Cache Statistics
- propStruct property in cacheSetProperties supports new field statistics.true - indicates statistics collection for Ehcache is enabled.
- new field statistics is returned in cacheGetProperties - if true, it indicates statistics is enabled.
-
New functions:
- cacheIDExists() - to find if a cached object exists in cache region.
- cacheRegionNew() - creates a custom cache region.
- cacheRegionRemove() - removes the specified cache region.
- cacheRemoveAll() - removes all the objects in cache region.
- cacheRegionExists() - to check if the cache region exists.
- removeCachedQuery() - removes the query from query cache.
-
The ColdFusion scheduler uses the Quartz scheduling service.
-
You can also run the scheduler in the cluster setup and execute scheduled tasks using cron commands.
-
The Scheduler now supports Grouping of tasks, Scheduling of tasks at the Application level, Chaining dependant tasks, setting priorities for tasks, pause or resume task.
-
Event handler support for tasks - before the task starts, on completion of task, on error when executing the task and event handler to execute the code instead of invoking the URL.
-
Perform an action when the task throws exception or when the task mifires. Actions such as REFIRE, INVOKEHANDLER etc,.
-
Other actions include listing all tasks, specifying the retry counts if the task fails to execute, excluding dates from scheduling process.
-
All the above options are available in cfschedule tag.
Get notified of the hotfixes and security updates, Download and Install it right within the Administrator. Enough said...
-
Indexing and searching based on dynamic custom fields is supported.
-
Reloading individual collections.
-
Data import handler for database indexing.
-
Use HTTPs for secure search.
-
Add languages for search.
-
Autocommitting the indexed documents.
-
Improve search results for specific fields or the entire document.
-
Connect to Microsoft Exchange 2010 server.
-
Perform operations such as create, modify and delete.
-
Get the rooms and roomlist information from the Exchange server.
-
Get user availability while scheduling.
-
Conversation operations - conversation details, copy, move and status.