ページ

2007年7月11日水曜日

Silverlight 1.0 beta と 1.1 alpha の両方をインストールできる?

Silverlight 1.0 beta と 1.1 alpha が同時にリリースされたわけですが、これらをいっしょに入れることができるのか?が気になりました。


Silverlight Feb 2007 CTP まで
Silverlight コントロールを貼り付ける場合は、HTML 内で agHost.js を
<SCRIPT src="agHost.js" type="text/javascript"></SCRIPT>
しておいて、new agHost( ... ); としてました。(agHost.js は SDK に入っていました)


Silverlight 1.0 beta
agHost.js に代わり Silverlight.js が SDK と共に提供されるようになりました。
また、Sys.Silverlight.createObject( ... ) or createObjectEx( ... ) と namespace 風の関数名になりました(この namespace 風の手法は Microsoft AJAX Library と同じです)。createObject() には要求するバージョンを指定する引数がありますが、1.0 beta の場合は "0.9" と指定するそうです。


ついでに Silverlight の本体を調べてみると、IE アドオンは AgControl Class (ProgID は AgControl.AgControl) という名前で、本体は C:\Program Files\Microsoft Silverlight\npctrl.dll です。同じフォルダに agcore.dll というのもあり、どちらもバージョンは 0.8.5.0 でした。


Silverlight 1.1 alpha
1.1 alpha も 1.0 beta と同じく Silverlight.js を使用します。1.1 alpha SDK に入っている Silverlight.js を見てみると 1.0 SDK に入っているものと冒頭のコメント以外は同じでした。冒頭のコメントには 「このファイルは 1.0 beta と 1.1 alpha の両方にコンパチブルで、1.1 alpha を使うときは 0.95.0 と指定しろ」 とちゃんと書いてあります。ちなみに 1.0 beta の Silverlight.js も冒頭のコメントには書いてありませんが、コードの中では 0.95.x を判定していたりするのでもともと両方に対応していることになります。
というわけで、Sys.Silverlight.createObject() に "0.95.0" と指定すると 1.1 alpha になります。


で、どうやら 1.1 alpha の本体は 1.0 beta と同じく AgControl Class (ProgID は AgControl.AgControl) みたいです。ProgID も同じで、入ってる場所も 1.0 beta と同じく C:\Program Files\Microsoft Silverlight\ でした。すなわち 「1.1 alpha を入れると 1.0 beta が上書きされる」 ということになってるようです。ただ、npctrl.dll も agcore.dll もバージョンは 0.8.5.0 のままになっています。ファイルの内容が同じなのかどうかまでは調べてませんが、1.0 beta と互換性はあるんでしょう (Silverlight.js みたいに 1.0 beta のものも実は 1.1 alpha に対応しているのかも知れませんが)。


この C:\Program Files\Microsoft Silverlight\ を見てみるとなかなか興味深いです。
mscorlib.dll、System.dll、System.Silverlight.dll などなどが入っています。で、.NET Framework 2.0 SDK の ildasm で見てみるとちゃんと中身が見れました。
"mini-CLR" の本体は coreclr.dll なのかな?


まとめ
はっきりしたことは言えませんが、1.0 beta と 1.1 alpha の両方を入れられるか?と言うよりも、1.1 alpha を入れると 1.0 beta が上書きされるということみたいです。で、1.1 alpha が 1.0 beta と同じ機能をサポートしているということみたいです。

2 件のコメント:

  1. "AgControl"って、なんで"Ag"なんでしょうね?

    "Avalon Graphics"の略なのかな??

    返信削除
  2. さまよう人2007年7月4日 23:42

    元素記号だそうです。

    返信削除