Thursday, September 1, 2011

The state of Flex Frameworks

As you might know I have been experimenting with Flex for a while. Due to the ability to target andoid/iOS/facebook in one go!

But the way I am wired I need to know just about everything about the technology before I start to get my feet wet. I learnt this with C#. Didn't know about reference types vs. value types after a whole year of coding! (although ... I do miss the careless abandon of my old coding ways)

I feel that now I have the language Actionscript down (I wrote a small book "Actionscript for C# developers" that I will share after its more stable) and have a fair understanding of the flex / flash apis. I now need to dive into the community work that has been done in flex.

Like silverlight / wpf (where I finally settled with MVVMLight ... and I know why I did that ;) ) I am going about searching for the most community accepted solution for flex. Fortunately I know about dependency injection, MVC (thanks to django), a lot about databinding (thanks to mvvm / silverlight / wpf) so its not a voyage of discovery rather a voyage of rediscovery.

Just FYI : With Silverlight / WPF it is clear to me that if I have ICommand delegate based implementation, a servicelocator implementation (and after MEF is officially a part .NET framework why go with any other?) , an INPC implementation and some form of App encompassing Mediator .... I am good to go! Now I need to figure out how these translate to Flex and what are the solutions proposed by the community.

Here are my two cents for flex:

Cairngorm (what was)
One thing is clear. Cairngorm is the official adobe solution : http://sourceforge.net/adobe/cairngorm/home/Home/ but is a no go for new projects. Its not really the ideal actionscript solution to the types of problems that are faced : http://archive.davidtucker.net/2009/10/13/the-current-state-of-flex-frameworks/
I do feel however that one should view how it was architectured before moving on to the community shiny frameworks.

Community (what is )
So now the question really comes down to which of these is the way to go. I am selecting the most popular solutions (high number of community supporters) here and not going with the completeness / quality. Because I am trying to be a late adapter for now :)

So heres the list I will be evaluating along with first opinions:



I took me about three months of active research and reading to fullly abridge the whole MVVM frameworks story for silverlight / wpf. I hope it will turn out faster for flex.

Till then enjoy!

Update October 2011:  It has become pretty clear to me that RobotLegs is the way to go. Infact it is one of the most watched Actionscript libraries on GitHub!