【コラム】

OS X ハッキング!

225 OS Xで.NETの機能を利用できる「Silverlight」を試す

    海上忍  [2007/05/11]

    GW中に強烈な風邪を引いてしまい、1週間ほど高熱に悩まされました。体温が39度を超えたときには、視界全体が黄ばんで見えるありさま。どうにか平熱に落ちつきましたが、今度は世の中が初夏のような暑さで、我がMacBookのパームレストも熱く……ん? 黄ばんで見えるのは熱のせいか?

    さて、今回はMicrosoftの「Silverlight」について。Adobeが提唱する「リッチインターネットアプリケーション(RIA)」という概念は、FlashとPDF、そしてJavaScript / Ajaxの実行環境を内部に持つ「Apollo」として先に具現化しているが、このSilverlightも同様のコンセプトを持つ。WindowsとMac OS Xに対応するなど、マルチプラットフォーム指向である点も共通だ。今回は、最新α版の「Silverlight 1.1α」を利用して、その機能の概要を探ってみよう。

    SilverlightとApolloを比較する

    いきなりだが、Apolloとの比較からSilverlightの分析を始めてみたい。同じ"RIA"を標榜する実行環境のこと、提供する機能やコンセプトに違いがあるのか、共存させることが可能なのか、といった点に関心が集まるはずだからだ。

    まずはコンセプトから。メディアリッチでインタラクティブな機能を持ちインターネットとの親和性が高いアプリケーションがRIAだとするならば、ApolloとSilverlightのターゲットは同じだ。両者とも、JavaScript / Ajaxの実行環境を備え、動画やベクターグラフィックスの扱いにも長けている。マルチプラットフォーム指向という点でも、現時点におけるLinuxサポートの有無を除けば変わりがない。

    ただし、両者の技術的コアはまったく異なる。Silverlightのそれは、Extensible Application Markup Language(XAML)であり、Windows Presentation Foundation(WPF)の機能に直接アクセスできること。一方のApolloは、Flash / FlexとPDFだ。

    構造もだいぶ違う。下表に挙げたとおり、SilverlightはIEやFirefox、SafariといったWebブラウザのプラグインとして動作し、Safari(WebCore / JavaScriptCore)ベースのブラウザを内包するApolloとは出発点が異なる。Apolloのアプリケーションは一度ローカルにインストールしてから起動するが、SilverlightのアプリケーションはWebブラウザ上で起動することが基本(ダウンロードするとHTMLなどリソースファイルがむき出し)、という点も異なる。よって、ApolloとSilverlighはなんの問題もなく共存できる。

    Silverlightで注目すべきは、開発言語の豊富さ。Silverlight 1.1以降では、.NETのmini-CLR(Common Language Runtime)がサポートされたことにより、.NETプラットホーム(のサブセット版)がマルチプラットフォーム環境で利用可能になったのだ。マネージド・コードをサポート、C#やVisual Basic、Python(IronPython)といった言語も利用できる。こちらの記事/によれば、近々Ruby(IronRuby)もサポートされるだろうとのこと。ApolloでもFlex経由でJavaや.NETの機能を利用できるが、開発者の分母の大きさと拡張性という点では、Silverlightは互角以上の存在だ。

    表: SilverlightとApolloの特徴比較

    Silverlight 1.0Silverlight 1.1Apollo
    ブラウザ内蔵××
    Adobe Flex××
    PDF××
    Flash××
    WMV×
    ActionScript××
    JavaScript
    IronPython××
    Jscript××
    .NET Framework××

    OS Xで「.NET」が使えるということ

    前置きが長くなったが、サンプルアプリケーションを通じてSilverlightの機能を眺めてみよう。利用した環境は、MacBook / Mac OS X 10.4.9 / Safari 2.04だ。

    まず試したのは、MSDNのSilverlight関連ページにあるデモ。文字通り"ページをめくる"表示効果を体感できる「Page Turn」、WMVとMP3を利用したインタラクティブな「Silverlight Piano」、ストリーミング映像を流す「Media Library」。いずれもSilverlight 1.0 Betaで動作可能だ。

    こちらのサイトには、mini-CLRをサポートしたSilverlight 1.1以降でなければ動作しないデモが置かれている。なかでもIronPythonのコードを直接実行できる「DLRConsole」は必見。OS Xで.NETおよびmini-CLRが利用可能になったことが体感できるという点で、ほかのマルチメディア機能を強調したアプリケーションより興味深い。

    なお、ダウンロードしたパッケージに含まれる「Default.html」を開くと、ローカルでもSilverlightのアプリケーションを実行できるが、ランタイム(ClientBinフォルダにDLLとして置かれるようだ)が含まれない場合はエラーとなる。この問題は自力でDLLをダウンロードすれば解決できるようなので、以下に示すScribblerの事例を参考に、他のアプリケーションでも試してみるといいだろう。

    $ cd ~/Desktop/Scribbler
    $ mkdir ClientBin
    $ cd ClientBin
    $ curl -O http://silverlight.net/Samples/1.1/Scribbler/run/ClientBin/Viki.dll

    ページをめくる表示効果がおもしろいデモ「Page Turn」

    IronPythonのインタープリタとして使える「DLRConsole」

    スケッチソフトの「Scribbler」

    「Chess」はC#とJScriptで記述されているとのこと

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      マイナビニュースマガジン