特集
マルチデバイス対応アプリの可能性(後編)

Live Meshアプリケーションを開発しよう

デジタルアドバンテージ 一色 政彦
2009/03/03
Page1 Page2 Page3 Page4

 前編では、Live Meshアプリケーション(Mesh-enabled Application。以降、Meshアプリ)がどのようなもので、どうやって利用するのかについて、利用者の視点に立って説明した。後編(本稿)では、Meshアプリをどうやって開発するのかについて、今度は開発者の視点から解説する。

 本稿では「アプリケーション」は「アプリ」と短く記述する。

Meshアプリの開発方法

 以下ではMeshアプリの開発環境が整っているという前提で説明していく。Meshアプリの開発環境の構築については、本稿の最終ページで説明する。なお、Meshアプリを実行するには、Azureポータル(正式には「Azure Services Developer Portal」)へアクセスする必要があるが、その登録方法もそのページで説明している(Azureポータルについて詳しくは「特集:Windows Azureクラウド・サービスの配置/運用」を参照してほしい)。

Meshアプリの種類

 Meshアプリを開発するためのフレームワークが「Live Framework」であることは前編で説明したが、そのLive Frameworkには次の3種類のライブラリが用意されている。

(1)JavaScriptライブラリ:主に「Live Mesh利用Webアプリ」(以降、HTML/JavaScript Meshアプリ)で使う。

(2)Silverlightライブラリ:主に「Live Mesh利用Silverlightアプリ」(以降、Silverlight Meshアプリ)で使う。

(3).NETライブラリ:主に「各種.NETクライアント・アプリ」(Meshサービス外部のASP.NET WebサイトやWindows/WPFアプリなど)で使う。

 「(3).NETライブラリ」を利用する場合、インストール済みのLive Framework SDK(インストール方法は最終ページ)で提供される.NETアセンブリ(Microsoft.LiveFX.Client.dllファイルなど)を、Visual Studio 2008(以降、VS 2008)で(WebサイトやWindows/WPFのプロジェクトを開いて)[ソリューション エクスプローラ]の[参照設定]に手動で設定する必要がある。

 そのほかの「(1)JavaScript」と「(2)Silverlight」のライブラリには、VS 2008用のプロジェクト・テンプレートが提供されている(事前に「Live Framework Tools for Microsoft Visual Studio」をインストールしておく必要がある。インストール方法は最終ページ)。具体的には次の2つのテンプレートだ。

  • Mesh-enabled Web Application:「HTML/JavaScript Meshアプリ」を作るためのプロジェクト・テンプレート。

  • Silverlight Mesh-enabled Web Application:「Silverlight Meshアプリ」を作るためのプロジェクト・テンプレート。

 今回はこのうち、「Silverlight Mesh-enabled Web Application」プロジェクト・テンプレートを使って、「Hello from MeshApp1Silverlight」と表示する初歩的なSilverlight Meshアプリ(MeshApp1)を作成してみよう。

Visual Studio 2008でプロジェクトを作成する

 まず、VS 2008のIDEのメニュー・バーから[ファイル]−[新規作成]−[プロジェクト]を選択する。これにより、次の画面の[新しいプロジェクト]ダイアログが表示される

