Windows Azureストレージはクラウドならではのスケーラビリティや耐久性を有するストレージで主にBLOB、キュー、テーブルの3つのサービスで構成されています。これらのストレージにはWindows Azureアプリケーション開発で用いられる開発ツールであるWindows Azure SDKやREST、RESTアクセス処理を使いやすくしたスマートフォン向け開発ツールであるWindows Azure Toolkit for Android/iOS/ Windows Phoneの主に3つの方法でアクセスすることができます。
Windows PhoneではネイティブアプリケーションをSilverlight(Silverlight for Windows Phone)とXNAによって開発します。Silverlightはこれまではデスクトップブラウザ向けのRIA開発で用いられてきた開発技術で、Windows Phoneの滑らかな画面遷移や、美麗な動画再生などを実現しています。Silverlightベースのアプリケーション開発では、画面構成を記述するタグベースのマークアップ言語であるXAMLとロジックを記述するC#またはVisual Basicを用いてアプリケーションを開発します。
Windows Phoneの代名詞ともいえるPanoramaレイアウトの例が下記になります。複数の画面が横1列に並んでおり、フリックによって非常に滑らかに画面遷移を行うことができます。Windows Phoneでは、XAMLを用いることにより、Panoramaアプリケーションも簡単に構築できます。
Windows Phone SDKとは
Windows Phone開発に利用する開発ツールはすべて「Windows Phone SDK」にまとめられています。本記事執筆時点の最新バージョンはWindows Phone SDK 7.1で主に以下のツールで構成されています。
Visual Studio 2010 Express for Windows Phone
Expression Blend 4 Express for Windows Phone
Windows Phone Emulator
Windows Phone SDK 7.1 Assemblies
Silverlight 4 SDK
最初の2つのツールがWindows Phoneアプリケーション開発の中心となるツールです。Visual Studio 2010 ExpressはC#やVisual Basicを用いたロジック開発に用いられ、Expresson Blend 4 ExpressはXAMLを用いた画面の開発に用いられます。Windows Phone向けアプリケーション開発を行う場合は、上記アプリケーションを無料で利用できます。もちろん有償版のVisual Studio 2010、Expression Blend 4がある場合は、Windows Phone SDKインストール時に既存開発環境がWindows Phone対応に自動アップグレードされます。
Modelはデータエンティティです。Windows Azureを中心としたクラウドサービスにアクセスしたり、ローカルデータベース(SQL Server CE)やスマートフォンデバイス情報にアクセスしたりして、そのデータを取得・保持します。シンプルなアプリケーションの場合はこのModelの処理はコードビハインド内に記述されることもありますし、複雑なアプリケーションの場合はこのModelが複雑なクラス構成にある場合もあります。
Windows PhoneからWebロールにリクエストが投げられ、主にWebロール内でビジネスロジックが実行されます。バッチ処理や重たい処理はワーカーロールで処理を行います。図4のようにWebロールとワーカーロール間の命令系統はキューを、データのやりとりはBLOBやテーブルを介することにより、Webロールとワーカーロールが疎結合で実現されます。