0

背景:

大規模なデータベースといくつかのプログラムで構成される複雑なシステムを提供します。ほとんどは C# で記述されていますが、一部のレガシー アプリケーションは MFC で実行されています。

私たちが提供するもののほとんどは単一のサーバー (SQL サーバーと SQL Management Studio 2005 を実行) 上で実行されますが、いくつかのアプリケーションは多数のクライアントのコンピューターで実行できます。データベースを更新した後、データベースの変更により古いソフトウェアが壊れる可能性があるため、これを更新するのは本当に面倒です。サーバー ソフトウェアを手動で更新することは 1 つの方法ですが、すべてのクライアント ソフトウェアも確実に機能するようにすることは事実上不可能であり、時間の経過とともに悪化するだけです。

製品全体を更新できる更新サービスを作成します-データベースを更新し、サービスとアプリケーションを再インストールします。(ただし、実際に変更されたプログラム/ファイル/テーブルなどのみを更新する必要があります。利用可能な更新があるたびに製品全体をダウンロードすることはオプションではありません。また、一部のコンピューターには、利用可能なプログラムのサブセットのみがインストールされている場合があります)

まず第一に、これを行うための良い方法はすでにありますか? 既に存在するデータベースを更新できる ClickOnce に似たものがある場合は、むしろそれを使用したいと思います。

そうでない場合、更新に関するベスト プラクティスは何ですか? すべての資料を高く評価します。

ユーザー入力なしで、更新が送信された後、できるだけ早くサーバーにいくつかの更新をインストールする必要があります。これには、Windows サービス (常に実行されている) とデータベースの変更が含まれます。これらの変更が行われた後、最新ではないソフトウェアが変更された部分にアクセスしたり、まったく実行されたりするのを防ぐ必要があります。

アドバイスをいただければ幸いです。そのようなシステムを作成する必要がある場合は、正しく作成したいと思います。

4

2 に答える 2

1

ベストプラクティスは、アプリをMSIにパッケージ化し、グループポリシーを使用して更新を各クライアントにプッシュすることです。

それが不可能な場合は、クライアントアプリに古いことを通知する方法が必要であり(現在のバージョン番号を保持しているサーバーに対する単純なチェックでおそらく十分です)、更新パッチがダウンロードされてインストールされるまで動作を拒否します-アプリ自体の内部からこのプロセスを起動することもできます。

于 2009-12-15T10:42:05.643 に答える
0

この回答はあなたを助けるかもしれません.私は個人的にWixを使用していませんが、これはあなたが探しているものに沿っているようです. リンクされたチュートリアルのレッスン 4 を確認してください。必要な詳細が記載されています。

更新に関するベスト プラクティスがどこにあるのかはわかりませんが、私の個人的な意見では、基礎となるアプリケーションが壊れない限り (あなたのアプリケーションのように)、ユーザーに更新を強制するべきではありません。誰かがこのトピックに関するベスト プラクティスのリストへのリンクを持っているかどうかを知りたいです。

編集

更新のベスト プラクティスに興味があったので、ここで別の質問スレッドを開始しました。回答の一般的なコンセンサスは「ユーザー/クライアントに尋ねる」ですが、回答に役立つ他の詳細が含まれている可能性があります。残念ながら、この件に関する実際の厳しいルールはどこにも見つかりません(私は期待していた)。

于 2009-12-16T05:41:20.157 に答える