Journey from Monolithic to Modern CFML Development - Chapter 1: CommandBox

Posted by Andy Peterson
14 Apr 2020 07:04 PM

It seems to me that the foundation of a remote team (or any development team for that matter) is a solid CLI. By foundation I mean the platform for productivity tooling upon which all future development exists. For us, that's CommandBox. Once you install CommandBox, your world opens up dramatically. You suddenly have access to every engine and every other tool under the sun needed for installing and deploying (and destroying) your custom environment at will. And because it is yours and yours alone, you can develop with reckless abandon. 

Journey from Monolithic to Modern CFML Development - Introduction

Posted by Andy Peterson
14 Apr 2020 04:06 PM

Part 1 in a Series - Learning CommandBox, ContentBox, ColdBox, VS Code and GitHub - a little at a time and all at once.


I am an executive at a state agency presiding over a team of bright young CFML developers, many of whom were hired to take over for a retiring workforce. It's hard to think that any CF developer is eligible for retirement but the language has indeed been around for decades now. I consider myself a bit younger than retirement age, but I've also been around for some time, and started coding in ColdFusion in the late 90's. And not only have I been around that long, but some of the code currently in production is as old as my career.  In fact, my team is responsible for applications that have, at minimum, one million lines of ColdFusion code* - more than any other language we use.

ColdFusion 2020 Sneak Peek with Rakshith - Part 2 of 2

Posted by Andy Peterson
27 Jan 2020 05:56 AM

This is part two of a summary of the Buzzworthy review of CF 2020 - Alpha (coming soon).

How to address challenges working in multi-cloud environment (AWS and Azure) - Adobe CF wants to be in a  good position tho handle this with special integrations.

Storage Support

Code demos started with storage (AWS S3 and Azure blob). CF 2020's code called cloudService with is a built in function. the demo was for Azure. Allows for access to buckets (s3)/containers (blob).

Makes it easy to list all roots/keys, perform uploads, downloads, etc., making this the most productive solution compared to other technologies (php), working across multi-cloud.

NoSQL Support

Both MongoDB and DynamoDB Support

  • MongoDB: Connected to an Azure MongoDB called cosmos. Demonstrated that find, forEach, etc. all work.
  • Amazon DynamoDB - as an aside, it is cool that there are hash and range key types in Dynamo. 

Examples of creating tables/schemas in both databases was given.

Messages/Notification Support

SQS (AWS SMS Service), SNS, Azure Service Bus

Showing code syntax to configure to create a queue and operate on the queue. 

Serverless Support

Tool to build CF lambda runtime using the CF Packaged code - will be available soon

Language improvements.

Support for lang improvements (Lambda) - there is a fiddle url that shows all of these new csnippets - array function (slice) query functions (append, prepend, nw reverse, ete) and. These are all released in 2018, including arrow functions.

Closures - nothing but an inline function

example of clusures and lambdas

mulOp = function (a,b){

return a*b;


// Using Lambdas 

mul = (a,b) => a*b;

 CFScript 2.0 in CF 2020

Everything included in original CFScript, but getting better. Cleans up tags like cfhttp, but actually doing it across the board. 

Many additional new features as well, including identity operator, parallelism, and Java integration.

Productivity - comparing CFML to Java code; showing how it is cleaner to do same thing in less lines.

Performance - nimble runtime and drastic reduction in startup time, SAML integration. - this is the URL for signing up for PreRelease.

Licensing questions - nothing much will change - you get license for entire server. Other issues not decided yet. Looking forward to more details on this.




ColdFusion 2020 Sneak Peek with Rakshith - Part 1 of 2

Posted by Andy Peterson
23 Jan 2020 01:16 PM

Summary: Overall, the webinar was a solid review of a a pretty significant shift for Adobe's ColdFusion 2020 (microservice/cloud/modernization). Though playing a bit of catch-up on a few fronts, as highlighted by the animated color commentary in the chat, this version is going to be a game changer. 

These are my notes from the CF2020 release webinar with Rakshith.

The new installer size is far smaller/granular, which works well on a local installs and cloud deployments and everything in between. As far as modularity is concerned in the new release, Adobe is breaking CF up into "tiny" modules to install/deploy, which I liken to the current installation wizard that allows you to install features by ticking boxes, etc. but far more granular. They also demoed as part of this a CLI. I've become familiar with Ortus's CommandBox and the power it wields, and Adobe's cfpm allows you to get really fine tuned in your deployment. It will be interesting to see how licensing works here. I'd love to deploy our applications to the cloud and release our network department from all of the permissions, security, and other hangups associated with hardware maintenance.

There were robust comments in the chat calling for more fully documented cfscript, lamenting on the lack thereof. While that has historically been true, I believe Adobe and the Community (and also Lucee) have come a long way in terms of the documentation. We've got the cfscript ColdFusion Cheat Sheet by Pete Freitag, the CFScript Syntax Guide CFML Documentation, , and let's not forget Honestly, I'm a bit blown away by what this small yet mighty community is doing, and not just with CFScript, all of which is documented at Charlie's

Back to the Adobe's package manager, CFPM which is inspired by the NPM package manager.  Sooo, does the sql sever module install the odbc connectivity to MSSQL datasources? I think it does. So if I don't have  Oracle datasources, I don't have to install it? That's interesting. CFPM will spit out to the package manager all required modules per the code scan. I think the json file will contain all settings and requirements, and Docker will support this. I kind of got into the weeds here in terms of its use, because a lot of this stuff we currently do not use, but for now, it's cool to see how using CFSetup from the cli, you can do many things, like exporting the settings for portability.  

One of the more interesting links featured in the chat from Elishia Dvorak was the deprecated features page. I wonder - does CF Builder's code tools (code scan) check for all of these? Last I checked, I think it does. 

CF Installs in the cloud. In AWS, storage is called S3, and with Azure, it is called Blob. It is very simple to move from one to another. Around the time Rakshith opened up CF Builder, the superiority of VS Code was the topic of conversation in the chat. I have heard that Adobe was considering officially supporting VS Code, and I have to agree that this would be a good thing considering the CF Builder bloat. At that time, Elishia confirmed that they are working on support for VS Code to go along with existing plugins. But this would have to include the code review/security solutions moved to VS Code as we use these features in Builder as part of our procedures.

I love how Adobe is borrowing from other successful implementations from other languages and platforms. It's good to be inspired -   you find great solutions, and imitation is the sincerest form of flattery. 

As I watch the demo, I've got one eye constantly on the chat, which is turning out to be just as interesting. Charlie is calling for an AMA session with Adobe, and Rakshith is promising to address questions at the end of the session. I am looking forward to seeing how this webinar ends!

CF 2020 cloud is at home on both AWS and Azure (storage, database, noSQL, caching, messages/notifications). Not tied to either interface - same code across AWS and Azure. Rakshith shows how this is handled with some code

Other improvements discussed include language updates, of which Lambdas lead the list.

That is it for Part I. 

February 6, 2020 - Tableau with Megan Cusey

Posted by Andy Peterson
17 Jan 2020 01:32 PM

On February 6th, Megan Cusey will be demonstrating how Tableau can bring state financial data to life. 

Announcing Our First Meeting of 2020

Posted by Andy Peterson
05 Jan 2020 01:54 PM

Our first CFUG of 2020 is our second installment of the ColdBox series. Now that we've learned all about CommandBox from Brad Wood in December's meeting, we are set to do a dive into ColdBox.