Ensemble Tofino: Flex/Actionscript in Visual Studio

For as long as I can remember (please, no snide comments from the peanut gallery - yes, mom, I mean you), I’ve wished for Actionscript support in Visual Studio. Fed up with the Flash IDE’s inability to keep up with the capabilities of other modern IDEs, over the years I’ve turned to various external editors for AS coding joy; I used to swear by SE|PY, and more recently have been known to shout the pleasure that is using FlashDevelop from the proverbial (and virtual) rooftops. So you can imagine my excitement on seeing Jon Dowdell’s tweet about Tofino, a Visual Studio plugin adding support for Flex and Actionscript development directly in Visual Studio.

This is, I have to say, cool as hell. I love working in FlashDevelop, but as good as it is (and it is freakin’ good), Visual Studio (imnsho) takes the cake as far as IDE’s go. It’s powerful, fast, makes a developer’s life easier, etc (yes, FD does all that as well, just not quite to the same extent). It’s particularly cool in that people are seeing the benefits of working inside of Visual Studio, particularly for projects that have a .NET based back-end layer. So of course I had to download and install the beta.

Off I go, and, with beta’ed breath (ewww), fire up VS and create a new project. Lovely options - Flex App, Flex Library, or Actionscript Application. I can feel the love. Being more of an AS junkie than Flex-able, I create a new Actionscript project. I like the default project layout (though it would be nice if it asked for a default namespace); it includes a src directory, bin directory, and an html template directory (which, though I haven’t tried yet, appears to be editable and allows one to customize the html generated on publish/compile). Quickly open up the default .as file, which contains a class that lovingly extends Sprite. I hop into the constructor to add a call to super() and…

Type s and press CTRL+Space. Bam. The nothingness I am greeted with rattles my teeth. What’s this, I think to myself. No code hints/intellisense? Hrm. Maybe they’ve only got that for MXML at this point. Ok, I’ll try a Flex project. Open the default MXML, try adding an opening chevron and hitting CTRL+Space; again, nahda. Add an mx: and try again? Still no love.

Ok, it’s a beta. I try simply compiling the app (Flex now as the default project), which works beautifully, opening up Firefox and showing the “Hello, World” label. Well, that was fun.

