ニュース
» 2005年08月08日 09時00分 公開

ClickOnce 〜 .NET Framework 2.0時代の、Windowsフォームアプリケーション配布の新機能

アプリケーションの配布や管理を簡単に行う方法があったら……。この夢のような希望をかなえてくれるのが、.NET Framework 2.0の新機能であるClickOnceである。

[下村恭(ハンズシステム),ITmedia]

 ClickOnceは、Windowsアプリケーションをクライアントに配置する.NET Framework 2.0の技術で、従来で言うところのActiveXの配布と同様、Windowsフォームで作成されたアプリケーションを信頼性を維持しつつ容易に配布できる。

 システム設計の際にWebアプリケーションが選択される主な背景には、バージョンアップ時などの手間や管理コストを削減したいといった要求がある。通常のアプリケーションであれば、インストーラを配布し、クライアント側でインストール作業を行い、バージョンアップの際には、場合によっては古いアプリケーションをアンインストールして、新しいバージョンをインストールするという手間がかかる。

 Webアプリケーションであれば、インストールの手間はなく、またバージョンアップもサーバの更新を1回だけ行うだけで済む。しかし、Webアプリケーションでは、ユーザーインタフェースに機能が乏しいという欠点がある。

 そこで注目したいのが、Webアプリケーションのようにインストールや更新の手間がなく、かつ、通常のアプリケーションと同様のユーザーインタフェースを実現できるClickOnceだ。ClickOnceを使えば、使いやすいユーザーインタフェースを備えたWindowsフォームアプリケーションを、インストールや更新の手間を省いて配布できるからだ。

 Visual Studio 2005では、プロジェクトのプロパティを設定し、アプリケーションの発行ウィザードを実行するという手順だけで、アプリケーション配布のWebページを作成してくれる。特にClickOnceによる配布のためのコーディングは必要なく、簡単にClickOnceによる配布を実現できる。

 ClickOnceによって配布されるアプリケーションを利用するユーザーは、配布ページにあるリンクをクリックし、セキュリティ警告のダイアログで「インストール」を選ぶだけで、自分のローカルコンピュータにアプリケーションをインストールすることができる。ここでインストールされるアプリケーションは、(発行時の設定にもよるが)通常のアプリケーションと同様、スタートメニューに登録され、プログラムの追加と削除にリストされる。

このようなWeb画面からリンクをクリックするだけで、アプリケーションの配布ができるようになる。もちろん、スタートメニューにショートカットが登録され、プログラムの追加と削除にもリストされるようになる

 ClickOnce機能の素晴らしい点は、ClickOnceによってインストールされたアプリケーションは、実行時にサーバをチェックし、更新されたアプリケーションがあれば自動的にダウンロードして更新してくれるように構成できるという点だ。さらに、この機能を実現するためのコーディングは必要がない。

 加えて、ユーザーはプログラムの追加と削除のリストから、アプリケーションの削除を行うことができるうえ、1つ前のバージョンに戻すといったことも可能となっている。この機能は、自動的にバージョンアップされたときに問題が起きてしまったような際に、ユーザーの判断で、アプリケーションのバージョンをロールバックさせることが可能ということだ。

 もちろん、インストーラの配置場所はWebサーバに限らず、共有フォルダでもかまわないし、CD-ROMなどからインストールさせることも可能だ。この場合でも、自動更新の機能を利用できる。

 このように非常に強力な機能を持つClickOnceだが、もちろん考慮しなければならない点もある。特に注意すべき点はセキュリティだ。Webを通じて配布されることが多いため、改ざんに対して備えておく必要がある。ClickOnceでアプリケーションを配布しようとする開発者は、きちんと配布元の署名を行っておく必要がある。また、従来のActiveXと同様に、インストールするユーザー側にも、発行元がきちんと署名されて、特定されているかどうを確認してからインストールするよう、注意を促す必要がある。

 開発者が考慮しなければならない別の点として、どこからインストールしたか(配布元)によって、アプリケーションが実行できる機能に制限が加わるという点がある。インターネットセキュリティゾーンからインストールしたアプリケーションは、そのままインターネットセキュリティゾーン内で実行されるため、ファイルアクセスなどに制限が生じ、違反する場合は例外が発生する。イントラネットゾーンの場合も、制限はゆるいが同様だ。ただし、CD-ROMなどのメディアからインストールされた場合は、完全信頼となる。

 とはいえ、制限された状態ではアプリケーションとして意味がない場合もある。この場合は、プロジェクトのプロパティの設定を変更することで、部分信頼アプリケーションに設定することが可能だ。この場合は、インストール時のセキュリティ警告にきちんと表示されるため、ユーザー側での判断が必要となってくる。

 また、通常のWindowsInstallerと比較して、ClickOnceのインストーラでは実現できない機能もある。詳しくは下図を参照していただくとして、主だった点を挙げると、スタートアップに登録できるショートカットはアプリケーションのみで、付加的なファイルなどを登録することはできないことや、インストーラによるレジストリへの書き込みができない、すべてのユーザーを対象としたインストールができないといった点がある。

ClickOnceはアプリケーションの配布には有効な機能だが万能ではない。この表では、Windows Installerとの比較が行われているが、ClockOnceでできることを見極めたうえで、比較的小規模なアプリケーションで、自動更新が必要なものなど、用途に見合ったものかどうか検討する必要があるだろう

 さらに、大規模なアプリケーションの配布には不向きであること、配布に使用するWebページをカスタマイズする機能がないので、自動生成されたページを使用するのでなければ、手間を必要とすることなどにも留意しておきたい。

 注意点を把握して利用すれば、リッチなユーザーインタフェースを備えたアプリケーションを、容易に配布し維持管理できるという点で、ClickOnceは強力な機能だ。アプリケーションの配布手段の1つとして、検討に値するだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