MVC体系结构
问题描述:
我知道类似的问题已经发布过,但我有具体的要求,使我可以找到没有答案。MVC体系结构
该项目想要有一个典型的3层架构,但他们希望数据层被抽象为实体框架,表示层为MVC 2,应用层为简单类库。
这些组件(EF和MVC)是否适合该体系结构?
注意:该项目将遵循TDD方法。
任何帮助表示赞赏。
答
绝对。
ASP.NET MVC Web应用程序的任何优秀演示/文章均遵循此体系结构。
通常您的解决方案应该是这样的:
YourProject.Model
(类库与POCO的 - 域对象)
YourProject.Repository
(类库与实体框架)。
YourProject.Services
(类库作为库和控制器之间的中介)
YourProject.MVC
(MVC2 Web应用程序)
YourProject.Tests
(单元测试项目 - 每层通常为1个项目)
回答您的问题,Repository从其他模块抽取数据,表示层为MVC2,应用层可以内置到Services模块中,或者完全具有另一个模块。
当然,MVC与TDD非常吻合,您可以模拟您的控制器并测试类库,就像测试任何类库一样。
查看Rob Conery的MVC店面系列www.asp.net - 最佳视频系列之一曾见过。
祝你好运!
答
您应该看看ASP.NET MVC网站上的八节教程的ContactManager示例,它使用存储库类实现,因此数据层被抽象化。
因此,我的模型将在'YourProject.Model'中,因此MVC应用程序中的Models文件夹可以被清空/删除,并且我将ModelBinding添加到POCO的?最后,DataAnnotation属性也会出现在我的POCO上? – user295368 2010-08-12 23:51:46
我喜欢将MVC中的模型文件夹添加到ViewModels(组合域对象以简化视图)。你可以在你的POCO上使用DataAnnotations,唯一的问题是你必须引用System.Web.Mvc程序集 - 有些人不喜欢这个,但我个人没有看到它的问题。仅仅因为你添加了一个通常在Web层上使用的程序集的引用,并不一定意味着你违背了任何架构主体。 – RPM1984 2010-08-13 00:08:42