12

デスクトップ ベースのアプリケーションの場合、自動更新を実行するためのベスト プラクティスは何ですか? 現在、すべてのファイルをダウンロードしてから、それぞれのディレクトリにコピーして登録します (com dll の場合)。

Google Chrome の更新方法を見てみました。最初にzipファイルをディレクトリにダウンロードしてから、すべてのファイルを解凍しているようです。また、更新を行うために使用されると思われるセットアップアプリケーションがあります。さらに、1.0.154.43 のような更新バージョンにマップされたディレクトリを作成しますが、古いバージョンのディレクトリは保持します。

4

3 に答える 3

17

いくつかのヒント:

  • 選択した方法に関係なく、更新を確認するための新しいサービスまたはプロセスを作成し、継続的にそのままにしておくことはしないでください。ご存じのように、Adobe や Sun (Java 用) のように。何を作成しているかに関係なく、ユーザーがコンピューターを起動するたびに更新する必要があるほど重要ではないことを保証できます。更新は、OS に共通の標準化された更新プロセスと統合するか、アプリケーションの実行中に統合する必要があります。デフォルトでは、更新によってシステム リソースが継続的に盗まれたり、起動プロセスが遅くなったりすることはありません。

  • バージョンごとに個別のディレクトリを維持する場合は、それを維持するためのコードを追加する必要があります。ディスク容量は、更新を促進するためのものではありません。コンピューターに一度に 5 つの異なるバージョンがあった 1 つの Citrix アプリケーションを思い出します。 明示的にファイル システムに配置しない限り、ユーザーはファイル システム上にアプリケーションの2 つ以上のコピー(最大 1 つのバックアップ、機能することが確認されている) を表示するべきではありません。このようにフォルダの場所が変わると、アプリケーションへのショートカットが古くなる可能性があるので注意してください。

  • プログラムの開始後に更新する場合は、目立たない方法でユーザーに通知することをお勧めします。更新によって機能が大幅に変更されない場合は、バックグラウンドで更新をダウンロードし、次回アプリケーションが実行されたときに新しいバージョンに切り替え、重要な変更をユーザーに通知します (モーダル ダイアログを使用したり、盗んだりしないでください)。集中)。アプリを起動する前に更新プログラムのインストールに同意するボタンをクリックさせたり、更新されたバージョンを使用するために再起動を強制したりしないでください。ユーザーが自動更新を構成できるようにし、生産性に影響を与えずに実行できるようにします。Firefox はこれに関してかなり悪いです。多くのユーザーにとって不可欠なアプリケーションであるため、これは悲しいことです。

  • システム トレイには触れないでください。これは、(ユーザーにとって) 有用なアプリケーション用に予約する必要があります。また、バルーン通知にも反対することをお勧めします。ブラウザで一般的に見られる情報バーのようなものを使用します。Microsoft アプリケーションは、システム トレイとバルーン通知を使用して、重要でない通知でユーザーの時間を浪費することを特に苦手としています。ユーザーが自動更新を有効にしている場合、すべてが期待どおりに機能していることを知る必要はありません。何か新しいことや役に立つことがあれば教えてください。その知識を押し付けてはいけません。ヘルプ メニュー項目の下に変更ログを残して、バグ修正を自分で確認できるようにします。

  • デフォルトの構成ファイルをデプロイする場合は、MSI システムを使用した更新に注意してください。 update でユーザー ファイルを上書きしたくありません。同様に、構成ファイルまたはユーザー ファイルの形式が変更された場合は、それらのファイルを自動的にバックアップおよびアップグレードするメカニズムを提供する必要があります。または、デフォルト設定を展開するのではなく、アプリケーション内で内部的に構築し始めます。

  • 帯域幅を意識してください。大きなファイルには時間がかかり、場合によってはユーザーから計測された帯域幅が必要になります。毎日更新するなら特に。

真に非侵入的な更新手順をすぐに思い出すことはできませんが、過去に時間とリソースを浪費した多くのことを思い出すことができます。別のものを作る男にならないでください。

于 2009-01-17T11:34:15.280 に答える
8

Chromium チームからの最近のブログ投稿は、優れたガイドです。

http://blog.chromium.org/2009/01/google-chrome-installation-and-updates.html

基本的にはMSのClickOnceを使っても同じ事が出来ますし、今のところそのようなアップデート方法でアプリを使っても問題ないので、これは「ベストプラクティス」に分類されると思いますが…私だけの話です。

  1. 各バージョンを独自の一意のフォルダーに保存します。
  2. 「ランチャー」を使用して、利用可能な最新バージョンを起動し、...
  3. アプリケーションの起動後、バックグラウンドで新しいバージョンがないか確認してください。
  4. 見つかった新しいバージョンをダウンロードし、そのバージョン用の新しいフォルダーを作成します。

Google Chrome は、Google Update サービスを使用して更新を行うため、少し異なりますが、全体的なエクスペリエンス/サイクルはほぼ同じです。

ユーザーがアプリケーションを起動すると、新しいバージョンが利用可能になると、バックグラウンドでダウンロードされます。次にアプリケーションが起動したときに、ユーザーは新しいバージョンを自動的に (可能であれば) サイレント モードで取得します。

于 2009-01-17T08:52:31.940 に答える
1

既存のフレームワークを使用する

MacOS X の場合: Sparkle フレームワーク ( http://sparkle.andymatuschak.org ) を使用します。

Linux の場合: サポートするディストリビューションのパッケージとセットアップ リポジトリを作成します。

于 2009-01-17T09:34:14.040 に答える