PR

 Windows Phone 8(以下WP8)が発表されました。事前に情報が漏れていましたが、OS部分がWindows CEからWindowsに変わり、Windows 8のメトロ環境とある程度の互換性ができたようです。また、従来のWindows Phone 7.xでは、アプは基本的に.NET Framework(SiverlightまたはXNA)で開発していましたが、WP8では、C/C++でのソフトウエア開発が可能になりました。恐らく、Windows 8と同等のMetro環境となったのだと思われます。

 Windows Phone 7.xとWindows 7にはあまり共通点はありませんでした(下図)。同じ.NET Frameworkを使うものの、Windows Phone 7.x側では、サブセットを使っていました。Silverlightは元々、.NET FrameworkのWPF(Windows Presentation Foundation)のサブセットとして作られたのですが、一時独自拡張が行われて、WPFの完全なサブセットではなくなっていました。また、XNAが採用する.NET Frameworkは、かつて.NET Compact Frameworkと呼ばれていて、やはりパソコン用の.NET Fameworkのサブセットに、ゲーム開発用の専用ライブラリなどが追加されたものでした。

[画像のクリックで拡大表示]

 ところが、Windows 8では、.NET Frameworkが4.0となり、WinRTと呼ばれる新しいAPIが持つ機能に対応しました(下図)。このWinRTは、WindowsのAPIセット(Win32 API)よりも、最近のAndroidやiOSのAPIセットに似ていて、細かな機能を多数提供するのではなく、使い方に応じた大きな機能を提供します。例えば、Win32 APIは、音楽を再生するにはファイルを読み込む機能やMP3などをデコードする処理、サウンドデバイスの制御といった「小さな機能」を組み合わせる必要があります。しかし、WinRTでは、「メディアの再生」といった機能が提供されており、簡単に音楽を再生させることができます。

[画像のクリックで拡大表示]

 このWinRTは、機能的には従来のSilverlightやXNAにあって、パソコン側の.NET Frameworkがカバーしていなかった機能をカバーしつつ、APIを再編成したものなのです。

 これにより、Windows 8のメトロ環境は、Windows Phone 7.xの実行環境に機能的には同等のものをカバーできるようになったわけです。また、Windows 8では、ARMプロセッサー上で動作するWindows RTが開発されました。この時点で、同じくARMプロセッサーで動作するWindows PhoneのOS側を差し替える準備ができました。