Windows Phone 7.5 の データ アクセスとクラウド連携 日本マイクロソフト株式会社 デベロッパー & プラットフォーム統括本部 デベロッパー エバンジェリスト 大西 彰 D1-302
セッションの目的とゴール Session Objectives and Takeaways Windows Phone のデータアクセスや通信機能を知る Windows Phone からクラウドを利用する方法を知る セッションのゴール Windows Phone に搭載されているデータ通信系の 概要について説明できるようになる Windows Phone から既存の RSS/ATOM フィードを 参照するアプリケーションを実装できるようになる Windows Phone から既存の Web サービスに接続す るアプリケーションを実装できるようになる
アジェンダ 1 Windows Phone 7.5 データと通信の概要 2 既存フィードを読み込む アプリケーションの作成 3 既存 サービスを呼び出す 4 プッシュとマルチ タイルを使った アプリケーション 5 Windows Phone から Windows Azure へアクセス
Windows Phone アプリケーション開発に必要なもの Windows 7 搭載の PC (マルチコア、GPU) PC 用 通信デバイス USB ケーブル IS12T など Windows Phone デバイス クレジット カード
Windows Phone アプリケーション開発 Visual Studio Express for Windows Phone Windows Azure Expression Blend for Windows Phone Windows Phone Emulator
デバイスとクラウドとの連係 ダウンロード要求 フィード参照 サービス呼出 ストリーミング 情報プッシュ
デモ: デバイスとクラウド連係
・場所に応じた情報を知る ・位置情報と一緒に何かを記録する プル センサー情報 リソース 入力した情報 プッシュ サービス ローカル データベース 分離 ストレージ クラウド データ
1. Windows Phone 7.5 データと通信の概要
データ系の機能 XAP パッケージ内のローカル ファイル 分離ストレージ ローカル データベース リソース コンテンツ 分離ストレージ ローカル データベース Windows Phone のユーザー データ カレンダー 連絡先 (アドレス帳) XML データのアクセス OData の処理 LINQ Objects XML SQL User Data OData
XAP パッケージ内のファイル リソース コンテンツ アセンブリに組み込まれるファイル Application.GetResourceStream () メソッドで アクセス コンテンツ XAP ファイル内に含まれているファイル Uri クラスを使って相対パスで参照
分離ストレージ アプリケーション固有のストレージ 他のアプリケーションからアクセスされない 2 種類のデータ格納方法 キーと値のペア (IsolatedStorageSettings) ファイル (IsolatedStorageFile)
ローカル データベース 分離ストレージに格納 LINQ to SQL を利用した操作 注意点 データベーススキーマの定義 データの選択、追加、更新、削除 変更の保存 注意点 アプリケーション プロセス内で実行 他のアプリケーションからアクセスされない Transact-SQL はサポートされない
連絡先データのアクセス 連絡先の検索と読み取り 連絡先の保存 (ユーザーとの対話を伴う) すべての連絡先 スタート画面に表示している連絡先 名前で検索 電子メール アドレスで検索 電話番号で検索 連絡先の保存 (ユーザーとの対話を伴う) SaveContactTask SaveEmailTask SavePhoneNumberTask
カレンダー データのアクセス 読み取りのみ アクセス可能なデータ Windows Phone デバイスに登録された予定 Windows Live カレンダー Exchange Server 上の予定
通信系の機能 (1) ネットワークの状況確認 HTTP によるデータ通信 SOAP サービスへのアクセス OData を利用したサービスへのアクセス ソケット通信 バックグラウンドでのファイル転送
通信系の機能 (2) WebBrowser コントロール メディアのストリーミング プッシュ通知 WCF を利用したサービスへのアクセス クラウド サービスからデバイスへのデータ送信 WCF を利用したサービスへのアクセス ユーザー提供の プッシュ通知 サービス Microsoft Push Notification Service
2. 既存フィードを読み込む アプリケーションの作成
インターネット上の新着情報を活用 例: The Microsoft Conference 2011 アプリケーション Timeline API Search API https://dev.twitter.com/docs
フィードの読み込み WebClient クラスで ATOM/RSS フィードの ダウンロード SyndicationFeed クラスで、フィード解析 ページ オブジェクトの DataContext に SyndicationFeed オブジェクトを指定 // e.Result は WebClient の通信結果 StringReader strR = new StringReader(e.Result); XmlReader xmlR = XmlReader.Create(strR); SyndicationFeed sf = SyndicationFeed.Load(xmlR); this.DataContext = sf;
Expression Blend クラスからのサンプル データの作成 フィードの内容
サンプル データと UI 1. ItemTemplate に コントロールを追加 2. ドラッグ & ドロップ サンプル データの指定
3. 既存のサービスを呼び出すアプリケーションの作成
サービス参照を活用 Windows Phone プロ ジェクトから 既存のサービスを参照 参照したサービスへ接続す るためのクラスを 自動生成 (プロキシ クラス) プロキシ クラスを使って、 サービスへ接続
4. プッシュによる新しい UX
通知の種類 トースト タイル Raw データ
プッシュ通知とデータ フロー 2 3 4 1 プッシュ通知を 送り出す サービス サービスへ URI を転送: プッシュ対応 "http://notify.live.com/throttledthirdparty/01.00/AAFRQHgiiMWNTYrRDXAHQtz-AgrNpzcDAwAAAAQOMDAwMDAwMDAwMDAwMDA" プッシュ対応 アプリケーション 3 通知サービス HTTP POST を 利用した メッセージ送信 4 プッシュ通知の 送信 1 Push 用のエンドポイント作成 Microsoft hosted server
タイルを使った情報通知 アイコンとは異なるタイル 前面 1 つのアプリケーションに複数のタイル タイルの更新方法 背面 前面と背面を利用 前面には 1 から 99 までの数値を表示 タイトル、コンテンツ、画像の組み合わせ 1 つのアプリケーションに複数のタイル アプリケーション内のディープ リンク (特定ページに対するリンク) を付けて タイルを生成 タイルの更新方法 ローカルでのスケジュール プッシュ通知による変更 前面 背面
プッシュ通知の FAQ 1 デバイスあたりの通知チャネル数 デバイス再起動後の振る舞い 通知用 URL の有効期間 無線 LAN での運用 最大 30 チャネル (残りチャネル数の取得はできない) デバイス再起動後の振る舞い 再起動後、自動的にプッシュ通知を受信 プッシュ対応アプリケーションの起動は必須ではない 通知用 URL の有効期間 30 日間、通信が行われないと破棄 URL はすぐに取得できるため、問題にならない 無線 LAN での運用 条件により動作するが、推奨されない 3G での運用が望ましい
5. Windows Phone から Windows Azure へ アクセス
クラウドへの配置も簡単 Windows Azure SDK を利用 クラウド用プロジェクトを作成 サービス アプリケーションを Web Role へ ビルドしたパッケージを Windows Azure へ配置 Windows Phone からアクセス
第 1 段階: Windows Phone エミュレーターと ASP.NET 開発サーバー 通信
第 2 段階: Windows Phone デバイスと ASP.NET 開発サーバー 通信
第 3 段階: Windows Phone エミュレーターと Windows Azure Compute Emulator 通信
第 4 段階: Windows Phone デバイスと Windows Azure Compute Emulator 通信
第 5 段階: Windows Phone デバイスと Windows Azure クラウド (完成系) 通信
セッションのまとめ Session wrap up セッションの目的 Windows Phone のデータアクセスや通信機能を知る Windows Phone からクラウドを利用する方法を知る このセッションで持ち帰っていただきたいモノ WebClient と SyndicationFeed によるフィード処理 サービス参照による既存 Web サービスへの接続 プッシュ通知を利用した情報伝達 Windows Azure を利用したサービス展開 デモで利用したプログラムは後日、ブログで公開します http://blogs.msdn.com/b/aonishi
関連セッション D1-401: センサーやカメラを使った Windows Phone のための アプリケーション開発 D3-303: Windows Phone/iOS/Android から Windows Azure を利用する D1-301: Windows Phone 7.5 のアプリケーション開発概要 T1-203: Windows Phone 7.5 の全貌と利用シナリオご紹介 T1-204: ビジネスを加速する Windows Phone & クラウド T1-205: Windows Phone を企業で活用するためのインフラ設計
リファレンス Windows Phone デベロッパー センター Local Data Storage for Windows Phone http://msdn.microsoft.com/ja-jp/windowsphone/default.aspx Local Data Storage for Windows Phone http://msdn.microsoft.com/en-us/library/ff626522(v=VS.92).aspx Networking and Web Services for Windows Phone http://msdn.microsoft.com/en-us/library/gg521151(v=VS.92).aspx Push Notifications for Windows Phone http://msdn.microsoft.com/en-us/library/ff402537(v=VS.92).aspx Tiles for Windows Phone http://msdn.microsoft.com/en-us/library/hh202960(v=VS.92).aspx Web Development for Windows Phone http://msdn.microsoft.com/en-us/library/ff462082(v=VS.92).aspx
ご清聴ありがとうございました アンケート にご協力 ください D1-302