連載
ClickOnceの真実

第1回 ClickOnceの基本動作を見てみよう

デジタルアドバンテージ 一色 政彦
2006/01/18
Page1 Page2 Column

アプリケーションのアップデート機能

 ClickOnceを使わずに.MSIファイルでアプリケーションをユーザーに配布した場合、その後のバージョン・アップ作業や、ちょっとしたバグ修正によるソフトウェア更新作業が大変なものとなることは想像に難くない。

 なるほど(前掲のコラムにも書いたように)これが10人程度なら各ユーザーに一声かけて更新作業をお願いすれば済むのかもしれないが、それが100人、1000人、1万人になったらどうだろう? ユーザー数が増えれば増えるほど、クライアント・ソフトウェアの更新作業を管理することは非常に大変になるはずだ。そうなれば、何らかの展開テクノロジを用いてソフトウェアの更新を集中管理しないと、システム管理者はソフトウェアの更新作業以外の仕事に手が回らなくなってしまう。

 確かにソフトフェアの更新管理を簡素化するソリューションはすでにいくつか存在するが(例えばSystem Management Serverを使ったアプリケーション展開など)、ClickOnceならば.NET Framework 2.0が標準で提供する機能なので手軽に導入できるし、アプリケーション自らがバージョン・アップを検知してユーザーにソフトウェアのアップデートを提案してくれるので、システム管理者の作業は非常に少なくなり、かなり楽になる。

 そこで次に、ClickOnceなら実際にどのようになるのかを示そう。まずは次の画面で行っているようにアプリケーションを変更し、Webサーバ側に配置するClickOnceアプリのバージョン・アップを行ったとしよう。

ClickOnceアプリのバージョン・アップ
Windowsフォームの背景色をオレンジ色に変更し、WebサーバにそのClickOnceアプリを配置する。この際の配置方法については次回以降で説明する。

 Webサーバにはバージョン・アップしたClickOnceアプリが配置されたものとし、前述した[スタート]メニューに登録されたClickOnceアプリへのショートカット・メニュー項目をクリックして、インストール済みのアプリケーションを起動してみよう。

 これにより(通常は)アプリケーションが起動される前に、次の画面のような[アプリケーションの起動中]ダイアログが表示される。

ClickOnceアプリ起動時のソフトウェアの更新チェック
ユーザー・ローカル環境の[スタート]メニューに登録されたClickOnceアプリへのショートカット・メニュー項目をクリックすると、このような[アプリケーションの起動中]ダイアログが表示される。このダイアログは起動時に常に表示されるわけではなく、ClickOnceアプリの配置オプションの設定によっては表示されない。詳しくは次回以降で解説する。

 このダイアログが表示されている間に、Webサーバにアクセスしてアプリケーションの更新がチェックされる。そこでバージョンが更新(主にバージョン・アップ)されていれば、ユーザーにアプリケーション更新の許可を求める次のようなダイアログが表示される。

[利用可能な更新があります]ダイアログ
このダイアログで、ユーザー・ローカル環境にインストール済みのアプリケーションを更新してもよいかどうかの許可が求められる。[OK]ボタンをクリックすれば更新されたアプリケーションが起動し、[スキップ]ボタンをクリックすればアプリケーションは更新されずに、インストール済みのバージョンが起動する。なおClickOnceアプリの更新は主にバージョン・アップに使われるが、何らかの不具合により一時的にバージョン・ダウン(=バージョンを戻すこと)するような場合にも利用することができる。

 ここで[OK]ボタンをワン・クリックするだけでアプリケーション全体がアップデートされる。

 ちなみにここでは[スタート]メニューから起動する例を示したが、ClickOnceアプリ・インストール用Webページの[インストール]ボタンをクリックしてアプリケーションを起動した場合には、この[利用可能な更新があります]ダイアログは省略されてアプリケーションが即座に自動アップデートされる。

 次の画面は[利用可能な更新があります]ダイアログで[OK]ボタンをクリックしてアプリケーションがアップデートされているところと、アップデートされたアプリケーションが起動したところである。

