我正在与一位同事讨论在新应用程序中实现数据层的最佳方法.
一种观点是数据层应该知道业务对象(我们自己的代表实体的类),并且能够本地使用该对象.
相反的观点是数据层应该是对象不可知的,并且纯粹处理简单的数据类型(字符串,bool,日期等)
我可以看到这两种方法都可能有效,但我自己的观点是我更喜欢前者.这样,如果数据存储介质改变,则业务层不必(必须)改变以适应新数据层.因此,从SQL数据存储区更改为序列化的xml文件系统存储区将是一件微不足道的事情.
我的同事的观点是,数据层不应该知道对象定义,只要数据传递得恰当,就足够了.
现在,我知道这是有可能发起宗教战争的问题之一,但我很感激社区对你如何处理这些事情的任何反馈.
TIA
这真的取决于你对这个世界的看法 - 我曾经是在一个脱钩的阵营.DAL只是向BAL提供数据 - 故事结束.
随着Linq to SQL和Entity Framework等新兴技术变得越来越流行,DAL和BAL之间的界限已经模糊了一些.在L2S中,特别是您的DAL与Business对象紧密耦合,因为对象模型具有1-1到您的数据库字段的映射.
像软件开发中的任何东西一样,没有正确或错误的答案.您需要了解您的要求和未来的要求,并从那里开始工作.我不会在达喀尔集会上使用法拉利,因为我会在赛道日使用路虎揽胜.