自己解凍
ダウンロードしてきた「WAZToolkitForWP7.Setup.exe」を実行すると指定した展開先(インストール先ではありません)に自己解凍が始まります。


インストール
展開先のフォルダにある「Setup.cmd」を起動します。Setup.exeではなくcmdなんですね。
左下の4色アイコンがわくわく感を醸し出していますね。いままでとは違うインストーラの雰囲気です。

Windows Azure Toolkit for Windows Phone 7が何をするものかといえば「Install Windows Phone 7 Cloud Application project templates」という事で、Windows Phone 7のサーバーとしてAzureに注目している私のためのテンプレートとも思えてしまう内容です。

えーっと、なにが起こったんでしょうか。このPCには、VS2010も、WPDTも、あるんだよ。

64bit日本語OSでは依存関係のチェックにひっかかてインストールできません
つまり最近の標準環境ともいえる64bitなWindows 7日本語版にはインストールできないという悲しき状態という訳です。
この原因は依存関係チェックをPowerShellで行っているのですが「64-bit」と判定しているところが日本語環境では「64 ビット」とPowerShellが返すために判定ミスをしていることが原因だそうです。
対象となるのは次の4ファイル。PowerShell用のテキストファイルなので書き換えが可能です。
- C:\WAZToolkitForWP7\Setup\Scripts\Dependencies\Check\CheckVS2010OrExpress.ps1
- C:\WAZToolkitForWP7\Setup\Scripts\Dependencies\Check\CheckWPDT.ps1
- C:\WAZToolkitForWP7\Setup\Scripts\Dependencies\Check\CheckWPDTJanuary2011Update.ps1
- C:\WAZToolkitForWP7\Setup\Scripts\Dependencies\Check\CheckSLforWPToolkit.ps1
書き換えよう、そうしよう。
4つのファイルの中から「OSArchitecture eq “64-bit”」の部分を探し出して「64 ビット」に書き換えます。

再チャレンジ
今度はうまく依存関係チェックをクリアして先に進んでくれました。

そして、Completed!

とおもったらまだ先がありました。
痛IDE拡張でもお世話になったVS拡張機能!

Visual Studioを立ち上げてテンプレートを確認
テンプレートには「VBも、C#も、あるんだよ」。もしかしたらWindows Phone 7関連製品でVBとC#を最初から一度にサポートした最初のものなんじゃ?


新規プロジェクトの作成
それではさっそくVisual Basicに用意された「Windows Phone 7 Cloud Application」テンプレートをつかって新規プロジェクトを作成してみましょう。
もちろんAzureを扱うのですからVisual Studioは「管理者として実行」で立ち上げておくことを忘れないようにしてください。

テンプレートを選んで[OK]ボタンをクリックするといきなりWindows Azure storage accountを入れるように即されますが、左下にある[Use Storage Emulator]チェックボックスをチェックすればAzure Storageではなくローカル開発環境で動いているStorage Emulatorを使ってくれるのでAccountの入力は不要です。また、Azure Storageへのアクセスも起きませんから課金の心配もありません。

そして生成されたのは「Azureプロジェクト(WP7CloudApp1)」、「Windows Phone 7プロジェクト(WP7CloudApp1.Phone)」、「ASP.NET MVCプロジェクト(WP7CloudApp1.Services)」3つのプロジェクトから構成されたソリューションになります。

やはり、Windows Phone 7のAzure側はASP.NET MVCなんですね。
この時期に提供されるテンプレートなのでASP.NET MVC 3かも?!とちょっとだけ期待してみましたがASP.NET MVC 2でした。
もう、MVC 2はいいでしょうという気分になりますよね~。

とりあえず実行
Visual Studioのテンプレートのよいところは生成した直後でもある程度動く状態のものが生成される点です。そこで早速動かしてみましょう。
Windows Azure Storage Emulatorで使用するSQL Server Express Editionのサービスが動いていることを確認したVisual Studioで実行してみます。
Storage Emulatorが起動してロールが起動してといろいろ起動されるのがVisual Studioの左下のバーに表示されてかなりまたされます。
そして遂に起動シーケンスがおわって、ASP.NET MVC 2のアプリが起動します。

あれ?Windows Phone 7 Emulatorが起動してきません。Windows Phone 7のプロジェクトですよね??
理由はソリューションのプロパティをみれば一目瞭然です。
シングルスタートアッププロジェクトになっていてAzureプロジェクトしか起動しないからです。

WP7CloudApp1.ServicesはAzureプロジェクトのWebRoleで動いているASP.NET MVC 2なプロジェクトですからアクションはなしでいいのですが、残りの2つは両方ともスタートアップしてくれないと困ります。
そこで、マルチスタートアッププロジェクトに変更し、Azureプロジェクト→Windows Phone 7プロジェクトの順番でスタートアップするように設定しましょう。

やっと動いてくれました。
