まれに旭山動物園のサイト「Mother Earth 〜母なる地球」がSilverlightとか書かれているのを見るんだけど、違うんだ。

クロスプラットフォームでは無いWPFのブラウザ展開「XBAP」(拡張子[.xbap])なんだよ。
「XAMLブラウザアプリケーション」って言われたりする。

 

たぶん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じゃないよ。

 

Related posts