アプリケーションのアップデートと起動
上の[<アプリケーション名> をインストールしています。]ダイアログ(この例では[SampleApplication をインストールしています。]ダイアログ)は、アプリケーションのアップデート状況を示すためのものだ。アップデート作業が完了すると、下の画面のように更新されたアプリケーションが起動する。

 以上のようにClickOnceを活用すれば、非常に容易にアプリケーションのインストール(デプロイメント)とアップデートが実現できることがご理解いただけただろう。

 それでは、もしこのようにClickOnceのアップデート機能によりインストールした新しいバージョンのアプリケーションに何らかの不具合があり、それが原因で業務・作業が先に進めなくなってしまった場合はどうなるだろうか? ユーザーは不具合が修正された次のバージョンがWebサーバ上に準備されるのをじっと待つ以外にはどうしようもないのだろうか? これではアプリケーションの安定性・確実性や安全性が十分に確認されるまで、ユーザーは怖くて[利用可能な更新があります]ダイアログの[OK]ボタンが押せないということも起こるだろう。

 だがClickOnceではこのような想定し得ない緊急の事態に備えて、アプリケーションのロールバック機能(=昔のバージョンに戻すこと)が標準で搭載されているので、いつでも安心してアプリケーションのアップデートを行うことができるのだ。次にこのロールバック機能について紹介しよう。

アプリケーションのロールバック機能

 ClickOnceが提供するアプリケーションのロールバック機能も、使い方は至って簡単だ。具体的には、コントロール パネルを開き、そこから(Windows XPの場合なら)[プログラムの追加と削除]を実行する。表示された[プログラムの追加と削除]ダイアログで[プログラムの変更と削除]の一覧の中から、ロールバックしたいClickOnceアプリの[変更と削除]ボタンをクリックすればよい。

[プログラムの追加と削除]ダイアログでのClickOnceアプリのロールバック作業
左のボタン・リストから[プログラムの変更と削除]ボタンをクリックして選択し、右の[現在インストールされているプログラム]一覧から、ロールバックしたいClickOnceアプリを見つけ出し、その[変更と削除]ボタンをクリックする。

 これにより、次の画面のようなロールバックもしくは削除(=アンインストール)を指定するためのダイアログが表示される。ここで[アプリケーションを以前の状態に復元します。]を選択して[OK]ボタンをクリックする。

既存のClickOnceアプリの保守(ロールバック)
[プログラムの追加と削除]ダイアログで、ロールバックしたいClickOnceアプリの[変更と削除]ボタンをクリックすると、上の画面のような[<アプリケーション名> の保守]ダイアログ(本稿の例では[SampleApplication の保守]ダイアログ)が表示される。ここで[アプリケーションを以前の状態に復元します。]を選択して[OK]ボタンをクリックすると実際にアプリケーションのロールバックが開始される。ロールバック作業が完了すると、下の画面のような[アプリケーションは復元されました]というメッセージが通知される。なお[<アプリケーション名> の保守]ダイアログで[このコンピュータからアプリケーションを削除します。]にチェックを入れて[OK]ボタンをクリックした場合は、ユーザーのローカル環境からClickOnceアプリがアンインストールされることになる。

 以上でClickOnceアプリのロールバックは完了だ。再度[スタート]メニューよりアプリケーションを起動してみると、確かにアプリケーションが前のバージョンに戻っていることが確認できるはずだ。

以前のバージョンにロールバックされたClickOnceアプリケーション
本稿の例では、アプリケーションがWindowsフォームの背景色をオレンジ色に変更する前のものに戻った。

 このようにClickOnceならば、各ユーザーが手動で昔のバージョンに戻して一時的に使用するようなこともできるので、運用の幅・自由度が広くなる。

 以上がClickOnceアプリの典型的な利用例だ。

 今回はClickOnceの基本動作をユーザーの視点でお伝えしたが、その基本的な特徴や便利さはご理解いただけただろうか。さて次回は、システム管理者やプログラマの視点で、ClickOnceの仕組みや配置方法、使い方・実装方法などを解説する予定だ。お楽しみに。End of Article


 INDEX
  ClickOnceの真実
  第1回 ClickOnceの基本動作を見てみよう
    1.ClickOnceの概要とデプロイメント機能
  2.アップデート機能とロールバック機能
     【コラム】ClickOnceが生まれた理由
 
インデックス・ページヘ  「ClickOnceの真実」

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • Kinectが切り開く“夢の近未来” (2012/2/2)
     日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか?
  • 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
     アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する
  • SQL Azure Data Sync入門 (2012/1/30)
     SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説
  • Windows Phoneアプリ市場の現状を分析する (2012/1/27)
     Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする

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

RSSフィード

キャリアアップ

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

.NET開発者中心コーナー

- PR -

@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

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

@IT Sepcial
ソリューションFLASH