InfoQ

News

RIA Frameworks: And the Survey Says…

Posted by Moxie Zhang on Nov 12, 2008 09:50 AM

Community
Java
Topics
Rich Internet Apps
Tags
Flex ,
ActionScript ,
Frameworks

Given the number of frameworks now available for rich Internet application (RIA), choosing the right one, if not the best one, can be a difficult decision. Inside RIA recently completed an online survey that asked Flex/ActionScript RIA developers about their preferred frameworks.

The survey listed four major frameworks: Mate, PureMVC, Cairngorm and Swiz. The results speak for themselves. InsideRIA’s Rich Tretola says: “Well it appears that I was little off in my predictions. By getting over 30 percent of the vote, PureMVC has led the way, with Cairngorm taking second place, and Mate coming in third.”

In discussions surrounding the voting, one developer, Karl, shared why he does not use Cairngorm:

I found Cairngorm to be overly complex and, in a lot of ways, a square wheel. For example, why do I need to raise an event that gets handled by a front controller and routed to a command? Why not just invoke the command directly? The front controller pattern is trying to claim that keeping all of my commands in one place is agile. Actually, by removing the command's invocation from its natural context, I found myself spending a huge amount of time trying to remember where the source code related to the event was. After I finally found the correct code, I was trying to remember what I wanted to do with it. Overkill.

Others recommended frameworks that were not on the survey list. For example, one developer, Vipin, said:

We use Tom Bray's EasyMVC, which is very simple, but uses most of the concepts used by Cairngorm. There are lots of interesting features in the available frameworks, and we kind of mixed everything together and made an in-house framework, which is working nicely: faster development and multiple developers on the same project, and no confusion on how to deal with events and commands etc.

Chris Brind’s very thoughtful comments and suggestions really completed the survey:

The main advantage that a framework offers is a prescribed way of implementing an approach, be it MVC or ViewHelper, or whatever.

I would recommend that any team about to embark on a project take a close look at what frameworks are available and weigh up whether the benefits they will get from using an existing one will out-weigh writing their own or simply putting in place a convention and code-review process.

IMHO if you have quality, disciplined developers, a good convention is what is really required. But a lot of people don't like to work to conventions, and I imagine some of the more anal architects don't trust their developers enough to follow one, which is a sad case to start with.

much simpler and more flexible than any of these by Charles Kendrick Posted Nov 12, 2008 5:29 PM
  1. Back to top

    much simpler and more flexible than any of these

    Nov 12, 2008 5:29 PM by Charles Kendrick

    All of the listed frameworks require you to write a great deal of boilerplate plumbing code to get UI events to trigger data model changes. A better approach is to make UI widgets aware of data models and provide a standard processing pipeline for typical CRUD operations, which you can then override wherever you need to. Interestingly the best implementations of the MVC pattern are in the Ajax space, not the flex space. For example, in SmartClient, just providing a visual component with a DataSource makes that component able to provide view, edit, validate and save interactions without further configuration. This works with any data provider, because the component only see the DataSource and it's data schema, and never knows the details of the underlying data provider. This is just one example - there are many more in the example tree that this loads: http://www.smartclient.com/#patternReuse

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.