Joeflash’s Enigmacopaedia


Server Side ActionScript 3.0: Coming to a ColdFusion Server Near You

Posted in ActionScript 3.0, Flex, ColdFusion by Joeflash on the November 18th, 2008

Okay I was going to wait until after MAX to blog about stuff, but this cannot wait: as of about 7:30pm PST, at Adobe MAX 2008 SF, the sneak peeks announced that ColdFusion 9 will have server side ActionScript 3.0 capability. I’ve been waiting for this since Macromedia Comm Server, never mind FMS…

Correction: they didn’t say ColdFusion 9, they said they were working on this for a future version of ColdFusion Server.

You know, Flash Catalyst (aka Thermo) is cool, I mean way cool. And CoCoMo, and the next version of FMS with RTMFP is cool, and Alchemy just rocks the house, and Configurator is nice in a nostalgic kinda way (for me). And Gumbo, well it is definitely cool, but it’s not really news.

I mean, I was blown away enough by the sneak peeks Flash Player Multicast (via RTMFP), Nitro (SWF widgetization), Durango (realtime drag drop HTML/Flash/AIR component mashups), the Content Intelligent Toolkit, MeerMeer (multi-browser realtime virtualization)…

But what did it for me, the whole payoff for travelling across the continent from Toronto to San Francisco to go to MAX, was very last on the list. Server-side ActionScript 3.0, with the next a future version of ColdFusion Server.

If that were it, well, I would think, hey, that’s cool. But it’s how you can do it that totally rocks the house, that’s got me dancing in the streets.

There are three ways, from what I could tell:

1.     ColdFusion tags on the server with ActionScript 3.0 in a <mx :Script> block which generates HTML (and whatever other server-side code I would guess).

This brings the power of AS3 to ColdFusion developers. Combined with the new eclipse-based ColdFusion IDE which can sit alongside any other Eclipse Plugin (like Flex Builder), and CF will be a whole new ballgame.

2.     MXML & AS3 in Flex Builder.

Now you can author your MXML and AS3 in Flex Builder for the client-side code calling a Service operation on the server… written completely in ActionScript 3.0 inside a
<mx :Script> tag, no ColdFusion, using a .sas file on the server.

3.     AS & SAS in the same MXML file in Flex Builder, compiled using the next v. a future version of ColdFusion Server.

This is the one that did it for me, the one that brought home the bacon, oh yeah!!! :)
So now, as a Flex developer, I don’t have to know server-side code to create a service or a remote object on the server. I can just write:

<mx :Application ... >

    <mx :Script runat="client">
    ...

    <mx :Script runat="server">
    ...

</mx:Application>

Update Nov.19,3:30am PST: Sorry if you saw the wrong MXML in the last five hours, wordpress kept trying to correct the invalid XHTML of the MXML tags, but it’s fixed now.

…and I’ve got code running on the client and the server, all in ActionScript 3.0,
in the same file.

WOOHOO!!!

Now I don’t have to be freakin’ Java or PHP or CF expert just to code a backend-enabled Flex app.

Adobe, you frakin’ rock.

11 Responses to 'Server Side ActionScript 3.0: Coming to a ColdFusion Server Near You'

