【发布时间】:2010-11-03 11:12:43
【问题描述】:
我有一个 3 层的 .NET 2.0 应用程序。表示层引用中间层。中间层引用数据库层。出于某种原因,当我编译时,数据层的 dll 出现在表示层的 bin 中。我该如何阻止这种情况?
【问题讨论】:
标签: .net n-tier-architecture 3-tier
我有一个 3 层的 .NET 2.0 应用程序。表示层引用中间层。中间层引用数据库层。出于某种原因,当我编译时,数据层的 dll 出现在表示层的 bin 中。我该如何阻止这种情况?
【问题讨论】:
标签: .net n-tier-architecture 3-tier
在引用属性中将 Copy Local 设置为 false
【讨论】:
阻止这种情况的唯一方法是使您的一个或多个层成为服务层(或类似的东西)以物理分离您的层。
由于您的单独层是相互编译的,因此需要有程序集才能使整个应用程序正常运行。您如何设想应用程序在没有所有程序集的情况下工作?
【讨论】:
可以复制,因为有依赖关系。您的中间层依赖于中间层的 DataAccess 和 UI。您只需要跟踪,不要引用 UI 中的数据访问。
【讨论】:
通常我做物理层应用如下:
但我正在改变对这个组织的看法。因为我做过很多项目,其中一些需要维护和改进。我开始认为这个组织过于单一。 Ted Faison、Tomas Erl、Robert C. Martin、Andy Aunt 等一些作者表示,这种分层方法有点幼稚。
无论如何...将您的逻辑放在单独的项目中并将它们构建为不同的程序集。进行分层引用,您将拥有您想要的。
【讨论】: