今回はMesh-enabled WebアプリケーションからMeshサービスへのアクセスとNewsリソースについてです。
はじめに
前回はMesh-Enabled Webアプリケーションの実行まで行いました。Mesh-enabled Webアプリケーションとは,Webアプリケーションの特徴を持ち,デスクトップアプリケーションとしての特徴も持ったアプリケーションです。
Mesh-enabled Webアプリケーションは,Webブラウザ内のLive Desktop上で実行できるだけでなく,ローカルPCのデスクトップからもデスクトップアプリケーションのように実行が可能です。デスクトップアプリケーションらしいリッチなインターフェースはSilverlightにより実現しています。
また,アプリケーション自身およびアプリケーションのデータは,ローカルPC等のデバイス上にコピーされ,インターネットに接続していない状態でも実行が可能なこともデスクトップアプリケーションらしい特徴のひとつになっています。インターネットに接続していない時に変更されたデータは,インターネット接続が有効になった時に自動でMesh上のデータと同期されることになります。
さて今回の内容です。前回はMesh-enabled WebアプリケーションからMeshの接続について触れていませんでしたので,今回はその部分とMesh-enabled WebアプリケーションのUIによってより活かすことのできるNewsリソースについてです。
セキュリティ
Meshサービスへアクセスする前にMesh-enabled Webアプリケーションの特徴のひとつ,セキュリティについてふれておきましょう。
Mesh-Enabled Webアプリケーションは,ローカルPC上でも実行が可能ですが,サンドボックス内で実行されアプリケーションは自由にローカルPC上のデータにアクセスすることはできません。またMeshサービス上のフォルダやファイルへのアクセスも制限されています。
基本的にはMesh-Enabled Webアプリケーションは,アプリケーション自身のデータにのみアクセスが可能です。Mesh-Enabled Webアプリケーションをインスタンス化する方法を思い出してみてください。Live Framework Developer SandboxのAppsタブからアプリケーションをインスタンス化しましたが,このときにアプリケーションに対してアクセス許可を設定する必要がありました(図1)。
このとき,図1中の「Change」リンクからアプリケーションに対してアクセスを許可するフォルダなどのMesh Objectを選択することができます(図2)。こうすることでアプリケーションは初めて自身以外のMesh Objectにアクセスが可能になります。
以上を踏まえた上で,Mesh-enabled WebアプリケーションからMeshサービスへアクセスしてみましょう。
Meshへの接続
前回と同様Visual StudioのSilverlight Mesh-enabled Webアプリケーションプロジェクトにより開発します。前回のプロジェクトを変更しても,新しくプロジェクトを作成しても構いません。
本連載第4回から6回まではLive Framework SDKのライブラリのひとつ.NET Kitを使用していましたが,今回はSilverlight Kitを使用します。プロジェクトを作成した時点で既にライブラリへの参照が追加されています。ライブラリを使用すれば,これまでとほぼ同様のクラスと操作により簡単にMeshサービスへアクセスが可能です。
.NET FrameworkからMeshサービスへアクセスしたときとは異なり,Mesh-enabled Webアプリケーションはセキュリティで述べたようにMesh上のデータに自由にアクセスできません。アプリケーションは,Mesh上の同期単位であるMesh Objectのひとつとして存在し,自身のMesh Objectにはアクセス可能です。そのためアプリケーション自身を表すMeshApplicationServiceというクラスが用意されています。このクラスを使用するとプロパティから直接アプリケーションのData Feedなどの参照が可能です。

