Over 4 months without an update.. I’ve been a busy boy.

Current status.. The first leg of developement is coming to completion.

Here are some keypoints before i get into some more detailed posts.

– Flex, Java and Remoting rocks! Cant wait to get into FDS
– Cairngorm is a great starting point for any flex developer.
– Get your head around Flex component delvelopment techniques before doing any real ria view work.
– Modules lack framework support. Dive in, the engineers are more than glad to answer questions but i will wait for Flex 3.0 until i re-implement Modules into our RIA.
– And finally, test, test, test. Make sure your got a production spec server to test on as well ( 1 that will mimic your deployment set-up ).



Prototyping and Architecture

Some basic architecture concerns are currently being addressed.
Multi-Swf architecture was required due to the application’s size.
This is where Flex moves into 6th gear while Flash is stuck in 5th. Roger Gonzalez http://blogs.adobe.com/rgonzalez/ has a great primer on the requirements for multi-swf’s communicating with each-other. With this and RSL’s in my artillery a new paradigm of thinking is required. This then lead me to contemplate further about shared code bases and the options available that I will discuss in detail in subsequent posts.


I figured that this would also require me to get more familiar with command line compiling, compiler arguments and ANT.

We are using Cairngorm in the prototyping stage. It is a pleasure to work with Flex Builder 2 and the Cairngorm framework. I feel a lot more productive than compared to my SE|PY and AS2 environment. Flex Builder features such as code-completion, dynamic help and the visual builder absolutely rock, although I would still like to see Refactoring and other Eclipse JDT tools added.

I have now just started on the prototype for the ‘Shell’ application.
Dealing with component based view is a practice that served me well in Flash development and is well suited to flex. The introduction of containers and viewstacks to the mx framework is a welcome inclusion.

Coding in MXML is a lot quicker than in Actionscript. To create containers and initiate Binding is a very efficient use of MXML and has been a pleasure to use. Previously I would code only in Actionscript. I now code my views first in MXML adding Actionscript as required.
I look at MXML as a compositing language. I use it to compose my artwork and then make it come alive with AS3.

The efficiency of developing in MXML gives developers new decisions to make when developing a codebase that is to be shared amongst multiple applications. I’ve just built a login panel component. Now I know that I will have a use for the same login component over many applications, the question is; do I build a full blown, customisable component in AS3 that meets all requirements or do I knock one up quickly in MXML and add app-specific requirements on each implementation?

My conclusion is that during the prototype stage I will use app-specific MXML components because they are quick to develop and potentially re-develop them in AS3 as I see the need arise.

Anyway, I hope this was understandable.

Front to Back Development

After receiving my first SRS document of the scope I quickly proceeded into knocking up some quick prototypes in flex of my initial sketches. Although not functional these prototypes were able to give the others guys on the team some insight on liquid UI’s in Flex.

This was received very well and I next moved on to creating a proper design document. This was not a technical document and specifically focused on the complete functionality of the application.
By my 3rd draft of this document I quickly realised what a large project this really is 🙂

In the 4th draft I had applied styling to all of the screenshots in the doc and finally became impressed with looking at what my final achievement will resemble. This is quite a nice application if I do say so myself and I have definitely set a high standard for output.

At this point I would like to make note of an article posted on devnet by the guys from Cynergy Systems. This explains a methodology that from experience is optimal for RIA development.

It is common in standard web application development that the user interface simply gives the user the ability to make use of a back-end application. In Flash RIA development that paradigm shifted to a more user centred focus in the application design with all the interaction possibilities provided by developing with Flash.
But this was by no means optimal. Flash is not a rapid application development platform and Adobe has gone to great lengths to achieve this with Flex. Flex offers the ability to create functional prototypes of applications quickly, something that Flash did not.
This opens the door for the front to back development process. This means that the Front end GUI’s can be signed off on before work on creating the exposed back-end services takes place. This is a beautiful concept for a front end developer and helps us avoid some of the pitfalls I experienced in my previous project, particularly massage and manipulation of data returned from service calls.
With using AMF3 and its complex typed object handling I can specify in my prototypes how I wish the objects to be returned from the service therefore minimising any conversion of data returned from the service, YAY!

The Background.

Last month I was pulled from my last project, where I was brought in to extend the functionality of an existing Flash RIA which I had worked on for close to 12 months. The new project is to build a new Flex GUI to replace an existing Java GUI for an application within the software suite of my company QDC technologies.

This new Flex application communicates with a Java back-end via Flex Remoting. At this stage we have no plans to implement Flex Data Services.

I also recently purchased a macbook pro which is my new dev machine. It is my first real in depth experience with OS/X and I have XP installed running on Parallels. In an attempt to become more familiar with OS/X I am trying to do as much development as possible in OS/X and only switching to XP when required. After the release of Flex Builder 2 beta for Mac I have now switched to using this for my flex development.

This is my introduction post for a weekly series of articles based around my experience of developing my first Enterprise Flex RIA. Through the development process I am recording short notes and then composing weekly articles based from these notes. I will be posting 2 articles each week, one will be posted on cairngormdocs.org which will be related more to the implementation of the cairngorm architecture in this application while the other article posted on this blog will be about the overall picture.

To begin with, I am not going to be disclosing too much detail of the purpose of the application and will not be releasing any source code, although I may include snippets of code to help illustrate certain areas of the articles.

The RIA is a pure Flex 2 GUI and the backend server application is built in Java. Our front-end team currently consists of 2 Flex Developers with another developer coming on board in a couple of weeks and hopefully more in the future.