Flex 3 and Cross-Versioning – The Marshall Plan

The “Marshall Plan” is the nickname for the SDK feature to support cross-versioning. I have personally got a lot of queries on cross-versioning from Flex users in India and abroad.

Quoting opensource.adobe.com :

The need for Flex to support cross-versioning was seen way back in Flex 2. In Flex 2.0.1, a cross-versioning scheme was implemented, but never officially documented. It involved the Singleton class, a bootstrap loader, and modules that shared definitions in the bootstrap.

As 3.0 neared completion, testing Flex 3 applications loading Flex 2.0.1 modules was found to be completely broken. APIs in the classes that needed to be in the bootstrap loader had dependencies on classes that could not be in the bootstrap loader without causing compatibility problems. It became apparent then that the “shared definitions” strategy was extremely fragile. Not only did it require a detailed understanding of ApplicationDomains and class dependencies, it required that all developers understand the bootstrap mechanism and not make API changes that would violate the bootstraps dependency requirements.

“The Marshall Plan” looks to solve this by loading SWFs compiled with different versions into separate ApplicationDomains and have them interoperate through event passing.In fact the term Marshall was derived from the aspect of the feature that uses shared events and/or the SandboxBridge to marshal objects across ApplicationDomains.

There’s a very detailed wiki page on the Marshall Plan and its effect on various aspects of the product like Modules, Other Flex Classes and Security. You can take a look at the wiki page here

The release of this feature is planned to be done in the Flex 3.2 milestone, in the Fall 2008 (check out the other milestones here).

Advertisements

One Response to Flex 3 and Cross-Versioning – The Marshall Plan

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s