9 Replies Latest reply on Feb 5, 2010 9:27 AM by Joe ... Ward

    Modular Frustrations

    Conrad LFS Level 1



      about 8 months ago we decided to use Adobe AIR as the application framework for our Customer Admin workers. So far it has been extremely successful.


      Our customers see a flex app in a web page and our workers see an AIR application on their computers.


      In order to reduce duplication of code we share a lot of components between the AIR and flex applications. So far this has been an extremely excellent choice, and our customers on the web site are able to see exactly the same view as our admin workers. However I now seem to have hit a show-stopper.


      The admin app has very advanced functionality compared to the client app, and sometime one worker will have several hundred clients linked to the same view as them. The admin app can then send instructions, via a server, to the client app to load an external swf. The shared component in both the admin and the customer app then show the same loaded module. This module is loaded from an external content managed server and can not be distributed with the air app. The admin app can then instruct the loaded module to perform certain operations - here in lies the problem - the web app can easily communicate with the loaded swf and we see it do what the admin app has told it to do, but the AIR app is completely prevented from talking to it, except it seems through the sandbox bridge. Unfortunately this means that the loaded swf suddenly has to be different for either app - one uses a sandbox bridge and one doesn't.


      This is appalling :-( I can see no way forward and suddenly we have to rethink our whole technology decision. What annoys me most is that we KNOW that the only swf's that can be loaded by the AIR app (which is completely under our control) are safe ones- we control them too.



      How do I solve this? Currently it is completely beyond me.


      Please allow AIR to let down its guard a bit if you tell it to. Otherwise we will have to use something else...