Silverlight 1.1に搭載されるDLR

米Microsoftは4月30日、ブラウザのプラグインとして動作するリッチインターネットアプリケーション実行環境「Silverlight」のバージョン1.0 ベータ版とバージョン1.1 アルファ版をリリースした。このことはすでに本誌のハウツー記事「Microsoftが満を持して送り出す"Flashの対抗技術" - Silverlightを体感する」でもお伝えしたとおりだ。

これら2つのバージョンの差異は非常に大きい。なぜなら、1.0ではXAML+JavaScriptの組み合わせしかサポートされていないが、1.1では.NET CLRが動作するのだ。これにより、SilverlightアプリケーションをC#やVB.NETを用いて開発することができる。

それだけではない。Microsoftは、CLR上で動的なスクリプト言語を動作させる環境として「DLR (Dynamic Language Runtime)」の開発を進めている。DLR上で動く言語は統一された型を利用でき、高速に動作する。Silverlight 1.1にはこのDLRが搭載されているのだ。そのため、アルファ版の現在でもIronPython、JScriptといったスクリプト言語を利用できるほか、将来的にはなんとRubyも利用できるようになる。

DLR上で動作するRubyはIronRubyと呼ばれ、Microsoftによって公式に開発がサポートされている。今年の後半にリリースされる予定で、Microsoft Permissive LicenseというBSDライセンスに似た共有ソースライセンスで公開される。ただし現在のところ、何の成果物も公開されていないため、開発者はまだ利用できない。

以下では、Silverlight 1.1アルファ版とMIX07カンファレンスで発表されたデモンストレーションの内容を基に、Silverlight上でスクリプト言語を動作させる例を紹介する。

Silverlight 1.1でスクリプト言語を利用する

先ほども述べたが、現在リリースされているSilverlight 1.1 アルファ版でもIronPython、JScriptといったスクリプト言語を動作させることは可能だ。こちらのサイトからダウンロードでき、サンプルも多数付属しているのでぜひ試していただきたい。インストールに関する注意点などは、バージョン1.0 ベータ版と変わらないのでこちらの記事を参照してほしい。

今回お見せするサンプルは非常に簡単で、「Click Me!」と書かれたテキストをクリックすると、テキストの内容が「Hello」に変更されるという単純なものだ(画面参照)。

今回のサンプル。クリックするとテキストが変化する。左がクリック前、右がクリック後

次ページでは実際のコードをご覧いただくが、本稿ではXAMLファイルとスクリプトソースファイルしか掲載しない。本来であれば、これら以外にもアプリケーションを配置する先となるHTMLファイルが必要になるが、そちらについては、「Microsoftが満を持して送り出す"Flashの対抗技術" - Silverlightを体感する」を参照してほしい。