在设计业务对象时,我尝试了几种编写数据访问层的不同方法。有些人比其他人做得更好,但我一直觉得一定有一种“更好”的方法。
我真的很想看看人们在不同的情况下处理DAL的不同方式,以及他们对这项技术如何工作或不好用的看法。
发布于 2008-10-07 13:20:01
现在,我在很多Web / WinForms应用程序中都非常依赖Billy McCafferty's NHibernate Best Practices article / sample code。这是一篇写得很好的文章,除了教您基本的NHibernate和测试驱动开发之外,还将为您提供一个很好的可靠的示例体系结构。他试图向您概述他的架构和设计决策。
他使用泛型DataAccessObjects创建了一个非常优雅的DAL,您可以为每个域对象扩展它--它使用接口和DAOFactory非常松散地耦合到BL。我建议您先看看BasicSample,特别是如果您以前没有使用过NHibernate的话。
请注意,本文在很大程度上依赖于NHibernate,但我认为可以很容易地对其进行修改以适应其他ORM。
发布于 2008-10-07 12:34:47
不幸的是,我不认为有一个“更好的方法”,它太依赖于具体的情况,因为你使用的DAL方法。Martin Fowler的Patterns of Enterprise Application Architecture是关于“最新技术”的一个很好的讨论。
“第10章,数据源架构模式”专门讨论了大多数最常用的业务应用程序模式。
不过,总的来说,我发现使用满足基本的可维护性和适应性需求的最简单的方法是最佳选择。
例如,在最近的一个项目中,一个简单的“行数据网关”就是我所需要的。(这只是每个相关数据库表的代码生成的类,包括执行CRUD操作的方法)。没有关于ORM和存储过程的无休止的争论,它只是工作了,并且做得很好。
发布于 2008-10-07 12:37:07
有几种常见的模式。'The patterns of enterprise architecture'的书是关于这些的很好的参考:
如果您使用ORM,例如llblgen,您可以选择自助服务或适配器。
https://stackoverflow.com/questions/178203
复制相似问题