かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

MetroスタイルのIE10がFlashをサポートしたのにSilverlightを何故サポートしないのか考えてみた

マイクロソフト、IE10にFlash Playerを統合。MetroスタイルでもFlashコンテンツが利用可能に。Silverlightは含まず
こちらでも取り上げられてる通り、MetroスタイルのIE10ではプラグインを完全排除してHTML5推しという流れでしたがWindows 8 Release Previewの蓋を開けてみるとMetroスタイルのIE10にFlashを統合しましたとなっていました。このニュースだけを見たとき、何故自社のFlash対抗(公式には対抗と言ってないだろうけど)のSilverlightを統合してこなかったのか?という疑問が浮かんできましたが、以下のように考えるとMetroスタイルのIE10ではSilverlightのサポートする必要ないなという考えに至ったので、書いてみようと思います。

デスクトップ用Flash ≠ MetroスタイルIE10用Flash

まず、最初に注目するのはMetroスタイルのIE10に統合されたFlashがどんなものかというところです。記事を見ると、ざっくりと以下の対応がされているようです。

  • タッチフレンドリー
  • 省電力対応
  • Compatibility View (CV) リスト

タッチフレンドリーという点は、おそらくMetro スタイルのお約束事に準拠したものを作れるようになっているのかな?とか考えられます。正直デスクトップアプリケーションをタッチで使うのは心が折れるので、タッチフレンドリーな大きさのコントロールとかできてるとうれしいなって。

次に、省電力対応ですがMetro スタイル アプリでは省電力のため背面に回ったアプリケーションはCPUとかを極力使用しなくなり、場合によってはOSによって終了させられます。これに対応するために、背面に回ったタイミングでアプリケーションの状態を保存して、前面に復帰したときに必要ならば、前に保存したデータから状態を復元して、あたかもずっと動いてたという動作をします。Flashも、こういう動きに対応するようになったのではないかと勝手に想像してます。


CVリストについては、審査に通ったサイトのみFlashが表示されるというもののようです。なので、バッテリーを消費が激しかったりタッチフレンドリーじゃないサイトは、そもそも表示を許可されないという作りですね。

ここに書いてることはソースがあるわけではなく想像なので間違ってたら教えてくださいm(_ _)m

Silverlightについて考えてみる

ここでSilverlightについて考えてみます。Silverlightに対してタッチフレンドリー対応をして、なおかつ省電力対応したものってどういうものになるでしょうか。タッチ対応のコントロールが整備され、OSによる突然の終了にも対応する。そして、それに対応して審査を受けて通ったら晴れてMetro版IE10で表示される!!開発はこなれたC#(VB)とXAMLでできちゃう!

上記の特徴を持つものは、IE10上で実行されるという点を除けばC#(VB) + XAMLで開発できるMetro スタイル アプリケーションそのものと言えるかなと思います。Metro スタイル アプリケーションに対しての唯一のアドバンテージは、ブラウザで表示すると即実行できるという点くらいですが、Webサービスに対応するMetro スタイル アプリがあることをIEでページを開いたら通知できる仕組みも用意されてることを考えると、そんなに大きなアドバンテージにはならないのかなと考えられます。逆にSilverlightの過去のしがらみにとらわれて、デスクトップで表示されてるのかMetroのIEで表示されているのか見分けて動作やUIを変えるといった工夫も必要になるんじゃ・・・?等考えると、Metro スタイル アプリ一本でいったほうが楽な気がします。

まとめ

ということで、SilverlightがMetroスタイルのIE10に対応してなくても、Metro スタイル アプリがあるさということです。