I’m not trying to detract from what they’ve done - this is a huge step forward for the Flash (and .NET/Visual Studio) community. It will be even nicer as it continues to evolve and adds things like Intellisense support, unit testing (to be fair, it might have that now, haven’t tried it, though), a visual mxml editor, integration with the Flex ISAPI filter for IIS, etc. But to me it’s more of an alpha than a beta (ok, it purports to support debugging, which alone makes it a beta, but from a pure “writing code” perspective, there’s a lot to come.

My wishlist, in no particular or practical order:

  • Integrated ASDoc or XML Documentation (eg: it reads the documentation and includes it in a tooltip when relevant, for example when showing Intellisense or hovering over a method/class/property)
  • Actionscript Intellisense (for both intrinsic/flash and custom classes)
  • MXML Intellisense
  • Support for non .swc references (eg: reference a folder structure containing .as without bringing it into the folder structure of the project)
  • Visual MXML editor
  • Use SwfObject as the default embed methodology (or allow a choice, either global or on a project-by-project basis)

There’s probably more, but that’s my ask for today. And though my initial review may seem a bit lukewarm, I’m really, really, really excited about this. I’ll be following proress on Tofino’s development very closely.

Get it for yourself @ ensemble.com.

Share me: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Reddit
  • StumbleUpon
  • Technorati

FlashDevelop 3 beta 3

has been released. Check it out.

It’s still in beta, and, regardless, it is, IMNSHO, the best Actionscript IDE on the market, bar none.

How’s that for lots of commas?

Get it @ flashdevelop.org

Share me: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Reddit
  • StumbleUpon
  • Technorati

Adobe CS3 Trials Nix The Downloads?

If you’re looking to download the Adobe CS3 Trials, well, get your hopes down now, because it is not going to happen.

Adobe is offering trial versions of CS3, however, you will need to order a DVD and have it shipped to you ($9.99 for most editions, $24.99 for the Master Collection, and I believe those prices are North America only). While you won’t be able to download editions of the Suite, you will be able to download trials for the individual products (eg: Flash, Photoshop, etc) once they are released..

You have two choices:

  • Download a trial version of an individual creative application, such as Adobe InDesign CS3 or Flash CS3 Professional, directly from our website at no charge from Adobe.
  • Order a trial version of an edition of Adobe Creative Suite 3 on DVD. Adobe Creative Suite 3 editions integrate multiple creative products into unified design environments for print, web, interactive, mobile, and/or video/film production.

The good news is that the trials are full functionality, and you can easily convert a trial to a full version with a serial number (which was the standard with Macromedia products in the past, but apparently not for Adobe products).

In all fairness, I just downloaded my version of CS3 Web Premium in the office, and at 2.2 GB it took a decent chunk of time (pretty fast, though, all things considered). Dial up customers will appreciate the DVD’s.

Read more @ adobe.com/special/try_buy/trial_faq.html

Share me: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Reddit
  • StumbleUpon
  • Technorati

Gone Dark (no such luck . . .)

For those regular readers of my blog (Hi Mom, Dad!), you’re probably wondering why, over the past month or so, you’ve not been graced with the usual pearls of wisdom that I so wittily impart. Hardcore followers may have indeed noticed my lack of a “new years” post (really, if you’ve not been following me since my days on GeoCities, you’ve really missed a lot), coupled with the lack of a “Hi, it’s my birthday” post, and may have gotten the impression that I’ve fallen off the face of ye good Earth. (In 24 parlance, that would be “gone dark“. Hence the title.)

Well, I haven’t.

(For those of you uninterested in why none of the above has happened, you may want to leave now. Then again, if you are uninterested but are simply looking for something to complain about, by all means - read on, spread the wealth, and have your own private bitch-fest on my account.)

(more…)

Share me: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Reddit
  • StumbleUpon
  • Technorati

Did Actionscript 3.0 Miss The Boat?

Sadly, I haven’t had quite the chance to dig into AS3 (and Flex2) that I had hoped. My one big-ish project went out the window (an FTP client), as I had almost no time to work on it (I got the basics going, connection, but not much beyond there). I have mucked about a bit, but…alas, such is life. We recently got a copy of the Actionscript 3.0 Cookbook in the office, so I thought it would be a good opportunity to bang out some subway time and do some reading to get up to speed.

And, I have to ask, did Actionscript 3.0 miss the boat?
(more…)

Share me: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Reddit
  • StumbleUpon
  • Technorati

Multiple Interfaces

Had a thought: how do people handle mutually exclusive interfaces?

I suppose there's no such thing as mutually exclusive interfaces from a code perspective, but from a logic perspective, there may be. For example, let's say you do one of two things based on whether a class implements one of two interfaces. What do you do if something implements both?

Lousy code:

  1. // IAmChocolate.as
  2. interface IAmChocolate { ... }
  3.  
  4. // IAmNotChocolate.as
  5. interface IAmNotChocolate { ... }
  6.  
  7. // Candy.as
  8. class Candy { ... }
  9.  
  10. // ConfusedCandy.as
  11. class ConfusedCandy extends Candy, IAmChocolate, IAmNotChocolate { ... }
  12.  
  13. // Application.as
  14. class Application
  15. {
  16.      public static Main() : Void
  17.      {
  18.           var candy:Candy = new ConfusedCandy();
  19.           if( (IAmChocolate(candy)) != null )
  20.           {
  21.                // do something
  22.           }
  23.           else if ( (IAmNotChocolate(candy)) != null )
  24.           {
  25.                // do something else
  26.           }
  27.      }
  28. }

Yes, not great code, and I suppose the logic could be to not use an else if, but that will depend on what needs to be done. Really, I'm thinking more at the library/API level - for a distributed library, what do you do when you have one Interface that should not be combined with another? The only real solution that comes to mind is to use classes in those cases instead of libraries, but...

Ok, really, the answer is probably to avoid the situation. Considering I haven't come up with a real scenario where this would be a concern (I'm thinking about it, though).

One of the things that I'm thinking about is .NET Generics, which allow you tell a Type argument that it must bind to a class or interface (eg: for a given Type argument, it must extend a given class or implement a given interface to be passed as an argument to the Generic class/method). But that's the opposite situation - and obviously doesn't map to Actionscript at all (not that this is exclusively an Actionscript question, because it most definitely is not).

I realize this is probably pretty esoteric, but...Any ideas?

Share me: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Reddit
  • StumbleUpon
  • Technorati