SlideShare a Scribd company logo
1 of 12
Download to read offline
RubyistのためのSilverlight 2

                  ZOETROPE




     わんくま同盟 東京勉強会 #26 – LT大集合!!
自己紹介

• ZOETROPE
• SIer勤務のソフトウェアエンジニア。主に研究
  開発担当。
• C#プログラマ。最近はSilverlight 2やWCFが
  お気に入り。
• はてなダイアリー
 – http://d.hatena.ne.jp/ZOETROPE




          わんくま同盟 東京勉強会 #26 – LT大集合!!
Silverlight 2

• Microsoftの開発するRIA(Rich Interactive
  Application)技術。
• ブラウザ上でリッチなUIを実現することが可能。
• Adobe Flexへの対抗技術。
• Silverlight 2 RTWが今年10月14日に公開。
  開発ツールも続々公開され始めている。




         わんくま同盟 東京勉強会 #26 – LT大集合!!
Silverlight 2の特徴

• クライアントサイドで動作
 – ブラウザにプラグインのインストールが必要
 – サーバサイドは何でもOK. もちろんRailsも。
• DLR(Dynamic Language Runtime)で開発可
 – .NET Framework上で動的言語を動かす技術
 – IronPython、IronRuby、Managed JScriptに対応



サーバもクライアントもRubyで開発可能!

         わんくま同盟 東京勉強会 #26 – LT大集合!!
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大集合!!
ページに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大集合!!
RailsとSilverlight間の通信

• Rails 2.0
  – ActiveResource
     → RESTfulなAPIを実現するライブラリ
• Silverlight 2
  – WebClientクラス
     → HTTPのGET/POSTが可能




          RESTで容易に連携可能

              わんくま同盟 東京勉強会 #26 – LT大集合!!
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大集合!!
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大集合!!
Scaffoldの一覧表示をDataGridで




 わんくま同盟 東京勉強会 #26 – LT大集合!!
まとめ

• クライアントとサーバをほぼ同じプログラミング
  言語で作れるのは楽。
• まだ実用は難しいかも。
  – IronRubyは正式リリース前。
  – Web上に情報が少ない。
  – Visual Studioとの連携も弱い。
• MicrosoftがRailsとSilverlight連携のプラグイ
  ンを開発しているらしいので期待。


         わんくま同盟 東京勉強会 #26 – LT大集合!!
ご静聴ありがと
うございました。
  わんくま同盟 東京勉強会 #26 – LT大集合!!

More Related Content

What's hot

Flex3超入門
Flex3超入門Flex3超入門
Flex3超入門ken yjm
 
NECビッグローブ/ビジネス事業部 グループマネージャー 山本氏
NECビッグローブ/ビジネス事業部 グループマネージャー 山本氏NECビッグローブ/ビジネス事業部 グループマネージャー 山本氏
NECビッグローブ/ビジネス事業部 グループマネージャー 山本氏loftwork
 
マイコンと機械学習を使って行動認識システムを作ろう
マイコンと機械学習を使って行動認識システムを作ろうマイコンと機械学習を使って行動認識システムを作ろう
マイコンと機械学習を使って行動認識システムを作ろう奈良先端大 情報科学研究科
 
OpenSocial Panel Discussion (デブサミ2009)
OpenSocial Panel Discussion (デブサミ2009)OpenSocial Panel Discussion (デブサミ2009)
OpenSocial Panel Discussion (デブサミ2009)Yusuke Kawasaki
 
Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)龍一 田中
 
ケータイサイトのはなし(入門編)
ケータイサイトのはなし(入門編)ケータイサイトのはなし(入門編)
ケータイサイトのはなし(入門編)Kentaro Matsui
 
Mercurial&OnenoteServer
Mercurial&OnenoteServerMercurial&OnenoteServer
Mercurial&OnenoteServerKeisuke Hata
 
FlashDevelop开发流程
FlashDevelop开发流程FlashDevelop开发流程
FlashDevelop开发流程lzyy
 
Xen+DRBDによるライブマイグレーション
Xen+DRBDによるライブマイグレーションXen+DRBDによるライブマイグレーション
Xen+DRBDによるライブマイグレーションmkawase
 
бешков Windows Power Shell Rootconf
бешков Windows Power Shell Rootconfбешков Windows Power Shell Rootconf
бешков Windows Power Shell RootconfLiudmila Li
 
Sk Cvc 2009 Key Note
Sk   Cvc 2009 Key NoteSk   Cvc 2009 Key Note
Sk Cvc 2009 Key NoteLiudmila Li
 
Solutions@ Web Slides (Chinese)
Solutions@ Web Slides (Chinese)Solutions@ Web Slides (Chinese)
Solutions@ Web Slides (Chinese)webbssolutionsasia
 
Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)zetamatta
 
Androidの中身-第26回NaCl社内勉強会
Androidの中身-第26回NaCl社内勉強会Androidの中身-第26回NaCl社内勉強会
Androidの中身-第26回NaCl社内勉強会Narihiro Nakamura
 
