2013-04-28 48 views
2

我知道在MVC它是很好的利用工作类的存储库模式和单位在ASP.net MVC项目的设计模式。(在业务层业务逻辑。)MVC 4与工作模式的存储库和单位

我的问题是,我是由微软推出的MVC 4新手。我在MVC 4环境中也应用了上述提到的模式(存储库和工作单元),是否在该设计模式下启动我的项目是一个好方法。

在MVC中,我需要满足其他类型的模式为大型MVC项目。

任何人都可以了解MVC 4,请发表评论,认为高度赞赏。

回答

5

只是因为Repository模式是在每一个教程中,并不意味着它是一个事实上的标准,解决了MVC世界的问题。

首先,您需要了解您的应用程序的复杂性。存储库可能会给应用程序增加不必要的复杂性.BTW您没有提及如何与数据库交谈。如果您计划使用任何ORM工具(如Nhibernate,Entity框架),那么你已经有了一个很好的抽象。为什么你需要更多的抽象层次。

上有很多争论是否要使用存储库patterns.Here有一些很好的解释

Do we need Repository ?

Life without repositories - Ayende

所有著名ORM工具自带的模式来实现你已经提到(工作单位和存储库)。

+0

正如我在我的描述提及。他们在安排这些教程的同时安排与微软的会议。你应该检查'Dan Whalin'和'John Papa'背景。他们是“微软MVP”。 “Scott Guthrie”也推荐他们(在他们的会议期间)。 – 2013-04-28 07:08:48

+0

我不是反repository.I已经用它自己并没有真正受益much.If使用ORM工具,你可以嘲笑他们。 – 2013-04-28 07:16:17

+0

+1在跳跃到任何当前的流行词之前促进思考。 – 2013-04-28 07:16:21

7

“在mvc中很好地使用存储库模式和工作单元类” - 这是非常值得怀疑的,虽然说像“被认为是今天最好的模式之一”是明显错误的:模式只是好的或在某些情况下是不好的,如果没有它,你无法确定它们是否是好的选择。

一个问题:“我应该使用哪种模式”不先思考你需要编写应用程序的细节开始是一种安全可靠的方式来创建一个过度设计的应用程序。

存储库和UoW已被Domain driven design推广,如果沿着这条路走下去,它们会很有意义。 DDD对于某些应用程序来说是非常好的方法,但我认为这不是大多数应用程序。许多网络应用程序只是CRUD应用程序,它们不会受益于DDD或包装对存储库中实体的每次访问 - 例如,在这里选择一个微型ORM通常是一个更为理想的方法。

如果你仍然确定你的应用真的需要这种方法,而不是自己实现所有这些东西,我建议使用像NHibernate这样的框架,因为你需要更多的只是UoW和回购 - 他们需要标识映射实施等NHibernate的提供了很多的东西开箱即用(例如它Session类型实际上是UOW的优秀执行加得多),而且涵盖了许多细节,你只能找到一个你需要进入实施的细节后一次你自己的版本。实体框架也可能是一个很好的选择,虽然它不是我最喜欢的。

当然,编写自己是延长你的知识的好方法,但如果你需要这个生产应用程序,你会通过挑选现有的实现节省了大量的时间,金钱和头痛。

+1

非常感谢您提出宝贵的意见。但我确切的问题是,设计模式适用于MVC 4环境? – Prageeth 2013-04-28 10:35:23

+2

模式对环境来说不是好的/坏的,它们对应用程序来说不好/不好。当然,这些模式可以在ASP.NET MVC应用程序中非常成功地使用,但它们也可能是相当糟糕的选择。我个人有时会使用它们,有时我不会。当我的应用程序不符合要求时,我也被过度设计我的应用程序所烧毁。 – 2013-04-28 11:57:00

+0

感谢您的回复它真的有帮助的答案。 – Prageeth 2013-04-28 13:17:17