Windows Phone 8の開発ツールについておさらい

6月20日(現地時間)のWindows Phone Summitで発表のあったWindows Phone 8ですが、開発ツールに関してはイマイチよく分からなかったというのが本音のところです。

海外でも疑問に思っているユーザーが多いようで、App Hubフォーラムを通じてマイクロソフトのMark Chamberlain氏が受け答えを行っています。現時点でも続いています。
Status update: Windows Phone 8 Developer Tools

ここで書かれている内容について整理してみました。

Windows Phone 8の基本事項
  1. Windows Phone 8Windows 8と同じコア
  2. コードを再利用できる(phone, tablet, desktop PC, server, XNA
  3. Windows Phone 7.xのアプリはWindows Phone 8で動く
  4. 新しい開発ツールはWindow Phone 7.xをサポートし、SilverlightXNAのアプリを含む
  5. 7.x用にビルドすることも可能で、7.xのアプリを更新することも可能
  6. 7.xは7.8に更新され、8のスタート画面を利用でき、8がローンチしてから利用できるようになる
Windows Phone 8の開発テクノロジについて
  1. Windows 8 Metro UX(WinRT API)を利用する(XAML with C#/VB)
  2. DirectX/C++を利用する
  3. HTML5でWeb Browser Controlを介してアプリを作るか、IE10を使ったウェブページとしてアプリを作る

WinRTを利用すればWindows 8Windows Phone 8で大部分のコードを共有することができるが、ハードウェアに固有のコードなどの一部の処理は無理。

考察

ここからは自分の意見です。
Windows Phone Summitで開発者には3つの選択肢があると言っていました。

このスライドにあるように、Windows Phone 8ではXAML with C#/VBを使って開発を行うことが可能です。これはWinRTのAPIを使って開発をするスタイルになるようです。Windows 8でWinRTが登場し開発言語はXAML with C#/VBXAML with C/C++HTML5 with JavaScripの3つの選択肢がありましたが、Windows Phone 8ではMetroスタイルのアプリを開発するにはC#/VBのみのようです。いずれはXAML with C/C++HTML5 with JavaScriptが対応されるかもしれませんが。

XNAについて心配されている方も多いと思いますし上記のスライドにも明記されていませんが、フォーラムではMark Chamberlain氏がXNAWindows Phone 8用のアプリを開発できると言及しています。しかし、Silverlightについては7.xについてしか語られていないのでどうなるか分かりません。


これらのことから、今後Windows 8Windows Phone 8の両方のプラットフォームで開発を行うなら、WinRT API(XAML with C#/VB)で開発を行い、またゲームの開発を行うならDirectX/C++を使えばコードを共有できるということになります。

また、.NET Frameworkはデスクトップとウェブ、Metroスタイルはタブレットと携帯のようにテクノロジの棲み分けが行われていると言えそうなので、どの技術を選ぶべきか慎重に検討した方がよさそうです。


最後にここでの情報はすべて正しいとは限らないので、公式の情報や詳細については正式にSDKが発表されるlater this summerまで待ちましょう。