2009-04-13 13 views
3

私は特定のサーバーを開発します。これまでは、2つのバージョンを同時にインストールすることはできませんでした。私たちは今それを変更しています。バージョン番号をサーバーコンポーネントに追加するかどうかは疑問です。サーバーには3つのexesと5つのdll(いくつかのCOM、いくつかのネイティブVC++)が含まれています。名前の一部または全部にバージョン(Serv71.exe,module71.dll)が含まれている必要がありますか?実行ファイルに名前にバージョン番号を含める必要がありますか?

プロの側では、サーバーの管理が簡単になるはずです。特定のインスタンスが誤動作した場合、それはタスクマネージャで識別可能になります。また、コンポーネントが混在していることが気付かれずにインストールされる可能性は低いです。

反対側では、開発が少し難しくなります。サーバーはスタンドアロン製品ではなく、アプリケーションインフラストラクチャの一部です。つまり、メインアプリのバージョンを取得します。つまり、特定のコンポーネントは、バージョン間でまったく変更されていなくても、別の名前を取得する必要があります。

このことはまったく重要な問題ではありません。私たちはおそらく両方の方法に慣れることができます。それがあったとすれば、私は戦略の1つを支持して勝者の議論を逃した可能性があります。共通の選択肢は何ですか?職業はなんですか?

編集:私はCOMとファイルメタデータのバージョン管理に精通しており、ファイル名のバージョン管理が冗長であることに同意します。私はより重大なもの、すなわち冗長オーバーヘッドが一定であること、またはメンテナンスでまれなことが何かを把握しようとしています。

答えて

1

COM APIの場合、ライブラリに必要なすべてのバージョン情報があります。私はバージョン番号が冗長で、少なくとも最悪の場合は混乱している(少なくともバージョン番号が同期外れした場合)それらのDLLに名前を付けることができます。私は明確なアップグレードパスが必要なときにインターフェイス名とコクラス名にバージョン識別子を付加して変更を加えることを勧めます。

プレーンバイナリDLL APIの場合、バージョン番号を追加するのはアイデアですが、これまでによく実行されたものではありません(そして、古い16ビットVBランタイムDLLでかなりひどく実行されました!)。彼らは明確かつ区切られたAPIを持っているのですか、それとも何十もの機能を公開していますか?インターフェイスが大きい場合、未成年者が急激に変化しないようにするのに問題が生じます。このようにしてバージョンのラベル付けを開始したら、一貫性を持たなければなりません。すべてのバージョンを変更すると、クライアントを静的にリンクする必要があります(つまり、バージョン自体が再コンパイルされます)。ここでの潜在的な問題は、'バージョンノイズ'が大量に発生し、重要な変更が隠されていることです。

Windowsバイナリには、バージョンメタデータ(VERSIONINFO構造体)が含まれています。 LeJeuneの言うとおり、これはよく知られたルートですが、間違ったものをリンクすると自動的にエラーが発生することはありません。ただし、必要な構成管理スキーマを比較的簡単にサポートすることができます。

0

DLLが異なるバージョンの異なるAPIを提供する場合は、バージョン番号をファイル名に追加する必要があります。実行ファイルの場合は問題ありません。実行ファイルが指定されたインターフェースを使用して対話し、それが変更された場合、実行ファイルのファイル名にバージョン番号を使用します。

0

"反対側では、開発が少し難しくなります。"

真実ではありません。これはすでに持っている問題を明らかにする - すべてのコンポーネントのすべてのリリースを整列させておく。

アプリケーションインフラストラクチャ全体として、すべてのコンポーネントが適切にリリースされていることを確認する必要があります。

をそれぞれ適切にラベル付けし、現在のバージョンと一緒に使用する必要があるバージョンを示す構成レポートを提供することで、を簡単に作成できます。

2

通常、バージョン情報はDLLのメタデータ(ファイル拡張情報)の一部であり、ファイル名の一部ではありません。

メンテナンスの手順が簡単です。セットアッププログラムは、既存のバイナリファイルをアップグレード/置換するときに、その情報を処理する方法を知っています。新しいバージョンのDLLを発行する必要がある場合、exeを再コンパイル/再リンクする必要はありません。

一般的なガイドラインとして、新しい仕組みを発明しようとしないでください。既存のものを使用してください。

関連する問題