依赖关系管理 .Net:类还是程序集?



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

请考虑以下事项:

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

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

网络.dll- Web 应用程序。需要对核心.dll和应用程序的引用.dll

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

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

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

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

社区认为哪种做法更好?

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

最新更新