A few posts ago I wrote about Scorpio for the developer. I was reviewing a topic covered by Adam Lehman at our local Coldfusion User Group. His topic was presented in 3 parts. The first part (covered in the previous post) had to do with developer tools or widgets that are features of the language. His second part had to do with integration. Here's the rundown:
A new "cfexchange" tag will allow a developer to make a connection to an exchange server and manipulate exchange objects globally or on the basis of an account. For an example he showed us retrieving a calendar object. This seems like a nice intermediate fit - especially for all those CF lead management tools that are out there.
Adam showed us a set of tags that allows a developer to assemble slides, swf files, audio and video into a presentation format (like breeze or connect). Personally I thought this was ingenious and (if it works well) it could help us get past some tasks we hate to do as hard core coders - like create tutorials or presentations. I suspect however, that while this presentation framework will be useful in the same way that cfdocument is useful, it will have its own learning curve and syntax that may require work in its own right.
Beyond the items mentioned in the previous post, Scorpio will have tags that allow for things like merging 2 PDFs together or manipulating DDX directly. I am quite excited about some of the PDF possibilities. We have a widely used application that is crying out for the possibility of "off-line forms" (forms to use and save data while not connected to the Internet), but no one is going to pay an arm and a leg (and a first child and a temporal lobe) to buy Adobe's PDF server product. So we've been limping along with excel files.
Of course in that happy world of standards based web services this seems to be a moot point. After all, you can interact with .NET assemblies using SOAP and .NET can utilize services provided by Coldfusion using serializable components - right? Actually, it is a little like a side show carney pitching a teen with acne as "the world famous brail faced boy... come and read the guilt written on his face". The show never quite matches the pitch. The promise of "full integration" with .NET using web services has always been disappointing. There are simply too many data type and object incompatibilities between MS and the Ajax soap libraries to make it work seamlessly. It turns out to be devilishly difficult to simply pass a record set back and forth.
Allairobemedia says that they have solved this problem by integrating .NET assembly usage into createobject(). Behind the scenes (according to Adam) they have solved some of those ticklish compatibility problems and the managed to effectively translate the various objects. He made 2 further points that I found interesting. One point was that this approach to .NET was available on non .NET machines. In other words, you could create a local instance of a .NET object from within your Linux CF Server - pretty neat! The other thing he mentioned was that shuttling the data back and forth was done using a fast binary protocol instead of SOAP and XML - resulting in performance gains. I'm not sure how that is possible from the Linux server, but if it is it's a nice touch.
In my next post I will talk about one of the most exciting things I saw - the new admin tools and interface. The monitoring stuff is really outstanding.