Robotlegs is only for SIMPLE project

cklee75's Avatar

cklee75

20 Aug, 2011 01:05 AM via web

Hi,

I am glad the title has attracted you to read this post. Here's the story.
I am a technical lead of a project that uses Flex as frontend. I have number years of experience in Java but Flex/AS3/MXML is new to me. I have explored this technology and play around with few Flex MVC frameworks, like Mate and finally I recommend my project to use Robotlegs due to my background which I prefer to code in more OO way and of course other reason is Robotlegs won the best 2010 open source project on Flash and the City conference (BTW, how big is this conference?). I shared my finding two weeks ago in a Knowledge Sharing Session (KSS) to other team members and the content basically is from Ray Ryan, Google Web Toolkit Architecture: Best Practices For Architecting Your GWT App (Yes, it is for GWT but I see the practices can be shared with Flex frameworks) and Richard Lord, Application Frameworks - The Good, The Bad & The Ugly (which compare most Flex MVC framework).
Yesterday, my other colleague which is the most experience Flex developer in our team and has worked for another Flex project for > 3 years compares native Flex framework and 3rd party MVC frameworks in the KSS. His sharing is about Flex is already a framework (event driven type) why we still need another layer of 3rd party frameworks. What he recommends is as long as you have organize your packages/modules correctly and ensure teams adhere to coding standard and keep discipline, native Flex way is better. He makes a comparison chart about feature matrix like scaleability, maintainability, performance, learning curve, mobile (iOS, Android, Blackberry) readiness, dependency injection (DI), Abode Catalyst integration etc. Native Flex framework beats all matrices except DI. One comment he made is Robotlegs is only for simple project and he will not adopt it on his next complex enterprise project. I have no experience to compare Flex development with and without 3rd party MVC frameworks but he can. To be fair to Robotlegs and other new comers, could someone share his/her experience on Robotlegs for complex enterprise projects, e.g. commercial games, ERP, CRM? How big is the team? How many LOC/modules/components? BTW, do we have a success story wiki page about Robotlegs?

Thanks.

  1. 2 Posted by Weyert on 20 Aug, 2011 02:39 AM

    Weyert's Avatar

    I always considered the Flex Framework as a component framework and not as a MVC framework. The main use of the Flex Framework is its component library and maybe the out of the box data binding and services. But in my opinion it's not really a MVC framework which brings you mediators, proxies etc.

    Neither do I fully agree with the performance assessment. I think Flex components are (1) complex (2) over-engineered (3) not super performant (4) inflexible. But maybe I am biased because we aren't really using Flex at work. Neither do I think that most Enterprise application (client-side) needs to be built with in Flash/Flex. All the times I had to built Enterprise applications for multinations the Citrix software was around corner which killed the possibility to use Flash.

    Anyways, I think you can still use a MVC framework such as RobotLegs. Last week I finished a enterprise application, a narrowcast solution, which is build without Flex and uses RobotLegs in major areas of the application. The solution is currently running on 500 systems around the country without a major memory usage. At least I think ~55mb is nice. The project roughly consists of 45.500 lines of code .

    .as - 439 files 60 lines or less: 240
    61 - 70 lines: 43
    71 - 80 lines: 23
    81 lines or more: 133
    files over 60 lines (largest first):
    1303

    My experience is that RobotLegs forces you to adhere a specific coding style and as extra gives you much more reusable and decoupled code.

  2. 3 Posted by pavel.fljot on 20 Aug, 2011 04:47 AM

    pavel.fljot's Avatar

    Totally agree with Weyert's first two paragraphs. So topic doesn't really make sense.

  3. Support Staff 4 Posted by Stray on 20 Aug, 2011 09:31 AM

    Stray's Avatar

    Hi there - Pavel and Weyert pretty much have this covered - but I'll chip in too.

    First of all - Robotlegs is definitely not only for simple projects. I have a 2 years + project, modular, Air, enterprise, multiple different deployments (different users have different combinations of modules) - it's all built on Robotlegs and I have no concerns about that. If anything, the more complex your app the more important it is that you have an approach that takes up minimal brain space!

    Flex is a bit of a hot mess as far as I'm concerned - I use pure AS3. But it's certainly not a framework in the Robotlegs sense - it's a declarative approach to creating components. Shaun Smith, who originated Robotlegs, and Joel Hooks, who is one of the main drivers in the team, are both very, very experienced Flex Developers - they don't consider Flex to be a framework in the same sense as Robotlegs.

    I'll quote from the Robotlegs book - because it summed up what I think the answer to this question is:


    What does Robotlegs actually do?

    The term framework is used very loosely in our community, referring to anything from The Flex Framework to jQuery or Ruby on Rails. The definition of a framework is simply:

    A reusable set of libraries or classes for a software system.

    This doesn't really tell you much at all about what any particular framework does and doesn't do.

    Robotlegs is a communication-and-cooperation framework.

  4. Support Staff 5 Posted by Shaun Smith on 20 Aug, 2011 02:25 PM

    Shaun Smith's Avatar

    When I started writing Robotlegs I did not set out to build a framework, I set out to marry DI/IoC with the Flash Player's native event model and display list. I was very much of the opinion that you don't need a framework for Flex development, you just need a way to manage the scope of, and communication between, components that are lazily instantiated outside of your control (see: deferred instantiation). It turns out that when you tackle that you end up writing a framework.

    Framework or no framework, the problems that present themselves when building complex Flex applications still exist and require solutions. Robotlegs gives you standard, tested solutions to some of those problems. Without a "framework" you will eventually, by necessity, be forced to roll your own custom solution. That is fine (and a great learning experience), but requires that you understand the problems in great depth, do a good job of it, and have the time to train your team and put together comprehensive documentation. And, if it goes really well, at the end of the day you'll just be using another framework :)

    Until Flex provides Dependency Injection, view autowiring (introducing deferred components back into the correct DI container) and scoped messaging, 3rd party frameworks will continue to tackle these problems.

  5. 6 Posted by shane on 09 Sep, 2011 03:47 PM

    shane's Avatar

    Is there a way to get around without using events at all ? It is anytime whar to find out which functions are listening to a specific event ?! Or how do you determine who is listening ?

  6. 7 Posted by Maciek on 12 Sep, 2011 11:18 PM

    Maciek's Avatar

    shane: Signals!

    http://joelhooks.com/2010/02/14/robotlegs-as3-signals-and-the-signa...

    Signals are essentially the events that dispatch themselves by taking advantage of dependency injection (which RL already provides for you anyway). You'll wonder where they've been all your life.

  7. Ondina D.F. closed this discussion on 02 Nov, 2011 05:34 PM.

Comments are currently closed for this discussion. You can start a new one.