Twitter: raymondcamden


Address: Lafayette, LA, USA

ColdFusion Splendor/Thunder Public Betas

02-19-2014 6,852 views ColdFusion

Unless you live under a rock (or have had the incredibly good sense to avoid Twitter), you know that today we announced the public betas of ColdFusion Splendor (that's the next version of the server) and ColdFusion Thunder (the IDE).

You can grab the bits here: http://labs.adobe.com/technologies/coldfusion/

Unfortunately there isn't a cool logo for the betas but as I've said for a while now that the code names sound like 1980s X-Men, I'm going with this until Adobe Legal or Marvel tells me otherwise:

So first off, some tips. Want to quickly see what's new? Go here: New in ColdFusion. A more focused list is here: CFML Reference - New in Splendor.

So what am I excited about? Here are a few things in no particular order.

The Getting Started Server

This is a new way to try out ColdFusion. Just download, unzip, and run. No installation necessary. You can find docs here. Speaking of the docs - this tripped up both Adam Cameron and me. The default password for the Admin is... admin. The text file that includes the password properties shows a blank value, but apparently the logic is "if blank, use admin", which wasn't something I'd guess.

Script Support for Tags

About. Damn. Time. So every single possible thing now is available in script. Even cfheader. Even custom tags. As an example:

header(name="Access-Control-Allow-Origin" value="*");

QueryExecute

Ok, frankly, I didn't mind the "Query as a CFC" thing we had in CF9 and 10. It matched how other languages handled queries. Yes it was verbose, but honestly it didn't bug me. That being said, yeah, I'm never using it again. Now you can just use queryExecute.

queryExecute("select beer from bar where country=:country and type=:type", {country:'USA', type:'IPA'});

JSON Updates

There were a few changes here. First, structs now will preserve their case when you serialize to JSON. Nice. Second, CF will preserve the type for queries. This has been an issue for a while. In fact, I highly recommend Ben's JSONSerializer as a way to completely bypass JSON serialization in ColdFusion 10. (Well, if you run into issues of course.) It looks like this may finally(?) be licked in Splendor. Please check it out.

Finally, the way ColdFusion serializes queries has been updated to support a new struct form. The docs specifically call out jQuery (sigh), but obviously this applies to ANY JavaScript code. Here is an example output with the new form.

[
 {"colour":"red","id":1},
 {"colour":"green","id":2},
 {"colour":"blue","id":3}
]

You can read about the above changes here.

One more quick note. The REST Enhancements docs talk about how you can customize the serializer/deserializer. This is NOT for REST only! I just did a test where I simply ran serializeJSON on a CF variable in a simple CFM and my custom serializer was used.

Member Functions

So yeah... do you find yourself typing somearr.length() instead of arrayLen(somearr.length)? Now you can do somearr.len(). Member functions have been added all over the place - for arrays, strings, lists, structs, dates, images, spreadsheets, XML objects, and queries.

QueryGetRow

How many times have I written code to loop over the first row of a one row query to turn it into a struct? Too many times. Done.

DDX - 100%

Ok, DDX isn't sexy but I thought it was a cool feature even when it was limited. Now it isn't. Awesome.

Oh, and...

I've been very public about not being a fan of ColdFusion Builder. I think it is an incredible tool and a great IDE. But I'm doing much more client-side development lately and CFB hasn't been very good for that. I can say the new version actually does HTML/JS pretty darn good. Is it enough to make me switch? Probably not. But I currently use Sublime for ColdFusion and I may stop and return to CFB when working with ColdFusion. It is still Eclipse - which roughly feels like the 40-year-old guy at the college bar trying to look cool - but I'm going to give it a shot.