Earlier this week Microsoft released an update to Silverlight that addresses several key issues in the platform. This release is informally known as Silverlight 4 GDR3 and is the runtime only; there is not any new functionality or SDKs.
The biggest memory glitch plaguing Silverlight developers is the inability to safely use inline templates. The controls using them will appear to work correctly, but will never be garbage collected. You can see examples of the problematic code in this forum post from March of 2010. This is a rather sore subject for the Silverlight team, as the severity of the problem has caused them quite a bit of ridicule.
In order to use this fix, as well as the others in this article, developers will have to require users to update their copy of Silverlight. This is done by setting the minimum runtime version attributes in the <object> tags.
Next up is the network latency issue. This update to the HTTP stack promises an improvement on network latency times of up to 90%. Taking advantage of this update requires an extra step; one has to change a registry setting on the developer’s machine or alter the runtime version in the manifest. Note that the instructions are slightly incorrect for a 64-bit operating system. Below is the registry key you will need to look for instead.
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Silverlight\v4.0\ReferenceAssemblies\SLRuntimeInstallVersion
The other issues included in this update include:
- Timestamp issues with media playback and VC-1 codec
- Visual Studio IDE crash when profiling a Silverlight application which has a pixel shader
- Enabling Silverlight to run as a 32-bit process in 64-bit Firefox on OSX
- DRM fixes for a “6207” error when playing protected content after upgrading to a version of Silverlight
- Out-of-browser applications failing to update if the application name was changed
- Media playback error when the media streams have redirect information