Flex sample apps using the Google App Engine (image links to home).

Flex/Google App Engine (GAE) Intro

Flex and the Google App Engine provide a great platform for the development of a new wave of Rich Internet Applications (RIA). I have created this site to provide demos, discussions and 'how to' info as I explore these tools/technologies. One huge advantage of using the Google App Engine is that it provides a maintenance free (and extremely scalable) hosting environment, complete with data persistence. This is perfect for demo applications where I don't need to worry about creating and maintaining a server, and/or a SQL database. (For the foreseeable future I'm not too concerned about scalability). Over time I plan to add additional applications that combine the use of Flex and the GAE..

Flex Frameworks

My initial efforts have focused on the use of the Google App Engine, and on exploring the various Flex application frameworks. After reviewing the Cairngorm, PureMVC and Mate documentation and some sample application code I created a small demo using the Mate framework. For anyone interested, the CafeTownsend demo application has been written using each of these frameworks and the code is available for download here and here . Reviewing the code/structure of each version is a useful exercise.

The brief elevator pitch for these frameworks is this - (see the links for the real meat). Cairngorm is an older, heavyweight, industrial strength Flex framework that is supported by Adobe. PureMVC is a portable framework initially created in Actionscript, but now available in other languages. However, since it is designed to be portable, PureMVC does not use the Flex event model). Mate is a relatively new, Flex specific framework. Here is in interesting comparison of PureMVC and Mate.

Mate

I decided to start out with Mate (pronounced as 'Mateh') as it was designed specifically for Flex and is fairly light weight and unintrusive. I also wanted to use something appropriate for smaller projects. Mate has also been receiving positive user feedback recently. That said, I'm keeping an open mind on all of these frameworks until I have had more hands on experience with them. (I may try to create a small application with several frameworks just to get a better understanding of the various approaches).

Hitting the Wall

With new technology/tools there is, of course, a (sometimes steep) learning curve. The GAE and Flex are fairly new and when you hit a wall, knowing where to find support can be a challenge. Currently the GAE documentation is a bit skimpy in places and there are definitely some gotcha's to watch out for. To that end I plan to add some content here that discusses the gotcha's that can trip you up (they did me) and cause no end of frustration and hair pulling. For now I have included some support links/tips on this page that I found helpful.

Diagnosing HTTP Requests

One thing that helps immensely with problem solving is the use of good debugging techniques. In addition to code debugging you need the capability to analyze the HTTP traffic sent to/from your browser. While the Flex IDE includes an excellent debugger, it does not show the details of your HTTP requests/responses. To see this data you can use the following tools: Service Capture or Web Development Helper (IE only). In addition to request/response monitoring you can also confirm that the various components in your application (style sheets,images, swf files etc.) are correctly loaded.

First Impressions with Mate

While it's still early days for me (baby steps so far - but I can see the possibilities) Mate looks like a very approachable, well thought out framework. Moreover the documentation and support are excellent. I posted several lengthy questions on their support forum and was impressed by the timely and detailed responses I received. This is very encouraging.

Raison D'etre

This site was created by Brendan Campbell to illustrate the use of Flex in conjunction with the Google App Engine. I am an experienced application developer and have built legacy mainframe, client server, and web database applications used in various business sectors. My current focus in on the development of RIA applications. I am specifically interested in the Flex technology as it supports cross platform RIA development - Flex applications can be deployed on almost any existing PC or workstation.