Udostępnij za pośrednictwem


Silverlight Dynamic Language SDK の使い方1

既にご案内したようにSilverlight 2.0に対応したDynamic Language SDKがリリースされています。Codeplexのサイトには、以下の5種類が公開されています。

  • sdlsdk-0.4.0(Everything):バイナリ、サンプル、ソースが含まれています。
  • sdlsdk-0.4.0-bin:バイナリのみ。
  • sdlsdk-0.4.0-samples:サンプルのみ。
  • sdlsdk-0.4.0-src:ソースコードのみ。
  • sdlsdk-0.4.0-symblos:デバッグなどで使用するシンボル。

開発に利用するには、sdlsdk-0.4.0(Everything)がお勧めでしょう。このパッケージには以下のようなフォルダ構造が含まれています。

bin chiron.exeや使用するdllが含まれます
samples サンプルプログラム
script 起動用のスクリプトと開発用のテンプレート集(templatesフォルダ)
src ソースコード(Managed JS除き)
ルート直下のファイル Readmeとライセンス

テンプレート集を試すには、scriptフォルダでコマンドプロンプトを開いて、「server /b」を実行するとブラウザが開きます。templates/言語フォルダ/index.htmをブラウザで開くことで、テンプレート集で提供されているプログラムを動かすことができます。

 テンプレート集で提供されている構造は以下のようなものです。

javascriptフォルダ error.js:Silverlightランタイムのエラー時に指定するonSilverlightError関数が定義されています。
言語フォルダ app.言語拡張子、app.xaml:言語のコードサンプルと単純なXAML(GridとTextBlockだけ)が定義されています。
stylesheetsフォルダ screen.css、error.css:error.cssはSilverlightランタイムのエラーなどを表示するスタイルシートで、フォントがCourier Newになっています。
index.html Silverlightを起動する指定がobjectタグで記述されています。

このテンプレートを使ってカスタマイズして、動的言語を使ったSilverlight2 アプリを開発できるようになっています。

このテンプレートを使って開発するには、scriptフォルダにある「sl.bat」ファイルを使用するのが簡単です。sl.batの使い方は、scriptフォルダでコマンドプロンプトを開いて以下のようにコマンドを入力します。

 sl 言語 アプリケーションフォルダ

言語には、「python」「ruby」「jscript」を指することができます(要は、templatesフォルダ内にある言語フォルダの名前です)。アプリケーションフォルダとは、開発するアプリケーションを格納するフォルダのことです。これで上記のコマンドを実行すると、templatesフォルダで提供されているテンプレート集を指定したアプリケーションフォルダにコピーしてくれます(xcopyです)。これで、必要なコードを記述していけばよいということになります。

提供されているサンプルを試す場合は、scriptフォルダでコマンドプロンプトを開いて以下のようにserver.batにオプションを付けて実行します。

server /d:..\samples /b

/dオプションで、開始するフォルダを指定しています。/bオプションは、ブラウザを開く指定です。後は、ブラウザを使って提供されているサンプル(jscript、python、ruby)のフォルダをナビゲートしてindex.htmlを開けば、サンプルプログラムが動作します。

次回は、実際の開発時の注意点などを含めてまとめていきます。

#この時点で試されるかたは、スクリプトファイルのエンコードをunicodeにするようにしてください。日本語を扱うには、エンコードがunicodeになっている必要があるからです。

Comments

  • Anonymous
    December 09, 2008
    ※ MSDNフォーラムにも投稿しましたが、Silverlightの開発環境を整えるために必要な情報をまとめてみたいと思います。 Silverlight 2が正式リリースされて約2か月近くになりました。いろんなお客様とお話しますと、「Silverlightについてのドキュメントが少ない」、「開発環境をうまく作れない」といった声が聞こえてきます。