ColdFusion Flash Forms Versus Macromedia Flex

I have been visiting lots of customers recently, primarily demonstrating ColdFusion MX 7 functionality. One question that keeps cropping up (particularly from customers who have been looking at Macromedia Flex) is “why would I need Flex if I have Flash Forms in ColdFusion MX 7?”.
I’ve written about this previously, (and Tim Buntel and I even discussed it in our MAX keynote), but apparently there is still some ambiguity about this one, so …
One of the goals of ColdFusion MX 7 was to improve Web page forms; both improving the development of forms, as well as the end-user experience. To this end we introduced in ColdFusion MX 7 additional validation options, support for XForms, and a feature we call Flash Forms. The latter makes it possible to generate sophisticated and engaging Flash based forums using simple CFML tags (and some optional embedded ActionScript), nothing more is needed, just ColdFusion and CFML. ColdFusion uses these tags to dynamically construct ActionScript which is compiled into a Flash SWF which in turn is embedded into your page. In other words, ColdFusion MX 7 allows CFML developers to start to benefit from the power and capabilities of the Flash Player without having to know a whole lot about Flash (and without needing anything more than ColdFusion). ColdFusion does this by taking advantage of Flex technology built right inside of ColdFusion MX 7, ColdFusion is leveraging a small part of Flex to provide Flash Forms functionality.
But it is just a small part of Flex. Using ColdFusion it is possible to create forms that are essentially HTML form replacements. Flex, on the other hand, does a whole lot more. So what is the difference between the capabilities of Flex and that of ColdFusion Flash Forms? Consider the following:

  • ColdFusion Flash forms are just that, forms, drop-in replacements for limited HTML functionality. Flex can also be used to create forms, but forms are just a small part of Flex applications. And the word applications is key. Flex is all about complete application front ends which may indeed include forms, but will also include different windows and data grids and all sorts of back-end interaction and different views and sophisticated user interaction and a whole lot more.
  • ColdFusion Flash forms are page based, click on the submit button and the form is submitted just like an HTML form. ColdFusion Flash forms cannot make callbacks to the server via SOAP or AMF the way Flex can. Similarly, when ColdFusion forms are submitted they force a page change, unlike forms within Flex applications which allow developers to execute server-side actions in response to client-side events without page refreshes. For example, if you were editing data in a Flex data grid you could submit changes as they were made, or as you moved from row to row within the grid. You cannot do this in Flash Forms, the Flash Forms grid keeps all changes locally until the form is submitted at which time all changes are submitted to ColdFusion for processing. Similarly, if you were using a form with multiple pages (a tab navigator or an accordion control), Flex would allow submission as you moved from page to page, whereas ColdFusion Flash Forms would not. As I already explained, Flash Forms are designed to work like HTML forms, and so they are submitted to an ACTION page just like HTML forms. This makes dropping Flash Forms into existing applications quick and easy, but it does not allow for the sophisticated client-server functionality made possible by Flex.
  • ColdFusion Flash forms are limited to the controls made available via ColdFusion. These cannot be subclassed and extended with the way controls in Flex forms could be, nor can you write your own controls from scratch the way Flex developers can.
  • Developers cannot control the Flash code generated by ColdFusion, and cannot write their own ActionScript to be included (except for simple inline expressions). Flex developers obviously can do so, and a whole lot more.

In other words, the Flash forms generated by ColdFusion MX 7 expose a small subset of Flex’s capabilities to ColdFusion developers. But ColdFusion MX 7 is in no way an alternative to Flex. If all you need is better forms, and want to take advantage of Flash to deliver a better forms experience, then ColdFusion MX 7 Flash Forms may be exactly what you need. But as soon as you need more, you’ll need to take a look at Flex.

10 responses to “ColdFusion Flash Forms Versus Macromedia Flex”

  1. Scott Johnson Avatar
    Scott Johnson

    Thanks for making that "crystal clear" Ben. 🙂 Now… when is Macromedia going to provide an opportunity for third-party hosting companies to provide a commercial hosting solution for Flex like they can with ColdFusion? Then maybe, the true benefits and power of Flex may be realized by the masses (and poor folks like me).

  2. Ben Forta Avatar
    Ben Forta

    Scott, I know that that that is something the Flex team is working on, but no details yet.

  3. Ray Buechler Avatar
    Ray Buechler

    It should also be pointed out that there is a hard limit of 64k to the generated actionscript. If you have a form with a large number of fields it is very possible to hit that limit.

  4. Anj Avatar

    Yes, the CF Flash Forms are more of a ‘marketing teaser’ in my view. They open the door to the idea of what Flex can do, but when you start serious work, you start running headlong into their limitations.
    I’d love to work with Flex. It’s probably the single best solution to some of the user interface issues I face. However, Macromedia has priced the product outside the reach of many organizations (including mine).
    A solution that only gives me half the technology I need isn’t much good to me. And I can’t afford the ‘full monty.’ So… off to work more with Ajax.
    I had similar issues with the interfaces between CF4.5/CF5 and Java. You folks gave me the solution to that with the MX port. Perhaps in a couple more versions, I’ll get the Flash support I need too. 🙂

  5. Allen Manning Avatar
    Allen Manning

    Flex without functions is quite limiting, but using CFSaveContent can make it a bit more readable:

  6. Donald Bickel Avatar
    Donald Bickel

    I was initially very excited about Flash forms but on my very first use of the, I have hit the infamous 64kB limit. The fact that this limit exists is not covered anywhere in Macromedia’s documentation but it is VERY easy to hit it. I’ve already removed all styling from the form in question (limiting enough in itself) and after about 100 form fields I have hit the unpublished limit.
    I think Macromedia should SERIOUSLY consider either removing this limit or at least doubling it. With the product as is, the Flash form functionality can only be applied to very simple and short forms. I now have a client that is very excited about the Flash form possibilities that I’ve shown them but now I am going to have to crush their dreams now that I have hit the limits provided by ColdFusion. Every time something like that happens, it’s a personal credibility hit and a credibility hit to ColdFusion.

  7. Joshua Dale Avatar
    Joshua Dale

    I guess my question now is… When will you lower the price on flex???
    Unfortunately, I don’t have $10,000 in my pocket at the moment… :o(

  8. Jason Blum Avatar
    Jason Blum

    How about un-handicapping the Flex server in MX8 and supporting a language, "CFMXML"?

  9. Bernie Avatar

    64k Limit? It seems to me that it is a 32k limit. Am I right or is there a way to get over 32k?

  10. Colleen Avatar

    I have a Q, is there a way to move the tabs from the the top to the bottom or on the side.

Leave a Reply