Silverlight 開発入門
仕事で Silverligth について調査することがあったので
思い切って入門してみた。
Hello World を動かすまでをまとめてみる。
Silverlight のイイトコロ
準備するもの
- .Net Framework 2.0
- Silverlight Runtime
- Silverlight SDK
- Silverlight SDK ドキュメント
注意事項としては Runtime と SDK のバージョンをあわせる必要がある。
上のリンクはたぶん古くなっているので最新版を探してください。
今回使ったのは Silverlight 2.0.30523.8。
開発してみる
以下のようなディレクトリ構成にする。
index.html
app/
- app.xaml
- app.js
index.html
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Silverlight Javascript sample</title> </head> <body> <div id="out"> <object data="data:application/x-silverlight," type="application/x-silverlight-2-b2" width="100%" height="100%"> <param name="source" value="app.xap"/> <param name="initParams" value="debug=true,reportErrors=out" /> </object> </body> </html>
object 要素の type 属性は Silverlight のバージョンによって
変える必要があった。
Opera なら opera:plugins で見られる。
param 要素の value を app.xap にすると
chiron.exe が先ほど作った app ディレクトリをオンザフライで
コンパイルしてデバッグできるようにしてくれる。
app.xaml
<UserControl xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="System.Windows.Controls.UserControl" x:Name="JSSample1"> <TextBlock Text="Hello world!" /> </UserControl>
XAML というのがユーザーインターフェースを定義する言語。
Flex でいう MXML と位置づけは一緒。
app.js
Import("System.Windows.Application") Import("System.Windows.Controls.UserControl") function sample_app() { this.scene = Application.Current.LoadRootVisual( new UserControl(), "app.xaml"); } sample_app.prototype = { start:function() { } } app = new sample_app; app.start();
ロジックは今回は JavaScript を選んだ。
配布する
配布するときには
cd app chiron /z:app.xap
で実行可能な XAP ファイル(ただのzip)ができる。
Chiron のヘルプにはコンパイルは /x と書いてあるが
スクリプト言語(JavaScript/Ruby/Python) では
DLL も一緒に XAP に含めなければいけないため
/z オプションを使用する。
XAP ファイルの中身はこんな感じ
- app.js
- app.xaml
- AppManifest.xaml
- Microsoft.JScript.Compiler.dll
- Microsoft.JScript.Runtime.dll
- Microsoft.Scripting.Core.dll
- Microsoft.Scripting.Silverlight.dll
- Microsoft.Scripting.dll
JavaScript 用の DLL が多数含まれていることがわかる。
感想
動作に関しては Flash と比べても遜色がないと感じた。
開発に関しては、Flex Builder を使った開発と比べて
やはりまだまだ大変。
特にドキュメントにサンプルコードがまったくなくて困った。
Visual Studio 2008 Professional を使うと
C# を使ってリッチな開発が行えるらしいので
そっちを使えばもしかしたら Flex Builder よりも楽なのかもしれないが
Microsoft の開発環境を使うのはなんだかなーという感じ。
参考 URL
ここと内容はほぼ一緒。新しいのは本記事が Silverlight beta 2 対応なくらい。