Live Frameworkプロジェクト・テンプレート([新しいプロジェクト]ダイアログ)

 ここで、左側の[プロジェクトの種類]のツリー表示から[Visual C#]/[Visual Basic]−[Live Framework]を選択し、右側の[テンプレート]リストから[Silverlight Mesh-enabled Web Application]テンプレートを選択する。[プロジェクト名]に任意の名前(本稿の例では「MeshApp1」)を入力して[OK]ボタンをクリックする。

 これにより、次のようなSilverlight Meshアプリのひな型が生成される。

Silverlight Meshアプリのプロジェクトのひな型ソース・ファイル群

 ソリューション内のプロジェクトは、次の2つが作成されている。

  • MeshApp1:Meshアプリのプロジェクト(.meshprojファイル。以降、Meshアプリ・プロジェクト)

  • MeshApp1Silverlight:Silverlightアプリのプロジェクト(.csproj/.vbprojファイル。以降、Silverlightプロジェクト)

 このうちSilverlightプロジェクトを[ソリューション エクスプローラ]で見ると、以下のアセンブリ群がすでに参照設定されているのが分かる。

  • Microsoft.LiveFX.Client
  • Microsoft.LiveFX.ResourceModel
  • Microsoft.Web

 これらはLive Framework SDKに含まれる「(2)Silverlightライブラリ」である。

【コラム】HTML/JavaScript Meshアプリのプロジェクトのひな型ソース・ファイル群

 もう一方の「Mesh-enabled Web Application」テンプレートでプロジェクトを作成すると、次のようなひな型ソース・ファイル群が生成される。

HTML/JavaScript Meshアプリ・プロジェクトのひな型ソース・ファイル群

 「js」フォルダの「Microsoft.LiveFramework.js」ファイルが、Live Framework SDKに含まれる「(1)JavaScriptライブラリ」である。

Silverlight Meshアプリ・プロジェクトの内容

 まず、[ソリューション エクスプローラ]でSilverlightプロジェクトの中身を見ると、XAMLファイルを含む一般的なSilverlightアプリであることが分かる。Silverlight Meshアプリの開発では、現実的には、このSilverlightアプリを開発することになる。

 次に、Meshアプリ・プロジェクトの中身を見ると、「index.html」ファイルなどがあり、実体はWebアプリであることが分かる。[References](参照設定)にはSilverlightプロジェクト(MeshApp1Silverlight)への参照が設定されており、「index.html」ファイルの内容は、単にそのSilverlightアプリを表示しているだけである(このことから、Silverlight Meshアプリは厳密にいうと、「Silverlight 2アプリを埋め込んだWebアプリ」である)。

 そのほかには、プロジェクトには以下のようなファイルがある。

  • Logo.png:Meshアプリのアイコン画像。
  • Manifest.xml:Meshアプリの各種情報の定義ファイル。
  • Silverlight.js:Silverlightアプリを表示するためのJavaScriptコード。

 「Manifest.xml」ファイル(ひな型)の内容は、次のようになっている。

Manifest.xmlファイル(ひな型)の内容(XML形式ファイル)

 <Manifest>要素内の子要素で各種情報が定義されているのが分かる。子要素の意味は以下のとおり(オプションと書かれていない項目は、必須設定項目)。

  • <Name>要素:Meshアプリの名前。

  • <Description>要素:オプション。Meshアプリの説明。

  • <PublisherName>要素:Meshアプリの発行者の名前。

  • <DisplayVersion>要素:表示するバージョン番号。

  • <MultiInstance>要素:マルチインスタンス(=複数のインスタンス)を作成可能にするか(true)、しないか(false)。マルチインスタンスにすると、データのセットをそれぞれで持てる。

  • <PrivacyPolicyLink>要素:プライバシー・ポリシーのページへのリンク先URL。

  • <SupportLink>要素:サポートのページへのリンク先URL。

  • <VendorLink>要素:ベンダー(作成者)情報のページへのリンク先URL。

  • <RequireDelegation>要素:オプション。委譲認証(Delegated Authentication:外部のWebサイトやアプリが、Meshアプリへアクセスする許可を要求できるようにする機能)を使用するか(true)、しないか(false)。デフォルト値は「false」。詳しくは「MSDN:Delegated Authentication for a New Mesh-Enabled Web Application」を参照されたい。

 これらの情報はLive Mesh上で用いられる。特に利用者がインストール時に目にする<Name>要素/<Description>要素/<PublisherName>要素/<DisplayVersion>要素の情報は必ず適切に設定しておきたい。

 さて、実はMeshアプリは(残念ながら現時点では)ローカル環境でデバッグ/実行できない。デバッグは開発者向けLive Mesh(CTP版):developer.mesh-ctp.comのLive Desktop上で行う。これを行うには、Azureポータル上にMeshアプリのプロジェクト(前述したVS 2008上の「Meshアプリ・プロジェクト」と区別するため、以降では「Azure Meshプロジェクト」と表記)を作成しておく必要がある。


 INDEX
  [特集] マルチデバイス対応アプリの可能性(前編)
  Live Meshアプリケーションとは何か?
    1.Live Services/Live Mesh/Meshアプリとは?
    2.Meshアプリの利用方法
 
  [特集] マルチデバイス対応アプリの可能性(後編)
  Live Meshアプリケーションを開発しよう
  1.Meshアプリの開発方法
    2.Azureポータル上でのMeshプロジェクトの作成
    3.Meshアプリのデバッグ/実行
    4.Meshアプリ開発環境の構築
Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ

.NET未来展望台

未来展望台コーナースポンサーからのお知らせ


- PR -
- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

SEOは総合格闘技である――「SEOおたく」が語る普遍のマインド
SEOの最新情報を発信する「SEOおたく」の中の人として知られる著者が、SEO担当者が持つべ...

HubSpot CMSにWebサイトの「定石」を実装 WACUL×100のパッケージ第1弾を提供開始
WACULと100は共同で、Webサイトの「定石」をHubSpotで実装する「Webサイト構築パッケージ...

電通調査で「料理は面倒」が6割超 なぜそうなった?
電通の国内電通グループ横断プロジェクト「電通 食生活ラボ」は、「食生活に関する生活者...