I wound up with a HUGE document when I summarized most of the sessions I attended at CFUN, so rather than having one large post that no one will read, I'll have several large posts that no one will read! ;-) Some very cool stuff about Blackstone was covered by Ben Forta at CFUN this year, so read on for more ...
nce it sounds like we aren't going to be doing the Breeze presentation of Ben Forta's Blackstone (CF 7) tour on 7/8, I thought I'd take a moment and summarize the new features he revealed today at his keynote presentation. Some were things we already knew about but he gave a lot more detail, and one item was revealed for the first time at CFUN and won't be discussed during the rest of his UG tour (although he specifically said we were allowed to spread the word). I know there were a couple of other guys from our UG at CFUN so I'm sure they or I will be happy to discuss more details at our next meeting. (I also ran into a couple of folks from Dallas who didn't even know there *was* a DFW CFUG, so I encouraged them to start attending!)
GENERAL DISCLAIMER: All this information is subject to change and may or may not be included in the final Blackstone release.
The first thing that was revealed about Blackstone was a bit more specific timeline. Right now it's in a very limited alpha. Later this summer or early Fall, an updater for CFMX 6.1 will be released. The updater will basically be a roll-up of all the hotfixes that have been released for CFMX 6.1 as well as some significantly improved database drivers. According to Ben Forta this isn't even a recommended release, but they found great improvements in the database drivers for Blackstone so they'll be releasing them for use with CFMX 6.1.
In Fall 2004 there will be a relatively open beta that will start out with a small number of people but quickly grow to a large number. He said they were already very pleased with the alpha so everyone at MM is feeling great about the product. Then sometime in the December/January/February timeframe they'll likely ship the product.
As for goals for Blackstone, one of the things he emphasized is that this is the first true benefit in CF of the Allaire/Macromedia marriage. When the merger first happened CF5 was just about to ship, and MX was of course a largely architectural release to get CF on the Java platform, but with all that work behind them they're now able to focus on fantastic new features that incorporate the strengths of CF as a server-side technology with the strength of Flash as a presentation layer technology.
Specific goals for Blackstone that he mentioned:
1. Make new users more successful: new users of CF is currently the most significant area of growth in the CF community. (This is great news!) He didn't get into many specifics but mentioned better installation, wizards, etc.
2. Give existing developers features they can really use.
3. Help us as programmers make our users happier with our applications (this gets into the user experience as well as the new output options we heard about at the world-wide user group conference presentation).
4. Improve deployment options as well as reliability.
New features--we heard about many of these, but to recap:
1. Significant data entry enhancements: skinnable forms will be supported using XForms, which is an XML/XSL-based way of building HTML forms. XForms as a technology has been around for a while, but as with everything CF makes it extremely easy to implement. The quick example he showed used cfinput tags and the attributes format="xml" and skin="#someXslFile#" in the cfform tag. By simply changing the XSL, the look and even the position and order of the form elements can be changed instantly without rearranging any of your cfinput tags.
Basic XSL files for creating forms using XForms will supposedly ship with Blackstone. You can also extend cfinput by creating your own cfinput types (he mentioned a "dual select" as one possible example), so the possibilities here seem very cool.
2. Extending the forms/data entry improvements are the Flash forms we saw in the WWUG presentation. Nothing really new here other than a VERY impressive example in which he basically recreated the entire MS Outlook scheduling forms with a few simple cfform/cfinput tags. I was also reminded of all the fantastic form element interactivity (e.g. binding form elements to one another) and validation that will be possible with Flash forms. The tab and accordion elements of the Flash forms should also enable a much better user experience for complex data entry.
3. Printing and Reporting. We already heard about cfdocument for outputting PDF and FlashPaper documents. What I don't think we heard about at the WWUG meeting was the reporting tools. The cfreport tag will generate more complex PDF or FlashPaper reports using CFR templates, and the report data can be generated using a query, web service, or whatever else you want to use to provide the data to the report. A CFR template is an XML file, and they are also releasing with Blackstone (licensing, versioning, etc. is "to be determined") a new tool called ColdFusion Report Builder. This is a visual tool for building reports, handling headers, footers, etc., that is apparently based on some features they previously had in CF Studio, but the big advantage here over other reporting engines/tools is that the query data isn't contained in the reporting tool/templates themselves, but instead the query data is bound to the report at runtime. You will also be able to use CF expressions within your reports very easily, so the flexibility should be quite nice.
4. Deployment Options. Blackstone will offer the ability to distribute compiled code (Java bytecode) that will contain no CF code whatsoever, and the packaging of CF apps as a standard WAR or EAR file for direct deployment on a J2EE server will also be supported. For each CF app deployed this way you will be able to choose whether or not to deploy it with the CF administrator, whether or not certain features are enabled, etc. You can of course currently deploy CF apps on J2EE, but it is decidedly non-trivial. (As an aside, I went to a BlueDragon presentation and on BlueDragon it is INCREDIBLY easy, so it's nice to see CF keeping up and realizing they needed to improve this area.) The benefits of running CF apps on J2EE are pretty numerous so I won't go into them here, but I'd be happy to elaborate at a meeting.
5. Vast improvement in the ability to run multiple virtual instances of CF. (Again, I'll leave out the details but we can certainly discuss in person.) This is also something you *can* do currently but it's a bit of a pain (and again here is very easy in BlueDragon). One of the things that just changed last week is from the CF administrator you will be able to deploy an instance *remotely* which is very cool for a multiple production server environment.
6. This was the CFUN-only announcement. The slide in the presentation was entitled "Beyond HTTP", and while it took a moment for this to sink in for me, I think the implications are pretty profound. The way he introduced this concept was to explain that while we think of CF as a way to build web apps (which it is, of course), there's nothing that ties CF specifically to web applications. It's running on the server and has traditionally been used more or less only for web apps, but there's nothing to say that it can't do a whole lot more.
Basically they have developed a way to provide gateway access to the CF server that can respond to any request over any protocol. No longer will we be limited to HTTP, but things like sockets and asynchronous events will be wide open to CF. Specifically, gateways will be created in Java, and these gateway instances are associated with CFC methods to respond to events. What this means is that it will be much, much more possible to write interfaces in CF that can interact with any network system in pretty much any way you can imagine.
The specific quick example he used reminded me a lot of the Unix queueing systems we built when I was at Neiman Marcus. Basically he showed a page with a list of names on it, and he then dropped a comma-delimited text file containing an additional name into a directory on his machine. This fired off an event that told CF that a file had been dropped in the directory, so that file was grabbed and parsed by a CFC and the additional name was inserted into the database. Within a few seconds he hit refresh and the name was displayed on the CF page.
That may sound like a "so what" example, but as I said, I think as we consider the implications of opening up CF to be able to talk to any system in more or less any way, the possibilities become nearly endless. I think it will still take a while for the ideas about this to sink in, but I've already thought of several things that weren't possible with CF in the past that will certainly be possible now.
I'll quit rambling now--I just wanted to let everyone know what "the man himself" had to say about Blackstone. I also want to let everyone know what a GREAT conference CFUN was this year and encourage you all to come next year. It's absolutely fantastic to meet with other CFers and see how passionate everyone is about what they're doing with CF.
I'm really energized after this conference and very excited about the possibilities of CF for the future. I took copious notes on many of the presentations and will be happy to share, present, or do whatever I can to get the information out.