Bolt, Centuar, Flash Catalyst, and Gumbo features

Bolt, Centuar, Flash Catalyst, and Gumbo features

Posted by Brad Wood
Jun 20, 2009 06:56:00 UTC
This Wednesday Adobe's Kevin Hoyt spoke in Kansas City to a captive audience of about 75 people including ColdFusion programmers, HTML/CSS builders, and designers. The meeting was great. It also included Jack Stack BBQ and shwag from Uhlig, Emfluence, and Tek Systems to name a few. Kevin didn't drop any bombs I hadn't heard about yet, but there were definitely a few things I learned about Adobe's up-and-coming products. Here's a quick overview of my notes:
  • Bolt
    • The offical name of Bolt is going to be Adobe ColdFusion Builder. I don't think it has quite the same ring as "Adobe Bolt".
    • It is based on Aptana and will come stand-alone and as an Eclipse plugin. (No surprise)
    • It features code completion and object introspection.
    • IDE Extensibility- Bolt can be extended to write your own plugins using CFML code.
    • Database explorer is built in.
    • I know a lot of people will give it the benefit of the doubt and try Bolt when it comes out but it had better kick some butt when it gets here. I have very high hopes for it.
  • Centuar
    • There's lot of developer productivity stuff being added in.
    • cfscript - ALL functionality will be provided in cfscript. Even full component declaration with return types and cfproperties. CF applications will be able to be written entirely in cfscript.
    • CFCs will have an automatic local scope. This will be very natural since all my methods start with <cfset var local = {}> already. Also, you will be able to declare varred variables anywhere in your method. (It's about time)
    • There will be a server.cfc with an onServerStart() method that fires off when the server starts up.
    • Nested cftransactions will now be possible.
    • cffinally - Use this tag after a cftry to specify a blog of code that need to run regardless of whether an error was caught in the try/catch portion.
    • cfcontinue - Use this tag to end the current iteration of a loop without breaking out of the loop but instead jumping ahead to the next iteration.
    • ORM - ColdFusion will have Java's Hibernate under the covers. This is a very big feature but we didn't have time to get too deep in it. It will be limited to one data source per application.
    • Server Manager - There is an awesome little AIR app that you install on your desktop that lets you keep an eye on all your server right from your computer. It also allows you to change settings on your servers all from one centralized place.
    • cfcache - ColdFusion will support baked in caching. I'm unclear on if this cache is stored in the JVM heap or out of process on the same machine, or even another server.
    • PDF Headers and Footers - Add headers and footers to your PDF documents.
    • Optimize PDF - The cfdocument tag is getting a new action="optimize" where you can have bloat such as bookmarks and links stripped out of your PDFs.
    • Extract PDF text and images
    • cfspreadsheet - Using the POI library, this tag will read and write Excel spreadsheets for you. We needed this one about 8 years ago.
    • cfpowerpoint - Dynamically generate PowerPoint presentations and export them in PDF or Flash.
    • cfimap - Manage mail on an IMAP server just like you can already do with POP3, SMTP, and Exchange.
    • Lucene/Solr - Verity 2K is being replaced (?) with a new search engine for your CF apps.
    • Ajax UI - A whole slew of Ajax UI tags are being introduced including...
      • cfmap/cfmapitem - Make Google maps by declaring a map, and map items with their coordinates. Very slick looking.
      • Media Player - This one looked pretty basic, but it would get the job done if you need to easily embed a video.
      • Ext 2.0 - Adobe will be upgrading the Ext library. Depending on the release of Ext 3, it might make it in.
  • Flash Catalyst
    • This one was quite involved, but the basic gist was that a designer could get the skeleton of a Flex app running pretty quickly without touching a line of MXML.
    • First the designer creates a mockup of the app in Adobe Illustrator.
    • The they import the .ai file into Flash Catalyst.
    • Next, they "tell" Catalyst which parts of the image are buttons, list boxes, scroll bars, etc.
    • They can define states, transitions, and tweak component placement in a nice GUI interface.
    • Once they are done, they can export a skeleton of a Flex application that is ready for the developer wire up remoting calls and actual data.
    • This concept is pretty cool because it allows the designer to to really jump straight from his mock ups to an actual Flex app full of components and transitions without really messing with code.
  • Gumbo
    • Gumbo will officially be called Flex 4
    • The Eclipse-based IDE is being renamed from "Flex Builder" to "Flash Builder"
    • Flex 4 will have a new namespace
    • It will, however, be fully backwards compatible with Flex 3 (Halo) components
    • There is a new graphics engine and animations will be smoother.
    • Looks and behavior are being separated out into their own classes to allow designer and developer to teak their own areas without overlapping.
    • IDE has some very cool wizards to help wire up your ColdFusion services to your flex components. One sample included some very slick pagination that only loaded the visible records in a data grid from the web server.
    • You will be able to directly call some ColdFusion functionality through AMF connections to baked-in web services in ColdFusion 9 to do things like send an E-Mail from Action Script via your ColdFusion server without writing any CFML. VERY cool.
Well, there was much more, but those are the highlights I wrote down/remember. A BIG THANKS to Adobe for showing us love and sending Kevin Hoyt our way.

Aaron Greenlee

All very exciting stuff. Did they show any examples of the Hibernate features?

Brad Wood

@Aaron: Kevin flashed a couple code samples up for ORM and ran a page that read out a user object and modified another. That's about all he had time for. I know Hibernate is a lot more complex than that, so I'm looking forward to playing around with some more in-depth examples.