背景:
大規模なデータベースといくつかのプログラムで構成される複雑なシステムを提供します。ほとんどは C# で記述されていますが、一部のレガシー アプリケーションは MFC で実行されています。
私たちが提供するもののほとんどは単一のサーバー (SQL サーバーと SQL Management Studio 2005 を実行) 上で実行されますが、いくつかのアプリケーションは多数のクライアントのコンピューターで実行できます。データベースを更新した後、データベースの変更により古いソフトウェアが壊れる可能性があるため、これを更新するのは本当に面倒です。サーバー ソフトウェアを手動で更新することは 1 つの方法ですが、すべてのクライアント ソフトウェアも確実に機能するようにすることは事実上不可能であり、時間の経過とともに悪化するだけです。
製品全体を更新できる更新サービスを作成します-データベースを更新し、サービスとアプリケーションを再インストールします。(ただし、実際に変更されたプログラム/ファイル/テーブルなどのみを更新する必要があります。利用可能な更新があるたびに製品全体をダウンロードすることはオプションではありません。また、一部のコンピューターには、利用可能なプログラムのサブセットのみがインストールされている場合があります)
まず第一に、これを行うための良い方法はすでにありますか? 既に存在するデータベースを更新できる ClickOnce に似たものがある場合は、むしろそれを使用したいと思います。
そうでない場合、更新に関するベスト プラクティスは何ですか? すべての資料を高く評価します。
ユーザー入力なしで、更新が送信された後、できるだけ早くサーバーにいくつかの更新をインストールする必要があります。これには、Windows サービス (常に実行されている) とデータベースの変更が含まれます。これらの変更が行われた後、最新ではないソフトウェアが変更された部分にアクセスしたり、まったく実行されたりするのを防ぐ必要があります。
アドバイスをいただければ幸いです。そのようなシステムを作成する必要がある場合は、正しく作成したいと思います。