3 層の .NET 2.0 アプリがあります。プレゼンテーション層は中間層を参照します。中間層はデータベース層を参照します。何らかの理由で、コンパイルすると、データ層の dll がプレゼンテーション層のビンに表示されます。どうすればこれを止めることができますか?
4 に答える
参照プロパティで Copy Local を false に設定する
これを止める唯一の方法は、1 つ以上の層をサービス レイヤー (または同様のもの) にして、層を物理的に分離することです。
個別の層が相互にコンパイルされているため、アプリケーション全体が適切に機能するには、アセンブリが存在する必要があります。すべてのアセンブリがなくても、アプリケーションがどのように機能すると思いますか?
依存関係と呼ばれるものがあるので、コピーしても問題ありません。中間層は、中間層の DataAccess と UI に依存します。UI からのデータ アクセスを参照しないようにだけ追跡する必要があります。
通常、私は次のように物理層アプリケーションを実行します。
- UI
- プレゼンター
- ビジネスの論理
- データアクセス
- 実在物
しかし、私はこの組織に対する私の見方を変えています。私はたくさんのプロジェクトを行ってきましたが、そのうちのいくつかはメンテナンスと改善を要求します。この組織は一枚岩すぎると思い始めます。Ted Faison、Tomas Erl、Robert C. Martin、Andy Auntのような一部の著者は、この階層的なアプローチは一種の素朴であると述べています。
とにかく...ロジックを別々のプロジェクトに入れて、それらを別個のアセンブリとして構築します。階層参照を作成すると、必要なものが得られます。