新規に作ったRubyアプリを走らせる

喋りすぎたようだ。ちゃんと動作しているかな。試してみよう。

$ cd photoviewer
$ ../script/server /b:index.html

【注意】"/b"はWindowsでもMacでも同じようにスラッシュを使う。なぜならこれはパラメータの一部でありパスではないからである。

これはSilverlightの開発用のWEBサーバChironを起動して,デフォルトブラウザでindex.htmlを表示する。"/w"オプションでは,WEBサーバだけ起動してブラウザは起動しない。とにかく,このような表示が見られるはずだ(もちろんデフォルトブラウザ内に)。

新規プロジェクトの作成

Silverlightのアプリを作るために,SDKに"sl"というスクリプトがある。これは2つの引数をとる。言語(rubypython,あるいはjscript)とアプリケーション名である。カレントディレクトリにアプリ名のフォルダが生成されて,その中にデフォルトアプリが生成される。ちょっと話しすぎたかな。実際にやってみよう。cmd.exeでもterminal.appでも開いて,以下のように入力する。

$ cd path/to/sdl-sdk
$ script/sl ruby photoviewer

【注意】もしWindowsを使っているのなら,パスの区切りにスラッシュ '/' ではなく '\' を使うこと。

これでたぶん"Your ruby Silverlight application was created in photoviewer"のようなメッセージが出るはずだ。同じようになったかな? 素晴らしい,先に進もう。では何が生成されたのだろうか。"photoviewer"フォルダの中には以下のようなものがある。

index.html
Ruby Silverlightの入れ物。何が生成されたのか気になるのなら,コメントに解説があるので読もう!
reby/app.rb
Silverlightのエントリポイント。このファイルはapp.xamlレンダリングして,Rubyでちょっとしたテキストをセットしている。
ruby/app.xaml
アプリ用のXAML UI。実際には今回のアプリではXAMLは使わないので,後で削除する。
ruby/silverlight.rb
SilverlightApplicationクラスを定義し,既存のSilverlightAPIRubyにとってより使いやすいようにしている。これの新しいバージョンをphotoviewer-start.zipに入れてあるので,置き換えること。
stylesheets/error.css
まずいRubyのコードを書いて不幸なイベントが起きたとき,ブラウザに表示されるエラーメッセージを読みやすくするスタイルシート
javascripts/error.js
Rubyのエラー通知機能をオフにした場合でも,このファイルが全てのエラーをキャッチして,ユーザが見苦しいアラートボックスを見なくてすむ。

事前準備

このウォークスルーはマックでもWindowsでも動作するが,Safariでは問題があるようだ。FirefoxIEでは問題なく動作する。
始めるには,Silverlight Dynamic Languages SDK (Beta 2), 略して"sdl-sdk"のダウンロードと,Silverlight 2 Beta 2のインストールが必要だ。sdl-sdk.zipをsdl-sdkフォルダに展開すること。
またこのアプリが利用するイメージとライブラリを含んだphotoviewer-start.zipが必要だ。

ウォークスルー: SilverlightとIronRubyでFlickrクライアントを作る

昨日,私は.NET Developers Association(NETDA)向けにIronRubySilverlightについて話をした。この記事では,私が作ったアプリの1つ,Flickrクライアントをお見せしよう。

実際のアプリへのリンク:http://jimmy.schementi.com/silverlight/photoviewer

『Silverlight2 と IronRuby で Flickr のクライアントを書く』を翻訳した。

http://d.hatena.ne.jp/ma2/20080815/p1の翻訳。
文章が口語調なんで,うまく訳せていないところがありますが許してください。ここで使っている画面イメージは僕のPCで,このエントリの通りに作ったものを動作させた結果です。
元ネタはJimmy Schementiさんのブログ(http://blog.jimmy.schementi.com/2008/08/walk-through-silverlight-flickr-client.html)。素晴らしいエントリをありがとう!