RubyistのためのSilverlight2
- 3. Silverlight 2
• Microsoftの開発するRIA(Rich Interactive
Application)技術。
• ブラウザ上でリッチなUIを実現することが可能。
• Adobe Flexへの対抗技術。
• Silverlight 2 RTWが今年10月14日に公開。
開発ツールも続々公開され始めている。
わんくま同盟 東京勉強会 #26 – LT大集合!!
- 4. Silverlight 2の特徴
• クライアントサイドで動作
– ブラウザにプラグインのインストールが必要
– サーバサイドは何でもOK. もちろんRailsも。
• DLR(Dynamic Language Runtime)で開発可
– .NET Framework上で動的言語を動かす技術
– IronPython、IronRuby、Managed JScriptに対応
サーバもクライアントもRubyで開発可能!
わんくま同盟 東京勉強会 #26 – LT大集合!!
- 5. IronRubyでSilverlight開発
• Silverlight Dynamic Language SDKを利用
• 見た目はXAML、ロジックはIronRubyで書く。
• メソッドやプロパティ名がアンダーバー区切り。
class App < SilverlightApplication
use_xaml
def initialize
button1.click do |sender, e|
textblcok1.text = quot;Hello World!quot;
end
end ボタンがクリックされたときの
end 処理をブロック内に記述
わんくま同盟 東京勉強会 #26 – LT大集合!!
- 6. ページにSilverlightコンテンツを貼り付ける
• SDL SDK付属のChiron.exeでXAPファイル
(ソースとDLLをZIP化したもの)を作成。
• RailsのViewにXAPファイルを読み込むように
記述する。
<object data=quot;data:application/x-silverlight,quot;
type=quot;application/x-silverlight-2quot;
width=quot;100%quot; height=quot;100%quot;>
<param name=quot;sourcequot; value=quot;app.xapquot;/>
</object>
わんくま同盟 東京勉強会 #26 – LT大集合!!
- 7. RailsとSilverlight間の通信
• Rails 2.0
– ActiveResource
→ RESTfulなAPIを実現するライブラリ
• Silverlight 2
– WebClientクラス
→ HTTPのGET/POSTが可能
RESTで容易に連携可能
わんくま同盟 東京勉強会 #26 – LT大集合!!
- 8. RailsでRESTful APIの提供
• Scaffoldで生成されたものがすでにREST。
• データベースから全データを取得して
HTML/XML/JSON形式で返すメソッド。
class ProductsController < ApplicationController
def index
@products = Product.find(:all)
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @products }
format.js { render :json => @products }
end
end
end
わんくま同盟 東京勉強会 #26 – LT大集合!!
- 9. Silverlightでサービス呼び出し
• WebClientクラスを利用。
• JSON形式で受け取ったメッセージをパースし
て、描画処理を行う。
client = Net::WebClient.new
client.download_string_completed do |sender, e|
response = Json::JsonValue.parse(e.result)
# 描画処理を記述
end System.Json.dllを利用してパース
client.download_string_async
(Uri.new(quot;http://localhost:3000/products.jsquot;))
わんくま同盟 東京勉強会 #26 – LT大集合!!
- 11. まとめ
• クライアントとサーバをほぼ同じプログラミング
言語で作れるのは楽。
• まだ実用は難しいかも。
– IronRubyは正式リリース前。
– Web上に情報が少ない。
– Visual Studioとの連携も弱い。
• MicrosoftがRailsとSilverlight連携のプラグイ
ンを開発しているらしいので期待。
わんくま同盟 東京勉強会 #26 – LT大集合!!