私の会社には、多くのクラス ライブラリ プロジェクトとサポート テスト プロジェクトで構成される共通コード ライブラリがあります。各クラス ライブラリ プロジェクトは、Company.Common.Serialization.dll などの単一のバイナリを出力します。ソース コードだけでなく、コンパイルおよびテスト済みのバイナリも所有しているため、使用するアプリケーションでバイナリまたはプロジェクトの参照を使用する必要があるかどうかについて議論があります。
プロジェクト参照を支持するいくつかの引数:
- プロジェクト参照により、ユーザーは、追加のプロジェクト/ソリューションを読み込むオーバーヘッドなしで、すべてのソリューション コードをデバッグおよび表示できます。
- プロジェクト参照は、ソース管理システムにコミットされた一般的なコンポーネントの変更に遅れずについていくのに役立ちます。変更はアクティブなソリューションがなくても簡単に識別できるからです。
バイナリ参照を支持するいくつかの引数:
- バイナリ参照はソリューションを簡素化し、ソリューションの読み込み時間を短縮します。
- バイナリ参照により、開発者は、既に焼き付けられ、安定性が証明されているコードに気を取られる可能性がなくなり、新しいコードに集中できるようになります。
- バイナリ参照は、私たちの組織外の人々がそうする必要があるのと同じように、共通ライブラリを使用するように、私たちのものを適切にドッグフードすることを余儀なくさせます.
- バイナリ参照はデバッグ (ステップイン) できないため、使用するアプリケーションのコンテキスト内でテストおよび修正するのではなく、既存のテスト プロジェクトを拡張して問題を複製および修正する必要があります。
- バイナリ参照により、流入バージョンではなく安定したバージョンのバイナリが参照されるため、クラス ライブラリ プロジェクトでの並行開発が消費アプリケーションに影響を与えないようになります。必要に応じて、コンポーネントの新しいリリースを組み込むかどうかは、プロジェクト リーダーの決定になります。
プロジェクトまたはバイナリ参照を使用する際のポリシー/好みは何ですか?