RobotLegs AS3 v0.2: ReversiblePants

RobotLegs AS3 is a Dependency Injection Driven MVCS Framework for Flash and Flex inspired by PureMVC.

RobotLegs AS3 v0.2 (codename ReversiblePants) is up on GitHub:

Now with DI/IOC and Reflection adapters instead of direct dependencies on the SmartyPants-IOC framework. By providing your own adapters you can run RobotLegs off a DI/IOC/Reflection framework of your choosing.

More info (and updated demo):

http://shaun.boyblack.co.za/blog/2009/04/16/robotlegs-an-as3-mvcs-framework-for-flash-and-flex-applications-inspired-by-puremvc/

I should point out that RobotLegs AS3 is still very much a proof-of-concept framework. It works, but it’s architectural design might change a bit on the road to v1.0. That said, I’m using it underneath a large-scale, real-world project, and it’s working great!

Posted in Robotlegs | Tagged , , , , , , | 11 Comments
  • Benoit Jadinon

    I like the new DI abstraction, it actually makes the whole thing much easier to use, it feels more structured. your framework is groing on me ! I like not having to cast anything anymore…
    I’m trying to write some sort of a template that could be used as base for my next websites, with swfaddress and such…

  • Benoit Jadinon

    I like the new DI abstraction, it actually makes the whole thing much easier to use, it feels more structured. your framework is groing on me ! I like not having to cast anything anymore…
    I’m trying to write some sort of a template that could be used as base for my next websites, with swfaddress and such…

  • http://shaun.boyblack.co.za/blog/ shaun

    Hi Benoit,

    Thanks for the feedback. I’m not entirely happy with the Injector abstraction though.. I think I might have got it backwards! For example (as it currently is):

    bindValue( whenAskedFor:Class, useValue:Object, named:String = null )

    Maybe it should be:

    bindValue( useValue:Object, whenAskedFor:Class, named:String = null )

    I would have liked to keep the DSL/fluent interface that SmartyPants uses, but then it would be a lot more work for anyone wanting to write their own adapters.

    What do you think? Should the parameter order stay as it is or be switched around?

    Cheers,

  • http://www.boyblack.co.za shaun

    Hi Benoit,

    Thanks for the feedback. I’m not entirely happy with the Injector abstraction though.. I think I might have got it backwards! For example (as it currently is):

    bindValue( whenAskedFor:Class, useValue:Object, named:String = null )

    Maybe it should be:

    bindValue( useValue:Object, whenAskedFor:Class, named:String = null )

    I would have liked to keep the DSL/fluent interface that SmartyPants uses, but then it would be a lot more work for anyone wanting to write their own adapters.

    What do you think? Should the parameter order stay as it is or be switched around?

    Cheers,

  • Benoit Jadinon

    I see what you mean, while the first uses smartypants arguments order,
    the second one looks better when ‘read’ like :
    “do a bind on value when asked for the class”
    but I think this is all just because of the arguments names (borrowed from smarty)
    if you rename them to something like :
    bindValue( classToBind:Class, bindedValue:Object)
    it doesn’t seem that problematic anymore…
    well, it wasn’t that much of a deal anyway ;)

  • Benoit Jadinon

    I see what you mean, while the first uses smartypants arguments order,
    the second one looks better when ‘read’ like :
    “do a bind on value when asked for the class”
    but I think this is all just because of the arguments names (borrowed from smarty)
    if you rename them to something like :
    bindValue( classToBind:Class, bindedValue:Object)
    it doesn’t seem that problematic anymore…
    well, it wasn’t that much of a deal anyway ;)

  • http://shaun.boyblack.co.za/blog/ shaun

    yeh, and I don’t think that “bind” is the best word to use either (due to possible confusion with Flex Binding)..

  • http://www.boyblack.co.za shaun

    yeh, and I don’t think that “bind” is the best word to use either (due to possible confusion with Flex Binding)..

  • http://www.boyblack.co.za shaun

    Benoit, you should join the discussion group (no pressure though!): http://groups.google.com/group/robotlegs

  • Pingback: shaun smith » Blog Archive » RobotLegs AS3 v0.1: A DI Driven MVCS Framework for Flash & Flex - Inspired by PureMVC - flash, flex, php - cape town, south africa

  • http://www.boyblack.co.za/ shaun

    Benoit, you should join the discussion group (no pressure though!): http://groups.google.com/group/robotlegs