Calling Silverlight 1.1 Developers: Do You Need to Update Your Machine?

I've seen isolated reports of the Silverlight plug-in expiring here and there today from a few developers who have the 1.1 alpha installed on their machine. The RTM version of the Silverlight core is 1.0.20926. If you have any other version number on your machine than 1.0.20926 or 1.1.20926 (check by right-clicking on some Silverlight content and choosing "Silverlight Configuration"), you're running a pre-RTM release and you should update. (Since you're running a pre-RTM release, the safest thing to do is to uninstall and reinstall.)

For those who are interested in more detail, let's explore the technical differences between the 1.0, 1.1 alpha and the final 1.1 builds. Silverlight 1.0 is at its heart a XAML rendering engine that supports media, 2D graphics and animation, all orchestrated by JavaScript. Earlier this year, we released a 1.0 beta of the rendering engine, along with an alpha release of 1.1 that adds support for the CLR and dynamic languages. Both have exactly the same core engine - the 1.1 release just has extra stuff in it as well.

As we released new builds of Silverlight 1.0 on the road to RTM, we updated the corresponding 1.1 bits to match the new rendering engine, without making any other changes. Here's a diagram - the top row shows the 1.0 builds, the bottom row shows the 1.1 builds. Notice that the CLR is identical in all 1.1 builds:

image 

We automatically updated 1.0 RC builds to the latest release through to RTM, so if you originally had 1.0.20724 on your machine, you should now have 1.0.20926. (If you're one of a very small number of folk who received a private build, then you would have needed to manually auto-update).

However , since the 1.1 plug-in was released as a developer "alpha" rather than a broad "go live" consumer preview release, we didn't auto-update between 1.1 builds. With hindsight, maybe that was a mistake, since there are obviously a few folk out there who are running a 1.1 build with pre-RTM rendering engine bits without realizing it. To be clear, if you're experiencing problems and you installed a 1.1 alpha build on your machine, check the version number. If it's less than 1.1.20926, uninstall and grab a fresh version.

Moving forward, we've forked the source code into a 1.0 servicing branch and a 1.1 branch. We'll use the 1.0 servicing branch to fix bugs customers report to us as they come up; you can expect to see a maintenance release in the next month or so. Our 1.1 branch is where we're currently doing the core development work; all new feature work is being checked in here, regardless of whether it's related to the CLR or the rendering engine. Whether you're using JavaScript or .NET as your programming model, you'll get the benefits of the 1.1 rendering engine. Sites written for 1.0 will run just fine on Silverlight 1.1 - we're not breaking compatibility, just adding new features and making incremental improvements to existing ones.

How do you check what version an end-user has installed on their machine? Well, you can use the Silverlight.IsInstalled() method to identify whether a minimum version is installed; more details on this method are available in the Using CreateSilverlight.js and Silverlight.js topic on MSDN. This supports the use of a two-part or a four-part version notation for the input parameter, so you can get very specific and check that the user has at least 1.0.20926 on their machine (i.e. 1.0 RTM).

This is lots of detail that you'll probably never need to know about, but it's always interesting to understand what's going on behind the curtain. Hope this offers some useful insights.