Online/Offline Application Take Two (Part 2)

In the first part of this series I explained my overall plan of action to develop an online/offline application using my existing CF application.  This part will detail how I built the UI using Flex/Air 2.0.  Notice I'm using Air 2.0 which at the time of this writing is still in Beta.  The reason for this will become more obvious later (in part 3), but suffice to say I needed to leverage the new NativeProcess introduced in Air 2.0.

At first when planning this part I thought it would be quite difficult to roll my own "browser" to interface with my existing CF application, however this has proven to be a simple task using the HTML component in Flex.  Of course there are quirks with the way some html/css/javascript is rendered and interpreted, but for the most part it works out-of-the box.

Read more...

Online/Offline Application Take Two (Part 1)

Ok, so with there being some bugs in the cfair.swc (like this one and this one), and it being such a new release, I've decided to take a slightly different approach to an online/offline application for the time being.  This new approach is to write a "segway" version of our online/offline software using similar tools, but different implementation.  Ultimately it will lead to a pure Air+Flex+CF9 solution, but makes a good transition as I will be re-using my ColdFusion application nearly untouched.

Read more...

saveUpdateCache doesn't respect my Relationships

It seems that the further I get into CF9's Air/Orm stuff, the more roadblocks I find.  I guess this is to be expected with a first generation feature, but that doesn't make it any less frustrating - especially when you can't seem to get any community support and there is very little documentation. I did just get a verified bug email from adobe for my bug on self joins, thanks Adobe!

Ok, got that out of the way.  Now to the problem.  When you define an entity with relationships in the CF9/Air orm and perform a fetch to retrieve the server's data for that entity the fetch call returns the parent entity data as well as all of the related entity data.  However, when you perform the saveUpdateCache with that result you'll find that it doesn't quite work correctly.

To explain this better, let me give a real example from my project (scaled down a bit for clarity): 

Read more...