Windows Azure モバイル サービスを使って、クラウド サービスをアプリに追加する

優れた Windows ストア アプリの条件は "接続" されていることです。ライブ タイルの利用、シングル サインオンによるユーザー認証、デバイスやユーザーをまたがるデータなど、接続によって得られるこうしたこれらすべてのメリットを活用するには、クラウドのサービスをアプリで使用する必要があります。

クラウド サービスの構築は簡単ではありません。ほとんどのクラウド プラットフォームはデータの保管やコードの実行といった汎用的な機能を提供しますが、こうした機能の連携にはさらに大量のコードを記述しなければなりません。もちろん皆さんがその意欲もお持ちであることは私たちも知っていますが、第一に取り組むべきことがバックエンドのコードではないことも知っています。集中したいのは、世界を驚かせるようなアプリのアイデアを具現化することであるはずです。

このジレンマを解決する新しいサービスが、私たちが今週発表した Windows Azure モバイル サービス (英語) です。今回の記事では、皆さんが必要とするクラウドのサービスを Windows Azure モバイル サービスを使ってアプリに追加する方法を説明します。

Windows Azure モバイル サービスを使うには、Windows Azure の無料評価版へのサインアップが必要となります。これで 10 種類のモバイル サービスを無料でお使いいただけるようになります。サービスの 1 つを使ってシンプルな To Do リスト アプリを開発してみましょう。

新しいモバイル サービスを作成する

  1. サインアップが完了したら、https://manage.windowsazure.com (英語) にアクセスして Microsoft アカウントでログインします。ナビゲーション ウィンドウ下部の [+NEW] ボタンをクリックして、新しいモバイル サービスを作成します。

    new_button

  2. [Mobile Service] を選択して [Create] をクリックします。以下のような画面が表示されます。

    mobile_service

    図 1. 管理ポータルでサービスを作成する

  3. New Mobile Service ウィザードでアプリの名前を入力します。この名前が新しいサービスの URL の一部となります。

    mobile_service_wizard

    図 2 Create Mobile Service ウィザードの最初の画面

  4. Windows Azure モバイル サービスを作成すると、Windows Azure 内の SQL データベースとこのサービスが自動的に関連付けられます。Windows Azure モバイル サービスのバックエンドに組み込まれているサービスによって、このデータベースを使ってリモートのアプリがデータを安全に保管および取得できるようになります。独自のサーバー コードの記述や展開は必要ありません。次に新しいデータベースの名前を入力して、新しい SQL Server のログイン名とパスワードを入力します。このデータベース サーバーを別のモバイル サービスで再利用する場合のために、この資格情報は覚えておいてください。90 日間の無料評価版にサインアップしている場合は、1 GB のデータベースを無料でお使いいただけます。

    mobile_service_wizard2

図 3 Create Mobile Service ウィザードの 2 つ目の画面

チェックマークのボタンをクリックするとプロセス完了です。データの保管、プッシュ通知の送信、ユーザー認証に使うことができるバックエンドのモバイル サービスが、わずか数分で設定されました。ではこれをアプリから使ってみましょう。

新しい Windows ストア アプリを作成する

  1. 新しく作成したモバイル サービスの名前をクリックします。

    store_apps

    図 4. 新しく作成したモバイル サービス

    新しいアプリを作成する、または既存のアプリを新しいモバイル サービスに接続するという 2 つのオプションがあります。最初のオプションを選択して、SQl データベースに To Do 項目を保存するシンプルな To Do リスト アプリを作成しましょう。画面上の指示に従って進みます。

    todo

    図 5. モバイル サービス アプリを作成する

  2. Visual Studio 2012 とモバイル サービス SDK をインストールします (まだお済みでない場合)。

  3. To Do 項目を保存するためのテーブルを作成する必要があります。テーブルのスキーマの事前定義は必要ありません。モバイル サービスは、データを保管するための列を自動で追加します。

  4. 次に、使用する言語を C# または JavaScript から選択して、[Download] をクリックします。クリックすると、新しいモバイル サービスへの接続が事前構成された個人用プロジェクトがダウンロードされます。この圧縮プロジェクト ファイルをローカル コンピューターにダウンロードします。

  5. 圧縮プロジェクト ファイルのダウンロード先を参照して、コンピューター上でファイルを解凍し、Visual Studio 2012 Express for Windows 8 でソリューションを開きます。

  6. F5 キーを押してアプリを起動します。
    アプリの左側にあるテキスト ボックスに To Do 項目を入力して [Save] をクリックします。これによって、Windows Azure にホストされている新しいモバイル サービスに HTTP 要求が送信され、TodoItem テーブルにデータが安全に保存されます。モバイル サービスから確認が送信され、右側のリストにデータが表示されます。

todolist

図 6. アプリ全体

データを保存するアプリ内部のコードを見てみます。To Do リスト アプリを停止して App.xaml.cs をダブルクリックし、以下の行を確認します。

 public static MobileServiceClient MobileService = new MobileServiceClient(
 "https://todolist.azure-mobile.net/",
 "xPwJLJqYTMsAiBsHBHDhDEamZdtUGw75"
);

アプリをモバイル サービスに接続するためのコードはこれだけです。既存のアプリをモバイル サービスに接続する場合は、クイック スタートの [Connect an existing Windows 8 application] オプションからこのコードをコピーできます。次は MainPage.xaml.cs を開いて以下のコードを見てみましょう。データをモバイル サービスに挿入するためのコードです。

 private IMobileServiceTable<TodoItem> todoTable = App.MobileService.GetTable<TodoItem>();
private async void InsertTodoItem(TodoItem todoItem)
{    
    await todoTable.InsertAsync(todoItem);    
    items.Add(todoItem);  
}

これだけでクラウド バックエンドにデータが保存されます。同等の JavaScript コードを以下に示します。

 var client = new Microsoft.WindowsAzure.MobileServices.MobileServiceClient(
    "https://todolist.azure-mobile.net/",
    "xPwJLJqYTMsAiBsHBHDhDEamZdtUGw75"
);
var todoTable = client.getTable('TodoItem');

var insertTodoItem = function (todoItem) {
    todoTable.insert(todoItem).done(function (item) {
        todoItems.push(item);
    });
};

モバイル サービスを管理、監視する

Windows Azure 管理ポータルに戻り、[Dashboard] タブをクリックして、新しいモバイル サービスのリアルタイムの監視状況と使用率情報を確認します。

todolist2

図 7. モバイル サービスのダッシュボード

[Data] タブをクリックして TodoItems テーブルをクリックします。

data_tab

図 8. [Data] タブ

ここで、アプリがテーブルに挿入したデータを参照できます。

browse

図 9. データを参照する

 

まとめ

今回の簡単な概要を通して、複雑なバックエンド プロジェクトの作成、管理、展開に伴う負担をかけることなく、Windows Azure の強力な機能をアプリに追加できることがおわかりいただけたと思います。もちろん、今回はモバイル サービスで実現できることをほんの少し紹介しただけです。以下の説明を参考に、その他の機能もぜひご活用ください。

Windows Azure モバイル サービスの詳細については、https://www.windowsazure.com/mobile (英語) を参照してください。

--Windows Azure 担当リード プログラム マネージャー Kirill Gavrylyuk