解决方案设置:
- DAL(类库)
- BLL(类库)
- 常见(类库(一些常见功能 - 枚举、日志记录、异常等))
- 应用程序 1(Windows 应用程序)
- 应用程序2(Windows应用程序)
- WebApp(网络应用程序)
- ...
假设我有一个Customer实体,即:
- SQL Server 中的一个表
- DAL 中的 CustomerDataTable
- BLL 中的 Customer 类
- 所有应用程序中的 BLL.Customer 类
BLL 和 DAL 应该使用什么样的对象进行通信 -DataTable
or List<Customer>
(例如)?在第一种情况下,BLL 逻辑应将 Customer 对象转换为 DataTable 并将其发送到 DAL。在第二种情况下,DAL 层应该知道 BLL 层中的 Customer 类。但原来DLL引用了DAL而不是相反......
我是否应该将所有类放入单独的程序集中,由所有其他类(公共、业务对象等)引用?在这种情况下,我可以在我的所有项目中使用 Customer 类。
当我知道只有一个 BLL 会使用我的 DAL 时,我是否应该费心将 DAL 和 BLL 分开。在这种情况下,我可以将它们合并到一个项目中。
PS - 我正在阅读有关数据表的内容,很多人说我们根本不应该使用它们。有哪些更好的选择?也许我是时候学习一些 ORM 映射工具了:)
在我看来,你应该有另一个层(单独的 dll)。就像“域”一样,您将在哪里保存所有实体(例如客户)。
然后简单地将该程序集包含在层次结构中的所有更高级别(DAL、BLL、UI 等)中。
示例架构如下所示:
(数据库) DAL BL UI
在所有级别上,您都可以访问“域”层。
DAL 应该返回列表而不是数据表。在开发过程的某个阶段,您可能希望在 DAL 中使用一些 OMR(例如 NHibernate),并且可能也会返回一个列表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)