【问题标题】:Dependency Management .Net: Classes or Assemblies?依赖管理.Net:类还是程序集?
【发布时间】:2018-06-14 08:35:50
【问题描述】:

如果我希望我的业务域对象不依赖于数据库,我的域类是否应该在单独的程序集中?

考虑以下几点:

Core.dll - 包含业务对象,非常有限的引用

Application.dll - 包含将业务对象保存到数据库的存储库。此程序集引用 SQLClient.dll 和其他外部库

Web.dll - 网络应用程序。需要同时引用 Core.dll 和 Application.dll

这样做的局限,是我不能很好地利用访问修饰符。我希望存储库类可以访问一些方法/数据,但不能访问 Web.DLL 中的类。

我有两种看待问题的方法。

  1. Core.dll 可以与 Application.dll 合并,只要业务逻辑类不导入不必要的库(如 SqlClient)。存储库和域类应该在同一个程序集中,因为它们经常一起更改。

  2. 最好将 Core.dll 和 Application.dll 分开,因为您可以引用 Core.DLL 而无需引用其他库(如 SQLClient)。您可以共享命名空间或使用 InternalsVisibleTo 在业务对象和数据访问之间创建层

社区发现哪种做法更好?

【问题讨论】:

  • 为什么不能从应用程序中引用核心?
  • @TonyMathew:我认为他在他的第二种方法中指的是这一点。

标签: c# .net architecture software-design


【解决方案1】:

根据您的想法,我肯定会继续您的第二种方法,将核心、应用程序和 Web 分开。因为每个都有自己独特的组件和功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    • 2011-04-12
    相关资源
    最近更新 更多