![]() |
連載
|
|
|
来る2006年2月3日からVisual Studio 2005(以降、VS 2005)正式パッケージ版がついに店頭に並ぶ(MSDNサブスクリプション会員向けには、すでに2005年12月15日からMSDNサブスクライバ・ダウンロードにて提供されている。さらにすべての開発者向けに、無償でダウンロードできるVS 2005 Express Editionが現在すでに提供中だ)。いままさに次世代の.NET標準の開発環境が登場し、間もなくそのパワーをあらゆる開発者が楽しめるようになろうとしているわけだ。
読者諸氏もご存じのように、このVS 2005と.NET Framework 2.0の機能内容が発表されたのはもうかれこれ数年前のことである。それから今日のリリースまでの間、マイクソフトによるカンファレンスや各メディアで、その機能内容は何度も紹介・説明されてきた。そして数多くの新機能の中でも最も人気を集めたキーワードの1つが「ClickOnce」なのである(「クリックワンス」と読む。.NET Framework 2.0に搭載されたソフトウェアの配布・更新技術のこと。従来のノータッチ・デプロイメントの後継技術でもある)。実際に、Visual Studio .NETからVS 2005へ移行したい最大の理由として「ClickOnceの魅力」を挙げる人も少なくなかった。
確かにClickOnceは非常によくできた機能で、従来の問題を解決できる画期的なテクノロジである。しかし「VS 2005がリリースされたらClickOnceを絶対に使いたい」という期待を抱いてClickOnce機能に触れてみると、必ずしも誰もが満足できる機能には仕上がっていないようである(もちろんどんなテクノロジにも、どこかに合わないところやちょっとした不便な点くらいはあるだろうが……)。
それではClickOnceには、どのような特長があり、どこに欠点があるのだろうか? 本連載では、誇張したり過大評価したりすることなく、そのような「ClickOnceの真実」を紹介していきたいと考えている。
具体的な内容としては、まずユーザーの視点から見たClickOnceの基本動作を紹介し(今回)、次にシステム管理者や開発者の視点から見たClickOnceの仕組みや使い方・実装方法などを見ていく(次回)。またさらに、ClickOnceを特徴づけるセキュリティ機構や.NETにおけるデプロイメント・テクノロジの未来について解説していく予定だ。
なお大半の読者諸氏はよくご存じだとは思うが、後進の.NET開発者のために、ClickOnceという配布・更新技術が生まれた背景について別ページで簡単にまとめた。Windowsアプリケーション(以降、Windowsアプリ)についておさらいしておきたい読者諸氏は参照されたい。
ClickOnceとは何か?
それではClickOnceとはどのようなテクノロジなのだろうか? 従来から.NET Frameworkにあったノータッチ・デプロイメントとはどこが違うのだろうか?
ClickOnceとは、先に述べたように、.NET Framework 2.0によって提供される新しいソフトウェアの配布・更新テクノロジである。ノータッチ・デプロイメントの欠点やほかの展開技術から学び、新たな進化を遂げている。
主な特長として、(ノータッチ・デプロイメントと比べると)何といってもローカルにプログラムがインストールされるために、実行時のセキュリティ設定を柔軟に指定できるようになり(セキュリティ制限をまったく受けずに実行されるようにすることもできる。ただしこのように書くと、セキュリティ面で問題があるように思われるかもしれないが、それについては続編で詳しく述べよう)、またこれによりオフラインでも利用できるようになることだ。もちろん従来のノータッチ・デプロイメントのようにインストールせずにWebから直接実行する配置オプションも残されている。ClickOnceには、状況に合わせて選べる多彩な配置オプションが用意されているのだ。
またClickOnceの実装から配布までに必要なコンポーネントの作成は、VS 2005のIDEに完全に統合されている。このため、ClickOnceの配置に関する各プロパティの設定がIDEからグラフィカルに行えるだけでなく、Webサーバへのアプリケーションの配置や、配置したアプリケーションをユーザーがインストールできるようにするためのWebページの作成までもが自動化されている。
さらに(後述する)ClickOnceのアップデート機能などは、.NET Framework 2.0クラス・ライブラリのAPIから手動で呼び出すことも可能だ。
このようにClickOnceはノータッチ・デプロイメントの比ではなく多機能である。従って本稿ではまず「典型的なClickOnceの機能」を理解することにしよう。これには、だらだらと説明を読むよりも、実際に動かしてみた画面をざっと見ていく方が早いだろう。そこで以降では、基本的なClickOnceの動作の流れを実行画面で示していくことにする。なお今回説明しない詳細なClickOnceの機能内容については、続編にて解説する。
基本的なClickOnceの実行例
前述したように、ClickOnceには複数の配置オプションが用意されているが、本稿では最も標準的な配置オプションであると思われる、イントラネット/インターネットなどのWebからローカル環境へアプリケーションをインストールする場合の配置を紹介する。なお本稿では開発環境としてVS2005 Professional Edition日本語版を使用している。
本稿で使用するサンプル・アプリケーションは、次のリンクからダウンロード可能だ。
これをビルドして実行するには、Visual Studio 2005もしくはVisual C# 2005 Express Editionが必要だ。Visual C# 2005 Express Editionは次のサイトから無償でダウンロードできる(インストール方法などはサイト内の記述を参照してほしい)。
それではClickOnceの基本機能を見ていこう。
アプリケーションのデプロイメント機能
次の画面がVS 2005で生成されたClickOnceアプリケーション(以降、ClickOnceアプリ)のインストールおよび起動用のWebページである。このページにある[インストール]ボタンをクリックすると、(初回の場合は)アプリケーションがインストールされ、続けてアプリケーションが起動される。すでにアプリケーションがインストール済みの場合は(つまり2回目以降)、インストール処理は省略されて、そのアプリケーションが起動される。
![]() |
| VS 2005で生成されたClickOnceアプリ・インストール用のWebページ |
| [インストール]ボタンをクリックすると、ClickOnceアプリのインストールが開始される。なお下にある[ClickOnce および .NET Frameworkリリース]のリンクは、マイクロソフトのClickOnce関連ページへつながっている。 |
ClickOnceアプリの実行に関しては、もちろんユーザーのローカル環境に.NET Framework 2.0がインストールされている必要がある。以前は.NET Framework自体のインストールが.NETアプリ配布の妨げとなることもあったが、ClickOnce(によって生成されるインストール用のWebページ)では、.NET Framework 2.0がインストールされていない場合には、次のようなWebページ(=必須コンポーネントのインストールを促すページ)が表示されるようになっている。
![]() |
| ClickOnceが提供する.NET Framework 2.0インストール用のWebページ |
| [インストール]ボタンをクリックすると、.NET Framework 2.0のインストールが開始される。なお.NET Framework 2.0がインストールされているにもかかわらず、このようなWebページが表示される場合は、ユーザー・ローカル環境に何らかの不具合があると考えられるが、そのようなケースでは文章中で[起動]と書かれたリンク部分をクリックすることによって、.NET Framework 2.0はインストールせずにClickOnceアプリを強制的にインストール(初回の場合)もしくは起動(2回目以降の場合)させようとすることができる。 |
このWebページで[インストール]ボタンをクリックすると、必須コンポーネントとして.NET Framework 2.0のインストールが開始される。なお、このサンプル・アプリケーションではマイクロソフトのサイトから.NET Framework 2.0をダウンロードする設定になっているが、自サイトやほかのサイトなどからダウンロードさせることも可能だ。
次に、これらのWebページから実際にClickOnceアプリをインストールしようとすると、(基本的に)次の画面のような[アプリケーションのインストール − セキュリティの警告]ダイアログが表示される(セキュリティ設定の内容によって表示させないこともできる。詳しくは次回以降で解説する)。このダイアログは信頼できない発行元のアプリケーションであることをユーザーに警告するためのものだ。
![]() |
| [詳細情報]のリンクをクリック |
![]() |
| [アプリケーションのインストール − セキュリティの警告]ダイアログ |
| 上の画面は、ClickOnceで信頼できない発行元のアプリケーションをインストールしようとすると表示されるセキュリティ警告のダイアログである。ここで信頼できるアプリケーションだと判断できないような場合は、取りあえず[インストールしない]ボタンをクリックしてインストールしないことをお勧めする。ここで盲目的に[インストール]を選択すると、ワームやウイルス、トロイの木馬などの悪意を持ったソフトウェアがインストールされてしまう可能性もある。[アプリケーションのインストール − セキュリティの警告]ダイアログにある[詳細情報]のリンクをクリックすると、下の画面のようなダイアログが表示される。ここで発行者やユーザー・ローカル環境へのアクセスなどについてのセキュリティ的な問題に関するヒントが得られるので判断する際の参考にするとよいだろう。なお、ユーザーにこのような判断を行わせたくない場合は、信頼できる発行元のアプリケーションとして配布する必要がある。これを行えばセキュリティ警告は表示されなくなる(詳細は続編にて)。 |
この[アプリケーションのインストール − セキュリティの警告]ダイアログで[インストール]ボタンをクリックして次に進むと、[アプリケーションの起動中]を示すダイアログが表示される。このダイアログが表示されている間、インストーラはWebサーバへアクセスしてアプリケーションのバージョン情報などを確認して最新バージョンのものをインストールするための準備をしたり、そのアプリケーション自体をローカル環境へダウンロードしてインストールしたりする。その起動処理が完了し次第、実際にClickOnceアプリがデスクトップ上で起動する。
![]() |
![]() |
| ClickOnceアプリの起動処理の流れ |
| ClickOnceアプリをWebページからインストールすると[アプリケーションの起動中]ダイアログが表示される。ここで、Webサーバへアクセスするなどして情報を収集してアプリケーションをダウンロードし、ローカル環境へインストールしたりする。その後、ClickOnceアプリ(本稿の例では「SampleApplication」というアプリケーション)が実際に起動する。アプリケーションが起動完了すると、[アプリケーションの起動中]ダイアログは自動的に閉じられる。 |
以上でClickOnceアプリのインストールおよび起動は完了だ。
本稿のサンプル・アプリケーションでは、[スタート]メニューを開いて[すべてのプログラム]−[Digital Advantage]を参照すると、[SampleApplication]アプリケーションへのショートカット・メニュー項目が作成されているのが確認できるだろう(このショートカット・メニュー項目もClickOnceの設定によっては作成されないことがある。詳細は次回以降で)。
![]() |
| [スタート]メニューに登録されたClickOnceアプリへのショートカット・メニュー項目 |
| インストールしたClickOnceアプリを起動するには、このメニュー項目をクリックするだけで起動できる。 |
ここまでを読んで、「このようにWebページのリンクをクリックして、ただ単純にローカル環境にWindowsアプリをインストールするだけならば、.MSIファイル(=Microsoft Windows Installerパッケージによるセットアップ・プログラム)をWebに配置してインストールしたのと、あまり大差ない」、そのように思われた読者諸氏も多いかもしれない。
確かにインストール作業だけを見れば.MSIファイルとそれほど変わらないかもしれない。だがClickOnceの真価は、その更新(アップデート)機能とセキュリティ機能にこそある。そこで次に、アップデート機能の動作を見ていくことにしよう(セキュリティ機能については次回以降で解説する)。
| INDEX | ||
| ClickOnceの真実 | ||
| 第1回 ClickOnceの基本動作を見てみよう | ||
| 1.ClickOnceの概要とデプロイメント機能 | ||
| 2.アップデート機能とロールバック機能 | ||
| 【コラム】ClickOnceが生まれた理由 | ||
| 「ClickOnceの真実」 |
ホワイトペーパー(TechTargetジャパン)
- LocalConnection APIと動的なスタイリング (2010/2/9)
Webページ上の複数のSilverlightアプリ間でメッセージ通信をする方法とは? コントロールの見た目を動的に設定する方法とは? - ASP.NET MVC 2:モデルの検証 (2010/2/8)
ASP.NET MVC 2で導入される入力検証機能を使った実装を紹介。シンプルな属性の追加によるエレガントな実装が可能となっている - ASP.NETによる3階層Webアプリ「ITブック」構築 (2010/2/5)
ちょっとした改造で、あなたのWebアプリは劇的に使いやすく、かっこよくなる。まずは元となるWebアプリを標準的手法で構築 - .NET TIPS - .NET開発のテクニックとヒント集 - (2010/2/4)
− カスタムMVCビューエンジンを利用するには?(活用編)
− フォーム全体へのドッキングでつまみを表示するには?
− リストボックスでTextBlockの文字列を折り返すには?
|
|
スキルアップ/キャリアアップ(JOB@IT)
は.NET開発者中心に生まれ変わりました
スポンサーからのお知らせ
.NET開発者中心コーナー
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |














