【问题标题】:One DLL for each project or for each module?每个项目或每个模块一个 DLL?
【发布时间】:2012-03-24 07:16:43
【问题描述】:

我习惯于处理具有 3 层项目的解决方案(有些解决方案有 3 个以上的项目)。其中大多数是 ASP.Net MVC 解决方案,因此其中许多都有以下项目:站点、业务和数据。那么,会创建 3 个 DLL,对吧?

这几天我在想我的业务层应该只是一个 DLL,还是应该为这个业务层中的每个模块创建一个 DLL,例如 Product.DLL、Order.DLL、Customer.DLL 等等。

我在想,如果应用程序在与产品相关的业务层出现错误,我只能部署一个 Product.DLL,而不是部署整个 Business.DLL。

您对此有何看法?

谢谢!

【问题讨论】:

    标签: c# asp.net-mvc design-patterns architecture


    【解决方案1】:

    除非您有超大 业务层,否则我会避免将其拆分为多个 dll。这会给您的项目带来不必要的复杂性。

    但是,如果你在做一个企业系统,比如说银行,每个项目都包含独立的逻辑,那么你可能需要拆分它。

    【讨论】:

      【解决方案2】:

      如果是小型系统,您可以在单个项目中编写 3 层代码。对于大型系统,您可以将系统分布在多个 DLL 中。

      对于较小的系统,使用命名空间来区分层可能就足够了。没有万能的建议。

      如果您认同这种思维方式,那么 DLL 通常将是一个物理工件,而不是一个逻辑工件 - 哪些组件版本在一起并且应该一起部署和/或哪些组件需要物理分离。

      【讨论】:

      • +1 拥有一个 DLL 更容易违反层边界(这也应该考虑在内)
      猜你喜欢
      • 2010-09-13
      • 2016-08-12
      • 2012-06-14
      • 1970-01-01
      • 2019-05-28
      • 2016-11-25
      • 1970-01-01
      • 2022-01-04
      • 2010-10-31
      相关资源
      最近更新 更多