Subscribe to comments with RSS or TrackBack to 'Server Side ActionScript 3.0: Coming to a ColdFusion Server Near You'.

  1. Matthew Fabb said,

    on November 19th, 2008 at 12:19 am

    Thanks for the info Joe!

    I was following the Sneak Peaks via the live blog from Serge Jespers and Andrew Shorten (http://www.webkitchen.be/2008/11/19/live-blogging-max-2008-sneak-peak-session/), which was great, but it was point form without many details. So when Server Side ActionScript came up, they failed to mention how it would run, which left me wondering what kind of server was handling that code.

    Also while waiting for the event to start they took a random picture of the audience, which if I’m not mistaken is a picture of you in the middle:
    http://media.coveritlive.com/media/image/200811/j8ZgFTjppTDSC00003.JPG
    :)

  2. Rick Mason said,

    on November 19th, 2008 at 5:19 am

    I was discussing this tonight with another long time Cf developer and we were both a little lost on how this is something new. It’s been part of CF since the TinCan (Flash com ) beta. I believe the multiuser app that 10 Plus 1 built made extensive use of this for all their sql queries. It enabled them to leverage CF Server without writing CFML.

    What was more interesting was in an earlier session today they showed the CF9 will be able to expose certain tags as webservices that you’ll be able to reference through a cf namespace in mxml. So you do things like:
    or that let you tap the power of the server to generate PDF’s or images and return that data directly to mxml/as3 without having to create a proxy cfc.

    The serverside actionscript seems mostly like an old feature that they are revising to support a bunch of new features. The other one being the persistence framework they are building in CF9 that will allow it to manage persistence of data in local AIR Sqlite db’s.

    Don’t get me wrong, I think this is a huge thing for cf, but I feel like it’s only a complimentary part of some much larger features they are building into CF9.

  3. Joeflash said,

    on November 19th, 2008 at 6:18 am

    @Matt: Yup, that’s me with the Fx t-shirt :)

    @Rick: LOL, I get it: old news to CF developers, but news to me. I’ve never paid much close attention to CF, and coming from the Flash/Flex side of things, it just seemed like a dream come true to have server side ActionScript 3.0, not in the context of a CF application, but from the perspective of a Flash/Flex/SWF application on the client-side, and in Flex Builder when I’ve been waiting for years for someone, anyone , please do something with FMS’ crappy AS1 SSAS.

    But as Ben Forta reminded me when I bumped into him tonight, thanking him for bringing this about, he said (paraphrasing) “Well, just because we demoed it doesn’t mean it’ll be in the final product. We may completely change our minds about it.”

    Which I suppose is the safe thing to say, given that it’s pre-alpha. But considering how long people have been asking for it, and that they showed it to us, I think it highly unlikely that it will go away. Just that tags and code demoed might not be the same in the final release.

    Which is why it’s called a “sneak peek” and not an open alpha, or beta.


  4. on November 19th, 2008 at 11:18 am

    ” I’ve got code running on the client and the server, all in ActionScript 3.0,
    in the same file.”
    This is not a good thing. You’ve just wrecked encapsulation, layering and tiered service. Way to go.

  5. Devin said,

    on November 19th, 2008 at 12:26 pm

    There’s confusion as to whether this has anything to do with CF9 or not. I didn’t make it to max, but from the live blogging I saw as well as screenshots, I saw nothing that relates this to CF. Did they specifically mention this as part of CF?


  6. on November 19th, 2008 at 8:56 pm

    It was just a concept for the sneak. I didn’t get any indication from Adobe staff that it was on the roadmap for Centaur at all.

    And, as Rick notes, some SSAS has been in CF since 6.1 in 2003.

    Given the push in Centaur for making CFscript a first class language, I’m not sure how valuable the ability to run AS on the server-side will really be. I think it’s premature to get excited about the sneak peek.

  7. Joeflash said,

    on November 20th, 2008 at 1:43 am

    Since it’s a sneak peek, they didn’t specifically mention centaur or the next version of CF, my bad. They definitely did say they were working on this for some future version of ColdFusion Server. I’ll fix the post above to reflect this.

    And so what if SAS was enabled in CF back in 2003? Flash Communication Server (now FMS) enabled the same thing even earlier. Doesn’t change the fact that coding SAS in ActionScript 1 sucks wind. (No typing? No classes? Prototypes?)

    And if some developers feel that allowing SAS and AS in the same file is a bad idea… well it is, if you’re coding an enterprise app. I also would not create an entire Flex application in one MXML file using the Model tag for my data, either. Doesn’t change the fact that creating AS and SAS in the same file is a neat feature. Isn’t that why ColdFusion was created in the first place? To make it simpler and easier for developers to create quickly prototyped, powerful backend solutions very easily? That’s like the pot calling the kettle black.

    Man, am I like the only one who gets how cool this is?


  8. on November 21st, 2008 at 10:40 pm

    Looks to be very inspired by Jaxer, with the whole runat mechanism. Still, about time. I used ColdFusion for many years, this is the kinda thing that could possibly bring me back.

  9. Judah said,

    on November 23rd, 2008 at 6:11 pm

    This is the coolest thing since slice bread.

    I don’t like writing server side code. There are a bunch of reasons it sucks.

    1. You are effectively breaking your application code into two or more separate pieces that have to talk to each other.
    2. Tooling for server side technology has been lacking in many ways behind client side technology
    3. Debugging bites
    4. Conversion between data types and creating value objects sucks

    To break it down it feels like a waste of time. I should be able to easily get or put data on the server without having to jump through hoops. Maybe I’m lazy or maybe I’d like my efforts to be efficient. I dunno. :P

    Flex is a component architecture. So, in a perfect world, the database and server side logic could be wrapped up in “Database” component MXML tag and it’s recordset (array collection) bound to other components dataprovider property. Simple two or three lines of code.

    For example:

  10. Judah said,

    on November 23rd, 2008 at 6:13 pm

    Trying again:

    <Database id=”products1″ table=”productsTable” sort=”price” />

    <DataGrid dataProvider=”products1.lastResult” />

  11. Daniel Leblanc said,

    on July 16th, 2010 at 8:54 pm

    AS3 changed Flash into a major programming language.

    I want to be able to use code I work with from my games, applications and internet sites when I program server-side logic.

    Please Adobe give your programmers the ability to write server-side code in a living language!

Leave a Reply