Flex/AS3 does so many things well, and in my opinion is one of the most productive languages to create complex MVC type UI applications. That being said, some work in Flex I can find to be very tedious. While the class structures and OO all seem very elegant at the documentation/class level, the pragmatic use of some of the structures can create some odious and repetitive coding.

Take the charting for example. I can't tell you how many times I had to hunt around to figure out how to "adjust" the color/thickness/alpha for the horizontal and vertical axis, while not terribly complicated you either need to go down down about three levels of property chains in MXML or AS to get to the correct properties. When doing this for half a dozen charts in one application, it can get time consuming and verbose.

The other challenge we run into, is having to munge source data into a format appropriate for the charts to consume. Internally we have built some more hardwired models that allow us to point to a data structure and have it "transformed" into something the charts can read. I think more ideally we could extend the ICollectionView to include some transforms so that not only can we see sorted/filtered data as bindable properties, but also transformed (aka OLAP pivot/slice/query) data that multiple charts could consume.

Finally, the last main challenge we run into, which is not unique to dashboards, is architecting a proper event driven MVC. Dashboards tend to bring the limits of a non MVC approach to a head rather quickly (specifically highly interactive dashboards with drill up/down/across capabilities.) What first starts off as an easy "hard-coded" approach shortly winds up with piles of spaghetti strewn across several MXML components. Most MVC frameworks like Cairngorm are way to heavy though for simple dashboards. Frameworks (and I am probably using the term incorrectly here) like Model Glue seem more appropriate, but I suspect we could develop something even lighter and more tightly geared for building Flex based dashboards.

So as I see it the three primary areas to build a framework/convention/micro-architecture around would solve these three challenges.

1. Easy way to set styles/properties of objects without having to traverse deep object trees.
2. Easy way to load source data and transform it for charting.
3. A ultra-lightweight MVC framework geared for Dashboard UI challenges.

- Tom

 

2 Responses to “What would be needed in a Flex Dashboard Framework?”

  1. Anonymous

    Can't wait to see the Dashboard framework. It is great idea!


  2. Anonymous

    Hi,

    Excellent !
    I have just begun the conception of charting components (only rough class diagrams on a paper at the moment, and also wondering if a framework like PureMVC was too heavy).
    In my design, I felt valuable to define a class called "Palette", extending ArrayCollection and storing the definition of colors, gradients and alphas of the chart. Actually similarly to Degrafa's Fills and Strokes that are assigned an id. Then each element of the chart could have a palette property refering to the id of the Palette ArrayCollection... I don't know if this is the best way to do but I feel it should be convenient enough.

    Do you aim also to build a charting open source framework ? (as part of your dashboard framework) My goal was to build something like the chart library of Flex, with basic chart types.


Leave a Reply