Comparison
From CEW
| Feature | Type | Category | ColdFusion 8 | Railo 2 | Railo 3 Beta | OpenBD | BD J2EE 7 | BD.NET 7
|
|---|---|---|---|---|---|---|---|---|
| ! for NOT | syntax | Yes | Yes | Yes | ? | ? | ?
| |
| && for AND | syntax | Yes | Yes | Yes | ? | ? | ?
| |
| || for OR | syntax | Yes | Yes | Yes | ? | ? | ?
| |
| onClientStart() | feature / function | Application.cfc | No | No | No | Yes | Yes | Yes
|
| onMissingTemplate() | feature / function | Application.cfc | Yes | Yes | Yes | Yes | Yes | Yes
|
| ArrayContains() | function | arrays | No | Yes | Yes | No | No | No
|
| ArrayFind() | function | arrays | No | Yes | Yes | No | No | No
|
| ArrayFirst() | function | arrays | No | Yes | Yes | No | No | No
|
| ArrayIsDefined() / ArrayIndexExists() | function | arrays | Yes[1] | Yes[2] | Yes[3] | No | No | No
|
| ArrayLast() | function | arrays | No | Yes | Yes | No | No | No
|
| ArrayMerge() | function | arrays | No | Yes | Yes | No | No | No
|
| ArrayReverse() | function | arrays | No | Yes | Yes | No | No | No
|
| ArraySlice() | function | arrays | No | Yes | Yes | No | No | No
|
| ArrayToStruct() | function | arrays | No | Yes | Yes | No | No | No
|
| AttributeCollection | tag attribute | Yes | No | Yes | ? | ? | ?
| |
| Beat() | function | Dates | No | Yes | Yes | No | No | No
|
| Built-in Database | feature | Yes[4] | Yes[5] | Yes[6] | ? | ? | ?
| |
| cfabort/type=page | tag attribute | Page Processing | No | Yes | Yes | ? | ? | ?
|
| cfadmin | tag | Administrator | No | Yes | Yes | No | No | No
|
| cfapplet | tag | Yes | No | No | No | No | No
| |
| cfntauthenticate | tag | Yes | No | No | No | No | No
| |
| cfcalendar | tag | Yes | ? | ? | No | No | No
| |
| cfchart | tag | Yes | No | No | Yes | Yes | Yes
| |
| cfcollection/action=list | tag attribute | No | Yes | Yes | No | No | No
| |
| cfcomponent/type=abstract | tag attribute | components | ? | ? | ? | Yes | Yes | Yes
|
| Interfaces | tag attribute | components | Yes[7] | No | Yes[8] | Yes[9] | Yes | Yes
|
| cfcontent/range | tag attribute | No | Yes | Yes | ? | ? | ?
| |
| cfdbinfo | tag | Yes | No | Yes | ? | ? | ?
| |
| cfdirectory/action=rename | tag attribute | Directories | Yes | Yes | Yes | Yes | Yes | Yes[10]
|
| cfdocument | tag | Yes | Yes | Yes[11] | No[12] | Yes | Yes
| |
| cfdump/eval | tag attribute | Debugging | No | Yes | Yes | No | No | No
|
| cfdump/expand | tag attribute | Debugging | Yes | Yes | Yes | No | No | No
|
| cfdump/version | tag attribute | Debugging | No | No | No | Yes | Yes | Yes
|
| cffile/action=info | tag attribute | Files | No | Yes | Yes | ? | ? | ?
|
| cfformgroup | tag | Yes | No | No | No | No | No
| |
| cfformitem | tag | Yes | No | No | No | No | No
| |
| cfforward | tag | Page Context | No | Yes | Yes | Yes | Yes | Yes
|
| cfgrid | tag | Yes | No | No | No | No | No
| |
| cfgridcolumn | tag | Yes | No | No | No | No | No
| |
| cfgridrow | tag | Yes | No | No | No | No | No
| |
| cfgridupdate | tag | Yes | No | No | No | No | No
| |
| cfhttp/addtoken | tag attribute | No | Yes | Yes | ? | ? | ?
| |
| cfimage | tag | Yes | Yes[13] | Yes | Yes | Yes | Yes
| |
| cfinterrupt | tag | threading | No | No | No | Yes | Yes | Yes
|
| cflock.succeeded | tag result | No | Yes | Yes | ? | ? | ?
| |
| cfloop/file | tag attribute | Files | No | Yes | Yes | ? | ? | ?
|
| cfobject/com | tag attribute | Extensions | Yes | ? | ? | No | No | No
|
| cfobject/corba | tag attribute | Extensions | Yes | No | No | No | No | No
|
| cfobject/.net | tag attribute | Extensions | Yes | No | No | Yes | Yes | Yes
|
| cfquery/background | tag attribute | Queries | ? | ? | ? | Yes | Yes | Yes
|
| cfquery/PSQ | tag attribute | Queries | No | Yes | Yes | ? | ? | ?
|
| cfreport | tag | Yes | No | No | No | No | No
| |
| cfreportparam | tag | Reporting | Yes | No | No | No | No | No
|
| cfscript udf default value | syntax | ? | Yes | Yes | ? | ? | ?
| |
| cfsetting/enablecfoutputonly=reset | tag attribute | No | Yes | Yes | ? | ? | ?
| |
| cfsetting/requesttimeout | tag attribute | Yes | Yes | Yes | No | No | Yes[14]
| |
| cftextarea | tag | Yes | No | No | No | No | No
| |
| cftree | tag | Yes | No | No | ? | ? | ?
| |
| cfvideo | tag | No | No | Yes[15] | No | No | No
| |
| cfvideoplayer | tag | No | No | Yes[16] | No | No | No
| |
| cfwhile | tag | No | Yes | Yes | ? | ? | ?
| |
| cfx/c++ | extensions | Extensions | Yes | No | No | Yes | Yes | No
|
| cfx/java | extensions | Extensions | Yes | Yes | Yes | Yes | Yes | No
|
| cfx/.net | extensions | Extensions | No | No | No | No | No | Yes
|
| cfzip | tag | Yes | No | Yes | ? | ? | ? | |
| cfzipparam | tag | Yes | No | Yes | ? | ? | ?
| |
| Cluster Scope | scope | clustering | No | No | Yes | No | No | No
|
| Constants | feature | No | No | Yes | No | No | No
| |
| compress() | function | Files | No | Yes | Yes | ? | ? | ?
|
| contractPath() | function | Directories | No | Yes | Yes | ? | ? | ?
|
| CT for CONTAINS | syntax | No | Yes | Yes | ? | ? | ?
| |
| dayOfWeekShortAsString() | function | Dates | No | Yes | Yes | No | No | No
|
| decryptBinary() | function | Yes | No | Yes | ? | ? | ?
| |
| deSerializeJSON () | function | Yes | No | Yes | ? | ? | ?
| |
| Directory placeholders | syntax | style="background:#ff9090; color:black;" class="table-no" | No | Yes | Yes | ? | ? | ?
| |
| dump() | function | Debugging | No | Yes | Yes | No | No | No
|
| echo() | function | No | Yes | Yes | No | No | No
| |
| encryptBinary() | function | Yes | No | Yes | ? | ? | ?
| |
| Event Gateway | feature | Yes | No | No | No[17] | No[18] | No[19]
| |
| EXP for ^ | syntax | ? | Yes | Yes | ? | ? | ?
| |
| extract() | function | Files | No | Yes | Yes | ? | ? | ?
|
| FileClose() | function | Yes | No | Yes | ? | ? | ?
| |
| FileCopy() | function | Yes | No | Yes | ? | ? | ?
| |
| FileDelete() | function | Yes | No | Yes | ? | ? | ?
| |
| FileIsEOF() | function | Yes | No | Yes | ? | ? | ?
| |
| FileMove() | function | Yes | No | Yes | ? | ? | ?
| |
| FileOpen() | function | Yes | No | Yes | ? | ? | ?
| |
| FileRead() | function | Yes | No | Yes | ? | ? | ?
| |
| FileReadBinary() | function | Yes | No | Yes | ? | ? | ?
| |
| FileReadLine() | function | Yes | No | Yes | ? | ? | ?
| |
| FileSetAccessMode() | function | Yes | No | Yes | ? | ? | ?
| |
| FileSetAttribute() | function | Yes | No | Yes | ? | ? | ?
| |
| FileSetLastModified() | function | Yes | No | Yes | ? | ? | ?
| |
| FileWrite() | function | Yes | No | Yes | ? | ? | ?
| |
| FileWriteLine() | function | Yes | No | Yes | ? | ? | ?
| |
| GenerateSecretKey() | function | Yes | No | No | Yes | Yes | Yes
| |
| getAllThreads() | function | threading | ? | No | ? | Yes | Yes | Yes
|
| getComponentMetaData() | function | Yes | No | Yes | ? | ? | ?
| |
| getException() | function | Yes | No | No | No | No | No
| |
| getFileInfo() | function | Yes | No | Yes | ? | ? | ?
| |
| getFunctionData() | function | No | Yes | Yes | ? | ? | ?
| |
| getGatewayHelper() | function | Yes | No | No | No | No | No
| |
| getHttpRequestData() | function | Yes | No | No | ? | ? | ?
| |
| getMetricData() | function | Yes | ? | ? | No | No | No
| |
| getReadableImageFormats() | function | Yes | No | Yes | ? | ? | ?
| |
| getSOAPRequest() | function | Yes | No | No | Yes | Yes | Yes
| |
| getSOAPRequestHeader() | function | Yes | No | No | Yes | Yes | Yes
| |
| getSOAPResponse() | function | Yes | No | No | Yes | Yes | Yes
| |
| getTagData() | function | No | Yes | Yes | No | No | No
| |
| getTagList() | function | No | Yes | Yes | No | No | No
| |
| getVariable() | function | No | Yes | Yes | No | No | No
| |
| getUserRoles() | function | Yes | No | Yes | ? | ? | ? | |
| getWriteableImageFormats() | function | Yes | No | Yes | ? | ? | ?
| |
| HtmlParse() | function | No | Yes | Yes | No | No | No
| |
| 46xImage* Functions | function | graphics | Yes | No | Yes | No | No | No
|
| ImageDrawImage() | function | graphics | No | No | Yes | No | No | No
|
| Implicit getter/setters | feature | components | No | Yes | Yes | ? | ? | ?
|
| Implicit object conversion | feature | components | No | Yes | Yes | ? | ? | ?
|
| Inline Array | syntax | arrays | Yes[20] | Yes[21] | Yes[22] | ? | ? | ?
|
| Inline Query | syntax | queries | No | Yes | Yes | ? | ? | ?
|
| Inline Struct | syntax | structs | Yes[23] | Yes[24] | Yes[25] | ? | ? | ?
|
| Instance synchronization | feature | No | No | Yes | No | No | No
| |
| isImage() | function | Yes | No | Yes | ? | ? | ? | |
| isImageFile() | function | Yes | No | Yes | ? | ? | ? | |
| isInstanceOf() | function | Yes | No | Yes | ? | ? | ? | |
| isJson() | function | Yes | No | Yes | ? | ? | ?
| |
| isNull() | function | No | Yes | Yes | Yes | Yes | Yes | |
| IsSOAPRequest() | function | Yes | No | No | Yes | Yes | Yes | |
| isUserInAnyRole() | function | Yes | No | Yes | ? | ? | ? | |
| isUserLoggedIn() | function | Yes | No | Yes | ? | ? | ?
| |
| isVideoFile() | function | No | No | Yes | No | No | No
| |
| isZipFile() | function | No | No | Yes | No | No | No
| |
| ListAvg() | function | lists | No | Yes | Yes | No | No | No
|
| ListIndexExists() | function | lists | No | Yes | Yes | No | No | No
|
| ListTrim() | function | lists | No | Yes | Yes | ? | ? | ?
|
| metaphone() | function | No | Yes | Yes | No | No | No
| |
| monthShortAsString() | function | Dates | No | Yes | Yes | No | No | No
|
| Multi-threading | feature | threading | Yes[26] | No | Yes | Yes[27] | Yes | Yes
|
| NCT for DOES NOT CONTAIN | syntax | No | Yes | Yes | ? | ? | ?
| |
| Nested Inline Array | syntax | arrays | No | Yes | Yes | ? | ? | ?
|
| Nested Inline Struct | syntax | structs | No | Yes | Yes | ? | ? | ?
|
| NowServer() | function | Dates | No | Yes | Yes | ? | ? | ?
|
| null | syntax | No | Yes[28] | Yes[29] | Yes[30] | Yes | Yes
| |
| numberFormat() format=roman | function argument | No | Yes | Yes | ? | ? | ?
| |
| onMissingMethod() | feature | components | Yes | Yes | Yes | ? | ? | ?
|
| QueryColumnArray() | function | queries | No | Yes | Yes | No | No | No
|
| QueryColumnList() | function | queries | No | Yes | Yes | No | No | No
|
| QueryDeleteRow() | function | queries | No | Yes | Yes | Yes | Yes | Yes
|
| QueryGetCell() | function | queries | No | Yes | Yes | No | No | No
|
| QuerySlice() | function | queries | No | Yes | Yes | No | No | No
|
| QuerySort() | function | queries | No | Yes | Yes | Yes | Yes | Yes
|
| QoQ extra syntax[31] | feature | queries | Yes | Yes | Yes | No | No | No
|
| ReMatch | function | Yes | No | Yes | No | No | No
| |
| ReMatchNoCase | function | Yes | No | Yes | No | No | No
| |
| Resources | feature | virtual filesystems | No | Yes | Yes | No | No | No
|
| serialize() | function | No | Yes | Yes | ? | ? | ? | |
| serializeJson() | function | Yes | No | Yes | ? | ? | ?
| |
| sleep() | function | Yes | No | Yes | ? | ? | ?
| |
| Shorthand Operators | feature | Yes | No | No | No | No | No
| |
| soundex() | function | No | Yes | Yes | No | No | No
| |
| StructNew() type=linked/weak | function argument | structs | No | Yes | Yes | No | No | No
|
| StructNew() case-sensitivity | function argument | structs | No | No | No | Yes | Yes | Yes
|
| Task Manager[32] | feature | No | No | Yes | No | No | No
| |
| Thread Sleeping | tag | threading | Yes[33] | No | ? | Yes[34] | Yes | Yes
|
| ThreadInterrupt() | function | threading | ? | No | ? | Yes | Yes | Yes
|
| ThreadIsAlive() | function | threading | ? | No | No | Yes | Yes | Yes
|
| ThreadJoin() | function | threading | ? | No | No | Yes | Yes | Yes
|
| ThreadRunningTime() | function | threading | ? | No | ? | Yes | Yes | Yes
|
| ThreadStop() | function | threading | ? | No | ? | Yes | Yes | Yes
|
| Url Array conversion | syntax | arrays | No | Yes | Yes | ? | ? | ?
|
| XmlValidate() | function | Yes | No | No | Yes | Yes | Yes
|
[edit] Notes and References
- ↑ CF8 supports ArrayIsDefined, equivalent to Railo's ArrayIndexExists
- ↑ Railo supports ArrayIndexExists, equivalent to CF8's ArrayIsDefined
- ↑ Railo 3 supports ArrayIndexExists and ArrayIsDefined
- ↑ CF8 has Apache Derby built-in.
- ↑ Railo includes the H2 DB built-in database type.
- ↑ Railo includes the H2 DB built-in database type.
- ↑ CF8 implements Interfaces with the cfinterface tag.
- ↑ R3 implements Interfaces with the cfinterface tag.
- ↑ BlueDragon implements Interfaces with the type="interface" attribute of cfcomponent tag.
- ↑ Renaming a directory in the webroot causes BlueDragon.NET to restart. This is a limitation of the .NET platform.
- ↑ cfdocument will be Railo3 Enterprise only, due to licensing issues.
- ↑ cfdocument cannot be bundled with OpenBD, due to licensing issues.
- ↑ Railo's cfimage tag is considered Experimental status
- ↑ Shows .NET error page, rather than BlueDragon error page.
- ↑ Enterprise edition
- ↑ Enterprise edition
- ↑ BlueDragon supports Threading, which allow the same features as Event Gateways.
- ↑ BlueDragon supports Threading, which allow the same features as Event Gateways.
- ↑ BlueDragon supports Threading, which allow the same features as Event Gateways.
- ↑ ColdFusion 8 adds support for inline arrays using notation [...]
- ↑ Railo uses the Array(...) function for inline arrays.
- ↑ Railo uses the Array(...) function for inline arrays, but also supports CF8 notation.
- ↑ ColdFusion 8 adds support for inline structs using notation {...}
- ↑ Railo uses the Struct(...) function for inline structs.
- ↑ Railo 3 uses the Struct(...) function for inline structs, but also supports CF8 notation.
- ↑ ColdFusion uses cfthread and cfthread/action=join to split and join threads.
- ↑ BlueDragon uses cfthread and cfjoin to split and join threads.
- ↑ Railo uses the nullValue() function to provide nulls.
- ↑ Railo uses the nullValue() function to provide nulls.
- ↑ BlueDragon uses the null keyword to provide nulls.
- ↑ distinct, union, etc
- ↑ Task Manager is an admin front-end spooler for mail, threading, instance sync, etc
- ↑ ColdFusion supports thread sleeping using cfthread/action=sleep
- ↑ BlueDragon supports thread sleeping using cfpause
