はじめに
プログラム開発の現場では、大きなアプリケーションを管理しやすい小さなDLLに分割することがよく行われます。そして大抵の場合、リリース後まもなくいくつかのDLLに小さな問題が見つかり、バグ修正が必要になります。ところが、そのソフトウェアを使う誰もがバグ修正を簡単に入手できるわけではありません。幸い、現代の職場では、ほとんどの人がインターネットへの接続手段を有しています。本稿では、このインターネット接続を利用してアップデートを配信することを考えます。
これは思ったほど難しい処理ではありません。私は大規模なアプリケーションのオートアップデータを仕事でいくつか開発したのですが、実際にやってみると、この作業はかなり簡単であることが分かりました。実行すべきタスクを要約すると次のようになります。必要なものは.NETにすべて用意されています。
- アクティブなインターネット接続があるか確認する。
- 当該アプリケーション向けのアップデートがあるかどうか確認する。
- 必要なファイルを、それぞれ対応する場所にダウンロードする。
- アップデート後のアプリケーションを開始する。
デフォルト値とファイルパスの設定
最初に、いくつかのデフォルト値とファイルパスを設定する必要があります。
'Project name Public Const AppName As String = "Hex Editor" ' Unique Project ID -- Public Const UpdateID As String = "HexEdit" ' The Application's Root Path "C:\Dir1\Dir2" (No trailing backslash) Public Const AppPath As String = "C:\Program Files\Hex_edit" ' The Application's Exe "Dir3\Prog.exe" (from the root path. ' No leading Backslash) Public Const AppEXE As String = "Hex_edit.EXE" ' Other startup defaults ' Last update loaded... Public Const LastUpdate As Integer = 0 ' Wait time to connect to Update Site in seconds Public Const TimeOutlen As Integer = 60 ' Default site to download updates from Public Const UpdateSite As String = "updates.mysite.com"
このオートアップデータは汎用アプリケーションとして書かれています。また、どんなプロジェクトにも、コードにそれほど手を加えずに追加できるようにしたいので、プロジェクトに依存する情報はすべて変数に格納するようにしてあります。
上記の一連のデフォルト値は初回の使用に関係する設定情報であり、ファイルかレジストリに格納する必要があります。この情報をどこに格納するかは、読者の判断にお任せします。