What’s New in Cold Fusion 2016 By Yogesh Mathur 22 September 2018 Adobe ColdFusion (2016 release) delivers NTLM support for some tags, ability to store sessions in external storage, documents according to Swagger specifications, language, security, and PDF enhancements, and CLI integration. Adobe ColdFusion (2016 release) is a feature packed version of ColdFusion with benefits ranging from better security, performance, PDF improvements, language enhancements along with the all new API Manager. What's new and changed Language enhancements Command Line Interface (CLI) PDF enhancements Security enhancements External session storage Swagger document generation NTLM support New and changed functions/tags in ColdFusion (2016 release) API Manager Language enhancements Overview In Adobe ColdFusion (2016 release), the language enhancements that have been introduced are safe navigation operator (“?.”) and collections support along with some other minor enhancements. To the top In Adobe ColdFusion (2016 release), the language enhancements that have been introduced are safe navigation operator (“?.”) and collections support along with some other minor enhancements. <cfoutput>#employee?.getDesignation()#</cfoutput> <cfscript> function employees() {return {Marketing : "Tim", Sales: "John", Finance: "Andrew"};}writeOutput("Employee in Finance: ")/** In earlier ColdFusion versions **/ emp = employees(); if(isDefined("emp") and isDefined("emp.Finance")) { writeOutput(emp.Finance); } else{ writeOutput("Sorry, no employee found")} /** Now with Safe Navigation**/writeOutput(employees()?.Finance?:"Sorry, no employee found"); </cfscript> Safe navigation (?.) You can use the safe navigation operator to access members of a Struct or values of an object. Instead of ".", using the safe operator ensures that exception is not thrown when the variable is not defined. Arrays Now we can pass array by reference Collection support (Ordered) Struct New("Ordered") creates a struct that maintains insertion order. Other new enhancements ArrayFindNoCase, replaceListNoCase, cfloop item tag, Whitespace management Command Line Interface (CLI) In Adobe ColdFusion (2016 release), there is a new Command Line Interface (CLI) for developers to run cfm scripts without starting the ColdFusion server. CLI can be used to write CRON jobs with: File operations for reporting, logging, archiving, and so on. Database operations for monitoring, debugging, and so on. Network operations like mailing an error log or thread dump to a system admin. The cfm files can either be in wwwroot or in a different location. You can pass parameters from command line to the cfm script that is being executed. Arguments You can pass both positional and named arguments to the executing cfm from the command line. CLI has the following methods to read the arguments: cli.getArgs()- Gets all the arguments. cli.getNamedArgs()- Gets all the named arguments. cli.getUnnamedArgs() - Returns all the unnamed args as a CFML array or an empty array if none are specified. cli.getArg(int index)- Gets the argument at the index location. .getNamedArg(String argName)- Gets the value of the named argument with name argName. Example cf.bat test.cfm 10 20 foo=barcli.getArg(1) returns 10 cli.getArg(2) returns 20 cli.getNamedArg("foo") returns bar Custom directories In CLI, you can set outputdir and logdir while executing the cfm. By default, both classes and logs go to the temp folder. Usage: cf.bat cliscript.cfm –outputdir=c:\cfclasses –logdir=c:\logs PDF enhancements Adobe ColdFusion (2016 release) provides new actions for <cfpdf> tag, such as sanitization, import and export of metadata, import and export of comments, attaching files, annotation (stamp), and enhancement to PDF archival. The new cfpdf actions Sanitize Exporting and importing comments Exporting and importing metadata PDF archiving Attaching files to a pdf Adding stamp Redaction Security enhancements Security code analyzer is a new feature introduced in ColdFusion. It serves the purpose by integrating security analyzer into ColdFusion Builder so that developers can now avoid common security pitfalls/vulnerabilities while writing ColdFusion code External session storage All ColdFusion sessions are stored in memory. But the sessions cannot be shared across ColdFusion nodes. You can replicate sessions, but as the number of nodes increase in a cluster, the configuration and management of sessions become increasingly difficult and resource-intensive. One way to solve this problem is to use an external session storage like Redis. You can now store ColdFusion sessions in external cache servers like Redis, instead of in-memory storage in ColdFusion servers. Redis support Swagger document generation Swagger is a project specification that is used to describe and document RESTful APIs. In ColdFusion (2016 release), you can create swagger doc automatically from REST CFC after it is implemented and registered in server. The Swagger version that is supported in ColdFusion is 1.2. Using new response Messages attribute NTLM support There is support for NTLM (NT LAN Manager) for <cfsharepoint>,<cfinvoke>, and <cfobject> tags, and CreateObject function. NTLM is a suite of Microsoft security protocols that provides authentication, integrity, and confidentiality to users. In a Windows network, NT LAN Manager (NTLM) is a suite of Microsoft security protocols that provides authentication, integrity, and confidentiality to users. Whether these protocols are used or can be used on a system is governed by Group Policy settings, for which different versions of Windows have different default settings. New and changed functions/tags in ColdFusion Adobe ColdFusion (2016 release) has gone through changes and enhancements in tags and functions. The following is a list of new functions in Adobe ColdFusion (2016 release): ArrayContainsNoCase ArrayDeleteNoCase BooleanFormat Floor IsPDFArchive QuerySort QueryEach QueryFilter QueryKeyExists QueryMap QueryReduce ReplaceListNoCase SpreadsheetGetColumnCount ValueArray API Manager API Manager is a new component introduced for the first time in Adobe ColdFusion (2016 release). It is a standalone server component that can run on its own, providing you all the capabilities of monitoring, measuring, securing, and, monetizing APIs. API Manager is an all new API management solution introduced with Adobe ColdFusion (2016 release).The API Manager can be used as a platform to publish and manage APIs based not only on ColdFusion, but also on other platforms or languages. The API Manager can: Authenticate an API via OAuth2, basicAuth, or apiKeys Enforce rate and throttle limits on API calls with SLAs Manage the life cycle and versioning of an API Monitor API usage statistics across applications and user profiles Cache API response to reduce load on server The API Manager includes some additional capabilities, such as: Publishing a traditional SOAP based web service as a RESTful API. Proxy for traditional web services (SOAP PROXY) Coldfusion Expertise Lucid Solutions have been working in ColdFusion for more than 12 years now and have a team of more than 20 Adobe certified developers and Expertise team. We are committed to providing our clients with the best solutions, quality services and superior support. Our team of ColdFusion Experts develop highly customized and affordable desktop and web-based solutions for you. Lucid solutions working on following Coldfusion Platforms: Coldfusion Services Coldfusion Industies Coldfusion Projects Coldfusion Consulting Coldfusion Testinomial Coldfusion Developer