Bin grad über einen Link gespoltert zu einem Silverlight 3 Training Kit von Oliver. Da ich ja selber seit 2 Jahren Silver Trainings durchführe, dachte ich mir, schaden kann es nichts, und click auf den Link. Dann kommt folgender Dialog wenn Sie Silverlight 1 oder 2 installiert haben.
Leider wird das installieren zu 99% fehl schlagen. Warum also das Ganze?
Der Grund liegt in der Referenzierung des Silverlight Plugins
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/SL3Demo.xap"/>
<param name="onerror" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="3.0.40307.0" />
Es wird zwar mit dem Application Typ auf ein Silverlight 2 Plugin verweisen, aber in der Version mindestens 3.0 ect benötigt. Es hilft auch nicht x-silverlight-3 zu schreiben. Silverlight 3 ist nicht public mit einer Go-Live Lizenz. Das was Oliver hier treibt ist also streng genommen eine Lizenzverletzung. Viel wichtiger ist, das es kein automatisches Update auf Silverlight 3 gibt ( stand 22.04.2009 11:48).
Also was tun?
Silverlight 3 Beta 1 in der Developer Edition muss von Hand installiert werden.
Für den Site Entwickler gibts eine Möglichkeit dem Benutzer einen sinnvolle Meldung zu präsentieren. In Olivers Beispiel heist der Jscript Error Handler onSilverlightError. Also ran an den Code
function onSilverlightError(sender, args)
{
if (args.ErrorCode == 8001)
{
var msg = "install Silverlight 3 Beta by Hand.\n";
var SLhost = document.getElementById("silverlightControlHost");
SLhost.innerHTML = msg;