When Silverlight 2 Releases, Will You be Ready?

Silverlight 2 Beta 2 has been out since June 6th and the number of sites that have taken advantage of the go-live license has taken off.  In addition there are probably hundreds of sites that have been thrown together as little samples or test sites that would not be considered production, but are built for Silverlight 2 Beta 2.

When the final version of Silverlight 2 is released, will you be ready?  You should be aware of some key points:

1. The "go-live" license agreement addendum for using beta 2, indicates you will upgrade to the released version of Silverlight 2 within 7 days of it releasing.

2. Although it is quite possible that most of your code will not have to be changed at all, the Silverlight 2 Beta 2 version of the object tag that instantiates Silverlight for your site is version specific to Silverlight 2 Beta 2.  Therefore, if someone does not have Silverlight installed and they come to your site after Silverlight 2 releases, they will NOT just run correctly with the released Silverlight 2.  They will be directed to install Silverlight 2 Beta 2.  After Silverlight 2 releases, users will be discouraged from installing the old Beta 2, and eventually will not be able to install it.

3. After Silverlight 2 releases, if users already have the released Silverlight 2 on their machines and they come to a site that uses the Silverlight 2 Beta 2 mime type on the object tag, they will be asked to install Silverlight 2 Beta 2.  This will entail them uninstalling the released Silverlight 2 runtime and installing the Silverlight 2 Beta 2 runtime.  While this will make an out of date SL2 Beta 2 site run, it will not allow the users to run sites configured for the released Silverlight 2 - they will instead be prompted to upgrade to the released Silverlight 2, and will again be in conflict with the site built for Silverlight 2 Beta 2.

4. If you are like me and take the easy route to building your Silverlight applications by using the Silverlight Tools for Visual Studio, Expression Blend, or other such tools, the Silverlight 2 Beta 2 releases of these tools create Web pages with object tags that instantiate the Silverlight 2 Beta 2 runtime.  Therefore if you have a Silverlight 2 Beta 2 project, and you try to update it for the release of Silverlight 2 by just changing your VB, C# and XAML code, be aware that the object tag in the HTML also needs to be updated.  There will be released versions of the Silverlight Tools for VStudio and Expression Blend that will be available at the same time as Silverlight 2 is available, so you can use these tools to rebuild your sites with the right object tag mime type, but you have to go through that process of installing the new tools and rebuilding.  Or you can edit the HTML by hand, but make sure you know what you are doing.

For details on how the object tag works with the MIME type and Javascript, and all the other details, see Peter's blog entries at Structure of the Silverlight Object Tag  and Instantiating Silverlight: HTML vs. Script.

The best solution for your end-users will be to upgrade your Silverlight 2 Beta 2 site to the released version of Silverlight 2 as quickly as possible after it releases. For the most part, this will be a very easy process and should not take you a lot of time, even for large Silverlight applications.  Just keep in mind that there is a little work that you will need to do when the release does go live.  Unfortunately I cannot provide specifics on the release date at this time.

It is important to note that if you have a site built for the released version of Silverlight 1.0, it will just continue to work and you do not have to take any actions whatsoever.  Silverlight 2 is backward compatible with Silverlight 1.0.  This post is directed at people who have built Web sites for Silverlight 2 Beta 2 (or Beta 1, but they should have upgraded to Beta 2 a long time ago).