WebDU Live and Direct…

22 March, 2007

I’m posting from my room here at the hilton, the venue for this years webDU and what can i say…

Ted Petrick is here, JesterXL, Robin Hilliard, indeed some the fantastic minds of the industry.

Its good to catch up with a lot of people here. Flashers, Flexers, Fusioners, whatever your flavour, its going down.

Its great to see the work that’s being done on Mobile Development.
I’ve been involved in mobile development since late 99 but support and interest on this topic continues to grow.
Adobe continues to see to potential in this area and their interest has not waned the slightest.

Of course there is the latest on Apollo and CS3.
CS3 looks awesome and I will be among the first customers of this fantastic new product suite. The first suite release since the merger.

I’m sure tomorrow will be a great day.
Cant wait for Teddy to wreck shop ;)

BTW is there anyone left with a pc notebook.
I’ve never seen so many macbook pro’s

WebDU – Watch Out!!

19 March, 2007

I’ll be at WebDU this week.
http://www.webdu.com.au

Cant wait! Last year it kicked major ass. This year should be better.
I’ll be there with my Patner In Crime, Design Mr Rhee, Vatos Locos Forever Homes…

The Apollo Keynote should be special.
Ted Patrick Himself will be there, presenting 2 sessions.

I’ll be indulging in deluxe luxuries at the hilton after hours ;) so it should be a great couple days.

Thanks Dan.

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 ).

Bjorn

Today’s the day i got my hands on Apollo.

Bascally if you havent heard it gives web developers the ability to create desktop applications using existing web technologies such as flash, flex, html or ajax.
You deploy a single packaged file that runs on Mac and Windows leveraging the Apollo runtime.

It’s all on labs http://labs.adobe.com/

There also a heap of tutorials here,
ttp://blog.everythingflex.com/apollo/

http://blog.everythingflex.com/apollo/applications-apollo/

http://blog.everythingflex.com/apollo/tutorials-apollo/

I’ll post some examples as soon as i get them out.

Regards,

Bjorn

Sequencing multiple commands

24 December, 2006

In your cairngorm Flex 2 application you may require to string a sequence of commands together. This may occur in your application’s initialization process or in the view from a user gesture.

For example, in the case of an e-commerce application on initialization you may be required to get all categories, sub-categories related to a category and the products related to a sub-category all in one process.

In cairngorm each command requires an event to be fired in order to execute the command. Now where you create that next event to be fired is usually in the subsequent command, prior to setting it to that command’s nextEvent property.

Perhaps this approach may not be suitable depending on your commands (as in one my cases) so i created a utility for chaining events together so that a sequence of events can be fired at the developer’s desire.

To demonstrate a scenario of the usage of this utility i have created a small example (click here and right-click to download source) and an illustration of the example.

Event Chaining Diagram

What i’ve done is create a sub-class of CairngormEvent which has a public property called nextChainedEvent.
Then I’ve create a utility class called EventChainFactory with a method chainEvents, which accepts an array of ChainEvent instances as its only parameter with each event in the array ordered in the order you want your sequence of events fired in. The method returns a ChainEvent instance with each subsequent event set to the next event’s nextChainedEvent property.

Enjoy and dont hestitate to improve it.

Regards,
Bjorn Schultheiss

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.

talk about pimped out notebooks.
I have never had such a nice machine in my life.

Today we downloaded the source for Tomcat.5.2.30 and compiled it as universal binary,
After some vi wizardry and the latest available flash remoting jars added, i have everything running nice.

I was most impressed when i viewed Complex Typed Objects going through the wire via ServiceCapture(which is also running on OS/X :)
So I have a real dev box now. Any PC-Only haters out there, i got Flex Builder 2, Tomcat, FDS, Remoting, Service Capture, MySQL5, what more do i need?

And just to show how we really, really do this..
Check out this dope theme for XP that i’m also running through Parallels.
download here
fishscale

Just a note on Parallels.
In order to bridge the file systems between Mac and PC i have decided to  create 10 shared folders and in XP map them as network drives.
This has enabled me to work seemless on the same file between OS’s.

I have a Ubuntu Image coming this week as well.  After i have that running it means Apple, Microsoft and Linux all on the same fly-ass notebook :)

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.

Enjoy.