Developers Summit 2010のセッション資料
デブサミ2010のセッション資料は、SlideShareというサイトにて公開されています。
また、PDFファイルも下記の場所においてありますのでご自由にダウンロードいただければと思います。
今回のセッションの中で、「ランタイムのバージョン管理」という部分がありましたが、この部分において私の調査不足により誤った認識を与えてしまいました。申し訳ございません。公開した資料ではその部分を訂正しておりますので、ここであらためて説明させていただきます。
セッションでは、
1つの環境に複数の.NET Framework(CLR)が共存できるのに対して、Silverlightのランタイムは共存できない。そのため、古いバージョンのSilverlightで作成したアプリケーションの互換性問題が発生する可能性がある。
といった説明をしました。「1つの環境に複数バージョンのSilverlightランタイムは共存できない」という部分は誤りではないのですが、「古いバージョンのSilverlightで作成したアプリケーションの互換性問題が発生する可能性がある」という部分において、お伝えすべき情報が不足していました。
下記のMSDNライブラリのページには、Silverlight 2アプリケーションがSilverlight 3ランタイム上で動作する場合、そのアプリケーションは“互換捻出モード”で動作すると書かれています。
この“互換捻出モード”とは英語ページでは“Quirks Mode”と記載されており、ようするにSilverlight 2互換モードということです。公開した資料では、下記のように図を修正しています。
実はこのQuirksモードは、以前自分のblogでも少しだけ触れていた部分がありました。
ListBoxコントロールにおける縦スクロールの単位 - Yuya Yamaki’s blog
Silverlight 2:ピクセル単位
Silverlight 3:行単位
Silverlight 2アプリケーションとしてビルドしたものをSilverlight 3ランタイム上で動かした場合でも、Silverlight 2と同じピクセル単位のスクロールとなる。
このように、Silverlight 2アプリケーションはSilverlight 3ランタイムの上はQuirksモードで動作するため、行単位のするクロールといったSilverlight 3の動作とならず、ピクセル単位のスクロールというSilverlight 2の動作、つまり互換性を維持した動作となります。
ランタイム自身はあくまで新しいバージョンとなっているのでまったくテストしないという訳にはいかないかと思いますが、多くの部分がこのQuirksモードで担保されるため、一般的なランタイムのバージョンアップほど気を使う問題ではないと言えるかと思います。