【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 

連載
ClickOnceの真実

第4回 ClickOnceテクノロジを最大限に生かす開発

デジタルアドバンテージ 一色 政彦
2006/09/02
Page1 Page2 Page3 Page4

Back Issue
1
ClickOnceの基本動作を見てみよう
2
ClickOnceの仕組みを理解しよう
3
Visual Studio 2005でClickOnceを極めよう

 前回はClickOnceの基本的な開発方法について説明した。今回はClickOnceの基本機能を拡張して、ClickOnceアプリケーション(以降、ClickOnceアプリ)の動作をカスタマイズする方法について解説する(本稿ではすべてC#で記述しているが、もちろん同様のコードはVisual Basicでも記述可能である)。

 具体的には、ClickOnceアプリが必要とするコンポーネントを必要に応じて必要な分だけダウンロードして利用する方法と、ClickOnceアプリのアップデートをそのClickOnceアプリ自体で制御する方法だ。

独自に実装したClickOnce配布/更新のサンプル・アプリケーション

 まずは本稿で開発するサンプル・アプリケーションの実行方法について説明しておく。サンプル・アプリケーション全体は、次のリンクからダウンロードできる。

 このサンプル・アプリケーションを自分の環境で動作させるには、次の手順を実行してほしい。なお前提条件として、IISがローカル・コンピュータにインストールされ、すでに実行中の状態でなければならいので注意すること。これは、本サンプル・アプリケーションをIISに配置し、そこからダウンロードしてClickOnceで実行させるためだ。

 また、Visual C# 2005 Express EditionもしくはVisual Studio 2005の開発環境がローカル・コンピュータにインストールされている必要がある。

  1. ダウンロードした「SampleApplication.zip」を任意の場所(例えば「C:\」など)に解凍する(ClickOnce実行時のダウンロード状況を分かりやすくするために100Mbytesという巨大なサイズのファイルが2つ含まれている。このため、解凍に少し時間がかかるので注意すること)。

  2. 「SampleApplication」という名前のフォルダが解凍されるので、その中にある「SampleApplication.sln」をダブルクリックしてソリューションをVisual C# 2005 Express EditionまたはVisual Studio 2005で開く。

  3. ソリューションが開かれたら、IDEのメニュー・バーから[ビルド]−[ソリューションのリビルド]を選択する。これにより、ソリューション全体がビルドされる。

  4. ビルドが完了したら、メニュー・バーから[ビルド]−[SampleApplication の発行]を選択する。これにより[発行ウィザード]が表示されるので、その[完了]ボタンをクリックする。これで本稿のClickOnceアプリがlocalhost上のIISに発行されるはずだ。

  5. 発行が完了すると、「ClickOnceサンプル・アプリケーション」というインストール用Webページが表示されるので、[インストール]というボタン(リンク)をクリックすればサンプル・アプリケーションがインストールされ、起動する。

 次の画面は、そのサンプル・アプリケーションを実際に起動した例だ。

サンプル・アプリケーションの実行画面
本アプリケーションのフォーム上には、[オンデマンド配置]と[アップデート]というボタンが置かれている。これらのボタンをクリックすると、本稿で実装するClickOnceの機能が動作する。

 [オンデマンド配置]ボタンをクリックすると、オンデマンドで(つまりユーザーから要求されたタイミングで)Webサーバから一部のコンポーネント(.DLLファイル群)をダウンロードして、そのコンポーネントの機能を使用する(具体的には.DLLファイル内に含まれるダイアログを表示する)。

 一方の[アップデート]ボタンをクリックすると、アプリケーション自体の最新バージョンに関する情報をWebサーバ(IIS)にチェックしに行き、そこで新しいバージョンがあればそれをダウンロードして、アプリケーションが自分自身をその場でアップデートする(アップデートを適用するにはアプリケーションの再起動が必要になる)。

 ちなみにサンプル・アプリケーションのソリューション/プロジェクトの内容は、次の画面のとおりだ。

サンプル・アプリケーションのソリューション/プロジェクトの内容
本稿では「SampleApplication」というソリューションを作成し、その中に以下の3つのプロジェクトを追加している。
  「ClickOnce」プロジェクトは、本稿で紹介するClickOnceのカスタマイズ・プログラミングで必要となる汎用的な機能をまとめたクラス・ライブラリ(.DLLファイル)である。読者はこれを自由に改変して使ってよい。
  「SampleApplication」プロジェクトは、サンプル・アプリケーションの本体(.EXEファイル)である。
  「SampleClassLibrary」プロジェクトは、オンデマンド配置で使用するクラス・ライブラリ(.DLLファイル)である。本稿のサンプル・アプリケーションでは、[オンデマンド配置]ボタンがクリックされると、このライブラリをダウンロードして、これに含まれるDownloadedDialogダイアログという機能を使用する。

 それでは、これらのClickOnce機能の実装方法を解説していこう。

必要になってからダウンロードするオンデマンド配置(ダウンロード・グループ機能)

 ClickOnceでアプリケーションを配布する際、アプリケーションを構成するすべてのアセンブリ(.DLLファイル)を一度にダウンロードさせると、初回時のインストールおよび起動に非常に時間がかかってしまう場合がある。

 この問題を回避するには、最初の実行時には必要最小限のファイルしかダウンロードせず、ある機能を実行する必要が発生した段階で、初めてその機能が実装されているアセンブリ(.DLLファイル)をダウンロードするという手段が考えられる(これを本稿では「オンデマンド配置」と呼ぶ)。

 ClickOnceは標準でこのオンデマンド配置に対応している。これは前回「アプリケーション・ファイルとダウンロード・グループ」という項目で解説した機能のことで、要するに「インストールするファイルをあらかじめグループ分けしておき、そのグループ単位でダウンロード、インストールする」という機能だ。

●ダウンロード・グループの作成

 従って、まずはダウンロード・グループを作成しておく必要がある。本稿では、次の画面の手順によって「SampleClassLibraryGroup」というダウンロード・グループを作成した(この画面はVisual C# 2005 Express Editionの例である)。

  [アプリケーション ファイル]ボタンをクリック
Visual Studio 2005のIDEにおけるダウンロード・グループの設定手順
ダウンロード・グループはVisual Studio 2005、Visual C# 2005/Visual Basic 2005 Express EditionなどのIDEで簡単に作成できる。
  ソリューション・エクスプローラで「SampleApplication」プロジェクトの「Properties」項目をダブルクリックしてプロジェクトのプロパティを開く(もしくは「SampleApplication」プロジェクトを右クリックしてコンテキスト・メニューを表示し、そこから[プロパティ]を選択してもよい)。
  プロジェクト・プロパティの[発行]タブを開く。
  [アプリケーション ファイル]ボタンをクリックする。これにより、[アプリケーション ファイル]ダイアログが表示される。
  ここでは「SampleClassLibrary.dll」をオンデマンド配置するファイルに設定する。そこで、このファイルの[ダウンロード グループ]を「SampleClassLibraryGroup」に変更する。これを行うには、コンボボックスから「(新規作成)」を選択し、そこで表示される[新しいグループ]ダイアログで「SampleClassLibraryGroup」と入力して[OK]ボタンをクリックする。次に、再びコンボボックスを開き、いま作成した「SampleClassLibraryGroup」というグループを選択すればよい。
  「bigfile_for_Update」ファイルは、アップデートを実行する際の進ちょく(=何%ダウンロードが完了したか)を目で確認できるようにするために用意したテスト用のファイルである。ファイル・サイズが100Mbytesである。
  同じく、「bigfile_for_OnDemand」ファイルは、オンデマンド配置の進ちょくを見られるようにするために用意したテスト用のファイルで、そのファイル・サイズは100Mbytesである。このファイルは「SampleClassLibrary.dll」と同じダウンロード・グループとしてオンデマンド配置するため、[ダウンロード グループ]を「SampleClassLibraryGroup」に変更しておく。
  ダウンロード・グループの設定が済んだら、[OK]ボタンをクリックする。これでIDE側の設定は完了だ。

 ダウンロード・グループが作成できたら、次はそれをオンデマンドでダウンロードするコードを記述すればよい。


 INDEX
  ClickOnceの真実
  第4回 ClickOnceテクノロジを最大限に生かす開発
  1.オンデマンド配置のためのダウンロード・グループの作成
    2.オンデマンド配置するコードと進ちょくダイアログの表示
    3.ダウンロードしたアセンブリのロードとそこに含まれる機能の実行
    4.任意のタイミングで実行するアップデート(手動による更新処理)
 
インデックス・ページヘ  「ClickOnceの真実」

ホワイトペーパーTechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

.NET開発者中心に生まれ変わりました

.NET開発者中心コーナー

- PR -

- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?