我是否需要使用DDD,工作单元,存储库或类似的简单网络应用程序?

时间:2010-12-07 19:33:21

标签: entity-framework c#-4.0 repository-pattern ddd-repositories

我正在使用.net4(c#)开发一个简单的eCart系统。我一直在阅读有关工作单元模式,存储库模式和持久性无知的大量内容。我认为我掌握了以这种方式构建我的图层的策略和好处,但对于我的简单应用程序,我想知道是否有必要以及是否有人可以指出我的范围的良好架构。

如果我错了请纠正我 - 使用存储库的主要好处是创建更少的数据库访问并将应用程序体系结构与数据库体系结构分开。 IE - 对数据库性能有利并不总是对应用程序设计有利,所以最好设计两者最适合的,然后在两者之间创建一个接口。

所以这是问题 - 我希望发生的任何业务事务一发生就会保存到数据库中,因此在存储库中排队数据似乎没有意义然后立即保存。为什么不直接保存?

我缺少DDD的其他好处还是过度工程化为每个出现的简单项目构建如此强大的架构?谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

需要使用[在这里插入模式]:不是当它出现时,最好的做法总是让你的应用程序完成,并满足时间,金钱和技术要求。

但是如果您采用“让我们完成它”的方法,那么请注意您可能会遇到的Technical Debt

还有很多理由使用其中一些模式(并且它们并不总是与性能有关),尤其是工作单元模式。这更多地与ORM等常见的要求和限制有关。这些问题可能有点复杂,但我怀疑当你开始实现其中的一些事情时,你会开始意识到这些问题是什么,并开始理解为什么这些模式是有用的。

答案 1 :(得分:0)

同意CodingGorilla。除非与YAGNI冲突,否则模式很棒。

如果需要立即写入每个事务(也就是说,如果两个用户的操作之间存在潜在争用),那么您将需要一个排队机制,或者您可以使用您可能正在使用的任何数据存储库的基础事务机制(例如SQL)