Considering Silverlight being in its 3rd rev, end users often come across scenarios where a web browser need to render pages composed from applications compiled against different Silverlight versions. As only one version of the Silverlight plug-in can be installed on the end user machine at a given time, the CLR associated with the plug-in should be compatible to run current and previous versions of the Silverlight applications.
The following picture illustrates a scenario where a web page is composed of Silverlight 2 and Silverlight 3 applications:
When the Silverlight 3 plug-in encounters a situation like the above, the CoreCLR creates a Silverlight 2 compatible (v2 “quirks mode”) AppDomain, a Silverlight 3 compatible (v3 “quirks mode”) AppDomain and provides proper environments for the respective XAP files. The above is accomplished while at the same time while adhering to the principle of one CLR version per a managed Windows process.
Hello, I'm the discoverer of the version design pattern, which allows the downward compatibility of any software-components. I implemented it in two open-source fameworks. Look at my article about version-design pattern, maybe you like it <a href="http://www.happy-guys.com/en/open-source/happy-commons/features/version-pattern.html">http://www.happy-guys.com/en/open-source/happy-commons/features/version-pattern.html</a>
quirks mode rears its head again :)