はじめに
前回はC#でのSilverlight 2の開発をご紹介しました。今回は.NET上で動的言語を実行するDynamic Language Runtime(DLR)をSilverlightで動かすためのDynamic Silverlightについてご紹介します。さらに今回はMacでの開発を試みます。
Dynamic Silverlightとは
最初に少し書きましたが,Dynamic Silverlight(DSL)とはDLRをSilverlightと統合し動作させるための技術です。DLRとは動的言語を処理するためのランタイムライブラリで,CLR上で動作します。DSLを使用することで様々な動的言語によってSilverlightのプログラミングを行うことが可能になります。
DSLでは現在,以下の3種類の言語が標準で提供されています。
- IronPython
- IronRuby
- Managed JScript
今後はさらに様々なDLR上で動く言語が登場し,DSLでの言語の選択肢が増えていくことでしょう。
SDKの導入
DSLにはDSL用のSDKが用意されています。以下のサイトよりダウンロードしてください。
ダウンロードが完了したら,適当なフォルダに展開してください。このSDKには大きく分けて以下のものが含まれています。
- DSLランタイムやIronRuby/IronPythonなどのアセンブリ
- webサーバーとしての実行とxapの生成を行うChiron.exe
- 上記のソースコード
- サンプルアプリケーション
実は,ソースコードやサンプルアプリケーション以外のものは前回導入したSilverlight 2のSDKにも含まれています。さらに,ここにはDSLのSDKには含まれないManaged JScriptのアセンブリも含まれています。しかし,筆者の手元の環境で確かめたところ,微妙にアセンブリのバージョンが異なっていました。
- Silverlight 2 SDKに含まれるバージョン = 2.0.5.0
- DSL SDKに含まれるバージョン = 2.0.5.100
今回はDSLのSDKを使用して解説を行います。
開発ツールのChiron.exe
Chiron.exeとはSDKに含まれている開発用のコマンドラインツールです。おもに以下の機能を持っています。
- 開発用の簡易的なWebサーバー
- xapファイルの生成
DSLの開発ではChiron.exeを使用して,xapファイルの生成やサーバーを実行して,ブラウザでの動作確認を行います。以下のコマンドでChiron.exeに指定できる引数とその機能が表示されますので,ぜひ確認してみてください。
Chiron.exe -h
Macでの開発
Chiron.exeは.NET Frameworkのオープンソース実装であるMonoでも動作するように作成されています。MonoはMacでも動作します。つまりMonoでChiron.exeを動作させればMac上でDSLによる開発が可能になります。
本稿でもMacを使用して解説を行います。ただし,Windowsで開発した場合との違いはChiron.exeを実行する場合に,コマンドの先頭に"mono"と指定するかどうかだけなので,Windowsで試される場合も問題はありません。
1.Macで実行する場合
mono Chiron.exe -h
2.Windowsで実行する場合
Chiron.exe -h
Monoのダウンロードと導入は以下のサイトの手順に従って行ってください。
DSLのSDKもZIP形式で圧縮されているので,Macにもそのまま導入できます。適当なディレクトリに展開してください。MonoとDSLのSDKの両方とも導入が完了したら,以下のコマンドを実行してください。Chiron.exeの部分はフルパスが必要になりますので,適宜読み替えを行ってください。ヘルプが表示されれば成功です。
mono Chiron.exe -h

