かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

IronRuby 1.0 公開されたので使ってみた

やっとこさバージョン1.0がリリースされたというのでインストールして試してみました。
ダウンロードは以下からです。
http://ironruby.net/

インストールした先のbinに、パスを通して準備は完了です。

# hello.rb
puts "Hello world"

というファイルを作ってDOS窓あたりで

ir hello.rb

と打ち込むと

Hello world

と表示されます。

これだけじゃ面白くないので、以下のようなスクリプト書いてみました。ちょっとびっくりしたのが、.NETとの連携でrequire 'アセンブリ名'で読み込める点でした。これだけお手軽だと連携がんがんしちゃうよね?

# WPFに必須のやつ
require 'WindowsBase'
require 'PresentationCore'
require 'PresentationFramework'

# 毎回フルネームでアクセスするのがメンドクサイのでincludeしておく
include System::Windows
include System::Windows::Controls

# 画面に表示するためのModel
class PersonModel  
  attr_accessor :name
end

# WPFのWindow
class MyWindow < Window
  def initialize
    # DataContextへモデルの設定
    self.data_context = PersonModel.new
    self.data_context.name = "Tanaka"
    
    # TextBlockを画面に置いてnameプロパティをバインド
    self.content = TextBlock.new
    self.content.set_binding(TextBlock::text_property, "name")
  end
end


# Application起動
Application.new.run(MyWindow.new)

WPFのウィンドウを表示しています。実行すると以下のようなそっけないウィンドウが表示されます。

いやはや、よく出来てる。NPOIつかえば、Excelとかを読み込んでERB使ってごにょごにょするようなものが作れるかもしれない。