Silverlight RC0 and Beta 2 Side by Side: Question of the Day

A question I've been getting a lot since we released RC0 is this:

'When Microsoft does the RTW release, there will be a period of time where *some* of my users have Beta 2 and *some* of them have RTW. How do I ensure that each of them will get an unbroken experience?'

I'm assuming you already have a Beta 2 site and you want to migrate it. So, consider the following:

1. Your Beta2 application is called 'MyB2App.xap'

2. Your RTW application is called 'MyRTWApp.xap'

Then you can use code like this in the first few days after we RTW (where most of your users will likely have B2)

         <object data="data:application/x-silverlight-2-b2," type="application/x-silverlight-2-b2" width="100%" height="100%">
             <param name="source" value="MyB2App.xap"/>
             <param name="onerror" value="onSilverlightError" />
             <param name="background" value="white" />
         
             <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
                 <param name="source" value="MyRTWApp.xap"/>
                 <param name="onerror" value="onSilverlightError" />
                 <param name="background" value="white" />
             
                 <a href="https://go.microsoft.com/fwlink/?LinkID=115261" style="text-decoration: none;">
                      <img src="https://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
                 </a>
             </object>
         </object>

 

Note that the 'outside' object tag is for Beta 2 (the type ends with -b2, and the XAP is your B2 based one), and the 'inside' object tag is for RTW. The fallback install experience is for B2.

Then, after some time has passed, and your clients are moving to RTW, you can flip it around, like this:

 

Then you can use code like this in the first few days after we RTW (where most of your users will likely have B2)

         <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
             <param name="source" value="MyRTWApp.xap"/>
             <param name="onerror" value="onSilverlightError" />
             <param name="background" value="white" />
         
             <object data="data:application/x-silverlight-2-b2," type="application/x-silverlight-2-b2" width="100%" height="100%">
                 <param name="source" value="MyB2App.xap"/>
                 <param name="onerror" value="onSilverlightError" />
                 <param name="background" value="white" />
  
      <!-- Note that this is the simplest possible install UX. You should follow MS Guidance for a good UX instead -->       
                 <a href=https://go.microsoft.com/fwlink/?LinkID=<RTW LINK> style="text-decoration: none;">
                      <img src="https://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
                 </a>
             </object>
         </object>
  

Here, the 'outside' tag is RTW, the 'inside' tag is B2, and the fallback is the RTW install...thus you can go side by side and ensure a smooth migration.

Please do note that the fallback in this code will give you a simple install 'badge', but there are some great guidelines for how you should manage the install here: https://www.microsoft.com/downloads/details.aspx?FamilyId=F487DF43-1AFB-4F76-82C8-BB5ACBFFBA1B&displaylang=en

These guidelines are a little older, so be sure to update them for RTW. Also note that a new set is being worked on...watch this space.