まれに旭山動物園のサイト「Mother Earth 〜母なる地球」がSilverlightとか書かれているのを見るんだけど、違うんだ。
クロスプラットフォームでは無いWPFのブラウザ展開「XBAP」(拡張子[.xbap])なんだよ。
「XAMLブラウザアプリケーション」って言われたりする。
-
Web における Windows Presentation Foundation : XAML ブラウザ アプリケーション
http://www.microsoft.com/japan/msdn/windowsvista/general/wpfandwbas.aspx
たぶんSilverlightが、Flashみたいなマイクロソフトのブラウザ・プラグイン → WPFがWebで動く → 「旭山動物園」みたいな流れで誤解してしまっているのかな。
でも、SilverlightだったらMacでも見られるよね。
まあ、この「XBAP」自体、Silverlightがリリースされて、今後目にする機会はあまり無いと思う。
業務アプリとか社内イントラなどの動作環境が特定・統一できるところで(Windowsでしかも.NET Framework 3.0以上が入れられて・・・)、目立たず使われる事があるくらいだろうな。
XBAPは基本的にWPFをブラウザ内で動作させているので、動作環境がVistaか.NET Framework 3.0が入ってるXPで、しかもブラウザはIEのみなんだよ。.NET Framework 3.5 (今はBeta)を入れればFirefoxでも見れるようになるけどさ。
旭山動物園はHTMLページ段階でIE判定が入っているからFirefoxは蹴られちゃう。(XBAPのURLを直接たたけば大丈夫だけど)
Silverlightと何が違うかっていうと、Silverlightはプラグイン上で動作しているけど、XBAPは違う。実はEXEが動いてる。
まず「.xbap」はURLを直接指定するか、HTMLのiframeの中で指定しなきゃブラウザで見る事ができない。さらに「.xbap」自体は数KBしかなくて、実際のコンテンツとなるアプリ実体の(サーバーに配置された)「.exe」を指定しているに過ぎないファイル。
そして、もっとややこしいことに、このEXEを実行しているのはブラウザではなく、System32あたりにある「PresentationHost.exe」みたいな名前のWPF実行環境が行ってる。
当然、普通に相対パスとか書いていると、このPresentationHost.exeが基準の相対パスになる。もろにローカルで動いている。またWPFだからといっても、ローカルで動くアプリケーションに比べるとブラウザ内で動く以上、セキュリティ系やパフォーマンス系でいくつかの制約もある。
しかも、Silverlightがでてきて、忘却の彼方へ向かってる。(実際、久しぶりに「XBAP」という言葉を思い出した)
「旭山動物園」がSilverlightと誤解されたままだと、「Silverlightで3Dを使った、あの旭山動物園みたいの作ってよ」って言われても作れないよ。Silverlightの1.1でもリリースの時に、3Dをサポートする予定はないし。コンテンツ自体は3D部分を除くか、疑似で表現すればSilverlightになりそうな気もするけど。
クロスプラットフォームで動くのはSilverlightだけ。
じゃあ、結局SilverlightはFlashと比べてどうなのって話になるんだろうけど、たぶん
- .NET開発者がWebのリッチコンテンツを作れる
- DLLが使える
- JavaScript・Python・RubyでもOK
- LINQでデータにアクセスできる
- XAMLのランタイム時のパースや動的生成ができる
- .NET Framework の連携開発
が主なところになるんかな。
.NETでWebリッチコンテンツを作れるってのが一番大きいんだろうけど、技術的興味じゃなくて、そういうモノを作りたいって思う人が.NET開発者にどれだけいるかにかかってるんじゃないかな。
あ、もうひとつ付け加えておくと、シンプルなXAMLならXBAPみたく直接ブラウザで見れる「LooseXAML」ってのもある。実際のコンテンツじゃなありえないだろうけど直接URLに「.xaml」を指定して見れるやつ。これもSilverlightじゃないよ。
