I attended Ben Forta's presentation on Blackstone last night, and got some juicy bits out of it. Here's a brief recap.
The meeting was held at MacKenzie Hall at OHSU, a very nice venue, but there were only about a dozen people there (where were you Portland Cartweavers? tsk tsk) The meeting began around 6:10 or so and went something like this:
Ben acknowledged that Macromedia has been secretive to the point of paranoia about product information, which is a sharp contrast to the very open style Allaire took with their ColdFusion releases. Macromedia is attempting to find a middle group with the newest ColdFusion release, because they realize that developers make a long-term investment in server-side technologies, and need to know what's going on with new development. So Ben made sure to let us know that they are going to far more open with upcoming ColdFusion features and products. Of course, right after that, he made sure to let us know that this is all pre-release information and is subject to change, so we need to be very understanding when he shows something they don't deliver :).
Ben went on to let us know that Macromedia is deeply committed to ColdFusion. This is the 8th straight quarter of increasing ColdFusion sales for Macromedia, which is better than nearly every other product they have. They also began building Blackstone in 2002 right after the CFMX release, and have put nearly 8000 man hours of actual new development in Blackstone. That's new features people, not bugfixes, because Blackstone is built on top of CFMX, which is already a very stable and solid platform.
The reason they decided to build Blackstone on top of CFMX was because it was already a great product. It had the most man hours, largest team and most open beta that Macromedia has ever had. It was also a completely architectural release; a complete re-engineering of CF5. CFMX included a new compiler, new java internals, and a commitment to standards. For this reason there are no architectural changes planned any time soon, after all, they're not needed. He also mentioned that there are no price changes planned as well, so ya can't go wrong there.
The Blackstone timeline goes a little something like this:
- CFMX Updater due out beginning of Fall 2004. This will be a roll-up of 60+ hotfixes and improved database drivers, but will not be a required update.
- Public beta of Blackstone will be in Fall of 2004
- Release late 2004, early 2005
Goals of Blackstone
- Make new users more successful - concentrate on beginners
- Give existing developers features they can really use
- Help you make your users happier
- Improve deployment reliability and options
Data Entry Enhancements
Ben first showed us the new and improved
<cfform> tag, which can actually create XForms. XForms are an XML presentation of a form, which can then be transformed with XSL. The problem with this is mainly browser support. Blackstone will take the browser out of the equation, and do the XForm processing on the server, and then feed the transformed HTML to the client. This will allow you to "skin" your data entry forms. You build one
<cfform> and apply any XSL stylesheet to it that you want by using an
Bye bye applets,
cftree based on Flex
We all hate java applets, so Blackstone will now generate the
<cfgrid>s in Flash, ala Flex. Just use
format="flash"> and TADA, a nifty Flash tree control, smooth motion, fast loading, and damned slick. Do the same with
<cfgrid format="flash"> and get a data entry/edit grid, fully built in Flash. You can use styles to control the UI, but this will be a limited set of controls. This is definitely not Flex, and if you want more control, you should be using Flash MX 2004 or looking at Flex.
But grids and trees aren't the only thing you can do with Flash, just use
format="flash">, and you get a totally flash based form based off of the exact same setup that is used to generate XForms. But if you're using the Flash format, you can also use
<cfformgroup>s to build tabbed UIs and accord ian panes amount other things. You can also bind form fields together using AtionScript expressions.
Ben didn't demo this, but he mentioned that they would be greatly improving client and serverside validation of user inputs. He also mentioned adding a combination of client+server-side validation based off of one
<cfinput>, thereby taking care of both sides of the equation automagically.
The Printed Word
All hail the
<cfdocument> tag. This tag allows you to wrap some HTML in a tag, and then set it to generate either a PDF or a FlashPaper SWF, and if we all yell loud enough, even RTF documents. The new tag also includes
<cfdocumentitem> tags, which allow you to set up headers and footers, and even specify page numbering, such as
#cfdocument.currentpagenumber# of #cfdocument.currentpagecount#. Ben mentioned that you will even be able to set passwords on these dynamically generated PDFs, so it should be purty darn handy.
Blackstone will also introduce the <cfreport> tag, which will allow you to build reports based off of cfr files, which will be generated by a ColdFusion Report Builder IDE which will be bundled with Blackstone. The IDE looks like most other report builder IDEs, including the report UI of Microsoft Access. You can use any CFML function in the cfr file, which is actually just a plain XML file at runtime. This means that you could even programmatically build the cfr files for dynamically formatted reports as well. No more fighting with Crystal reports. You would simply pass a query to the cfr, tell it what format, and that's it (the report builder even includes a query builder from CF Studio):
<cfreport format="pdf" template="cfreport2.cfr" query="#myquery#">. The
<cfreport> tag will support PDF, FlashPaper and save to disk, along with any other format that the
<cfdocument> tag eventually ends up supporting.
New Deployment Options
Ben promised this years ago and wasn't able to deliver. With Blackstone you will be able to compile .cfm files into Java bytecode which can be distributed and executed without the original .cfm files being present. The cfm files could be decompiled, but they'd just decompile to Java, and not the original CFML source, so you can then protect your source code.
You'll also be able to package your application + the ColdFusion engine into a single Java archive and deploy as you would any other Java application (WAR or EAR). Blackstone will also great simplify multiple ColdFusion instances in the Enterprise Edition, which means that you'll be able to click a few buttons in CF Administrator to create, clone, stop, and start multiple ColdFusion instances. No more getting your hands dirty with Java (blech).
Getting back to one of the primary goals of Blackstone, making it easier for newbies, they are planning a large number of Dreamweaver extensions. Ben demoed one called the CF Login Wizard, which is (you guessed it) a wizard which walks you through protecting a Site or Directory. You just browser to the directory you want to protect, choose your authentication method (simple, NT Domain or LDAP), whether to use the browser login prompt or a login form, click done, and you get a login form, a cfc, and all of the wonderful things that go along with it.