TodayでLDR読んでみよう
TodayでLDR読んでみようTodayでLDR読んでみよう
TodayでLDR読んでみようYutaka Tsumori
 

What's hot (20)

Flex3超入門
Flex3超入門Flex3超入門
Flex3超入門
 
NECビッグローブ/ビジネス事業部 グループマネージャー 山本氏
NECビッグローブ/ビジネス事業部 グループマネージャー 山本氏NECビッグローブ/ビジネス事業部 グループマネージャー 山本氏
NECビッグローブ/ビジネス事業部 グループマネージャー 山本氏
 
マイコンと機械学習を使って行動認識システムを作ろう
マイコンと機械学習を使って行動認識システムを作ろうマイコンと機械学習を使って行動認識システムを作ろう
マイコンと機械学習を使って行動認識システムを作ろう
 
mruby showcase
mruby showcasemruby showcase
mruby showcase
 
What is PHP Frameworks?
What is PHP Frameworks?What is PHP Frameworks?
What is PHP Frameworks?
 
OpenSocial Panel Discussion (デブサミ2009)
OpenSocial Panel Discussion (デブサミ2009)OpenSocial Panel Discussion (デブサミ2009)
OpenSocial Panel Discussion (デブサミ2009)
 
WebDAV as Web API
WebDAV as Web APIWebDAV as Web API
WebDAV as Web API
 
Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)
 
ケータイサイトのはなし(入門編)
ケータイサイトのはなし(入門編)ケータイサイトのはなし(入門編)
ケータイサイトのはなし(入門編)
 
RDF and FOAF
RDF and FOAFRDF and FOAF
RDF and FOAF
 
Mercurial&OnenoteServer
Mercurial&OnenoteServerMercurial&OnenoteServer
Mercurial&OnenoteServer
 
FlashDevelop开发流程
FlashDevelop开发流程FlashDevelop开发流程
FlashDevelop开发流程
 
Xen+DRBDによるライブマイグレーション
Xen+DRBDによるライブマイグレーションXen+DRBDによるライブマイグレーション
Xen+DRBDによるライブマイグレーション
 
бешков Windows Power Shell Rootconf
бешков Windows Power Shell Rootconfбешков Windows Power Shell Rootconf
бешков Windows Power Shell Rootconf
 
Sk Cvc 2009 Key Note
Sk   Cvc 2009 Key NoteSk   Cvc 2009 Key Note
Sk Cvc 2009 Key Note
 
Gl Matrix
Gl MatrixGl Matrix
Gl Matrix
 
Solutions@ Web Slides (Chinese)
Solutions@ Web Slides (Chinese)Solutions@ Web Slides (Chinese)
Solutions@ Web Slides (Chinese)
 
Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)
 
Androidの中身-第26回NaCl社内勉強会
Androidの中身-第26回NaCl社内勉強会Androidの中身-第26回NaCl社内勉強会
Androidの中身-第26回NaCl社内勉強会
 
TodayでLDR読んでみよう
TodayでLDR読んでみようTodayでLDR読んでみよう
TodayでLDR読んでみよう
 

Viewers also liked

Reactive Systems と Back Pressure
Reactive Systems と Back PressureReactive Systems と Back Pressure
Reactive Systems と Back PressureAkihiro Ikezoe
 
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPIAkihiro Ikezoe
 
Embulkを活用したログ管理システム
Embulkを活用したログ管理システムEmbulkを活用したログ管理システム
Embulkを活用したログ管理システムAkihiro Ikezoe
 
Incremental DOM and Recent Trend of Frontend Development
Incremental DOM and Recent Trend of Frontend DevelopmentIncremental DOM and Recent Trend of Frontend Development
Incremental DOM and Recent Trend of Frontend DevelopmentAkihiro Ikezoe
 
企業文化をぶち壊すな / Startup Culture
企業文化をぶち壊すな / Startup Culture企業文化をぶち壊すな / Startup Culture
企業文化をぶち壊すな / Startup CultureTakaaki Umada
 

Viewers also liked (6)

Reactive Systems と Back Pressure
Reactive Systems と Back PressureReactive Systems と Back Pressure
Reactive Systems と Back Pressure
 
Reactive
ReactiveReactive
Reactive
 
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
 
Embulkを活用したログ管理システム
Embulkを活用したログ管理システムEmbulkを活用したログ管理システム
Embulkを活用したログ管理システム
 
Incremental DOM and Recent Trend of Frontend Development
Incremental DOM and Recent Trend of Frontend DevelopmentIncremental DOM and Recent Trend of Frontend Development
Incremental DOM and Recent Trend of Frontend Development
 
企業文化をぶち壊すな / Startup Culture
企業文化をぶち壊すな / Startup Culture企業文化をぶち壊すな / Startup Culture
企業文化をぶち壊すな / Startup Culture
 

RubyistのためのSilverlight2