4. Installation
Express Installer:
• Small size
• Easy to Install
• No support for SOLR, .NET,
PDF generation
• For Development only
Normal Installer:
• Large size
• Takes much time for
Installation
• Best suited for Production
Enviroment
5. Enhancements
• Complete cfscript support
• JSON Serialization enhancements
• Introduction of Member functions
• Query Enhancements
• Social Integration
• Better Security
6. cfscript support
• All the tags having equivalent script based syntax.
• Example:
<cfscript>
cftag1 (att1 = val1, att2 = val2)
{
child_tag1 (child_attr1 = 'cv1', child_attr2 = 'cv2')
}
</cfscript>
• Script support for custom tags also.
• Example:
<cf_happybirthday name="Ted Cantor" birthDate="December 5, 1987">
cf_happybirthday (name="Ted Cantor", birthDate="December 5, 1987");
• Exceptions: <cfoutput>,<cfdump>,<cfinvoke>,<cfobject>
7. JSON Serialization
• JSON Serialization is for converting ColdFusion data to JSON format
introduced in ColdFusion 8
• Now there are 3 enhancements.
1. Case preservation of struct keys.
"this.serialization.preservecaseforstructkey = true" in application level for preserving the case of struct
keys.
2. Datatype perservation.
ColdFusion always tries to convert string to numeric, If successful it treats that value as numeric.
CF10: {"ID":6,"NAME":"xyz ","CGPA":7}
CF11: [{"ID":6,"NAME":"xyz ","CGPA":"7"}]
3. Key-Value serialization of cfquery.
Along with row-wise and column-wise serialization, Now we have struct-wise serialization for better
interaction via jquery.
Row: {"COLUMNS":["ID","ADDRESS"],"DATA":[[1,"Bhubaneswar"],[3,"Bangalore"]]}
Column: {"ROWCOUNT":2,"COLUMNS":["ID","ADDRESS"],"DATA":{"ID":[1,3],"ADDRESS":
["Bhubaneswar","Bangalore"]}}
Struct: [{"ID":1,"ADDRESS":"Bhubaneswar"},{"ID":3,"ADDRESS":"Bangalore"}]
8. Member Functions
Member function is introduced for data structure and data objects.
Ture Object Oriented way of calling a function.
Example:
var myArray = arrayNew(1);
CF10 : arrayAppend (myArray,newObj);
CF11: myArray.append(newObj);
Supported Datatype:
Array, String, List, Struct, Date, Spreadsheet, XML, Query, Image
9. Query Enhancements
• queryGetRow(qryObject, index) : Returns particular row value in structure
format.
• New way to execute queries inside cfscript.
• queryExecute(sql_str, queryParams, queryOptions)
sql_str: The SQL query needs to be executed.
queryParams: An array or structure of parameters
queryOptions: Other attributes like datasource, result,dbtype are passed
10. Social Integration
• ColdFusion has introduced the support for dynamically generating Like button,
Tweet button, and Comment box for social media sites.
• Supported widgets are:
1. Like Button
2. Tweet Button
3. Google Plus Button
4. Facebook Subscribe Button
5. Like Box
6. Facebook Comment Box
7. Activity Feed
8. Follow
11. Security Enhancements
• cfmail with two new attributs "encrypt" , "encryptionalogorithim" and
"recipientcert"
• Post installation secure profile enable/disable.
• Allow/Disallow concurrent login session to Coldfusion administrator.
• Integration of AntiSamy library for for better XSS attack protection.
getSafeHTML(input [, PolicyFile ], throwOnError])
isSafeHTML(input [, PolicyFile ])
Application.cfc setting:
<cfset this.security.antisamypolicy = "antisamy.xml">
• PBKDF2 Key Derivation:
generatePBKDFKey(algorithm, inputString, salt, iterations, keysize)
12. Random
• All the docs are wikified.
• By default cfinclude will not allow to include js and css files . But for backward
compatibility we can set "allowedextforinclude" property in neo-runtime.xml to allow
some particular extension files.
• IsValid() function bug fixed.
CF10: isValid("integer", "$1,234") : true
CF11:isValid("integer", "$1,234") : false
• For backword compatibility we have an Application level setting
"strictnumbervalidation" (default: true).
• <cfhtmltopdf> to generate high quality pdfs quickly using PDF Service Manager.
14. Mobile Application Development
• Why: PC and Desktop shipmetnts continue to decline since last 7 years .
• ColdFusion Mobile Application platform comprises of :
1. CFML Language
2. Integrated PhoneGap Framework
3. ColdFusion Builder 3.0
15. CFMobile : CFML Support
• Create a 'ColdFusion Mobile Project' using ColdFusion thunder.
• Select a mobile template (System/User template) to begin with the application.
• Mobile template designed usning frameworks like bootstrap and jquery mobile.
• Now <cfclient> does everything behing the screen.
16. CFMobile : Continued.
• Enclose client side CFML in <cfclient> tag.
• CFML support on client side
• All data structures and related functions – Struct, List, Array, Date, Query etc.
• Tag and cfscript style code.
• Member Functions syntax.
• All basic language tags e.g. cfif, cffunction, cfloop, cfquery etc.
• Does not support server side tags like cfldap, cfftp etc.
• Does not support server side functions like addSOAPRequestHeader,
spreadsheet functions etc.
• Only variables, this and super scopes supported.
• Does not support Application, Server, Client, Session and Arguments scope.
.
17. CFMobile : Continued.
• Supports client side custom tags.
• Can use client side (in-browser) database: websql
• Use cfquery or queryExecute to execute client side SQL.
• But qoq and in-memory query creation not possible.
• Device APIs like Camera, Contacts, Audio etc. supported using PhoneGap.
• Interoperability between JS and client side CFML
• Call JS functions from cfclient.
• Call cfclient functions from JS
• OOP using client side CFComponent .
• Easy way to call server side CFCs from cfclient
•
18. Inspecting and Debugging
• Use weinre(Web Inspector Remote) for inspecting the application similar to firebug.
• Steps:
1. Start the local weinre server.
2. Configure ColdFusion Builder.
3. Package the mobile application.
4. Inspect the mobile application.
• Through weinre we can inspect HTML ,CSS elements and can view console
messages.
• Supports Client side CFML debugger to debug the code.
• Debug code running in desktop browser or on mobile device.
• Breakpoints, Step operations, Variable inspection
19. Packaging
• Packaging is for creating .apk file for android and .ipa file for ios.
• Using PhoneGap build service and Coldfusion Builder.
• Steps:
1. Get the required certificate
2. Register for a phonegap plan
3. Provide server and authentication details
20. Packaging Continued.
1. For creating the self-signed certificate for Android ,
i. Open Comman prompt with administrator previlages
ii. Goto JDK installation directory
iii. Use "keytool -genkey -v -keystore keyname.keystore
-alias keyalias -keyalg RSA -keysize 2048 -validity 10000 "
2. For creating a phonegap account goto,
https://build.phonegap.com/plans
3. For providing certificate and phonegap account details,
Goto ColdFusion Builder ->Window -> Preferences ->
ColdFusion -> Phone gap