解决方案的设置之间的通信:BLL和DAL
- DAL(类库)
- BLL(类库)
- 通用(类库(一些常用的功能 - 枚举,日志,异常.. 。))
- 应用1(Windows应用程序)
- 应用2(Windows应用程序)
- Web应用程序(Web应用程序)
- ...
比方说,我有一个客户实体,它是:
- 在SQL服务器
- 一个CustomerDataTable在DAL
- 一个Customer类BLL表
- a BLL.Customer class in all the applications
什么样的对象应该BLL和DAL用于通信的 - DataTable
或List<Customer>
(例如)?在第一种情况下,BLL逻辑应该将Customer对象转换为DataTable并将其发送给DAL。在secod情况下,DAL层应该知道Customer类,它位于BLL层中。但原始的DLL引用DAL而不是相反...
我应该把所有的类放入单独的程序集,它被所有其他程序引用(Common,BusinessObjects,...)吗?在这种情况下,我可以在我的所有项目中使用Customer类。
当我知道时,我应该甚至打扰分离DAL和BLL,只有一个BLL会使用我的DAL。在这种情况下,我可以将它们合并为一个项目。
PS - 我正在阅读有关数据表,很多人说,我们不应该使用它们。什么是更好的选择?也许是时候让我学习一些ORM映射工具:)
我喜欢这一个。有一个问题 - 如果我在Model(或Domain,Entities)程序集中有Customer类,那么这个类是否也有所有的方法,比如GetAllCustomers,GetCustomer(int id)...?还是应该模型只有属性,方法应该在BLL中? – sventevit 2010-10-17 09:29:17
我会把Customer类作为一个数据实体,所以只有属性和没有像“GetAllCustomers”这样的方法。该方法我会放入BLL中,使用DAL进行查询。 – Ami 2010-10-17 09:33:05
在这种情况下,我可以向BLL添加部分类,它们从Model assembly扩展我的基类并添加它们的方法? – sventevit 2010-10-17 09:36:24