我一直在阅读有关ASP.NET MVC,SOLID等的一些内容,我正在尝试为中小型ASP.NET MVC应用程序找出一个简单的“配方”来放置这些概念一起;我最关心的问题是结果是控制器过于复杂,就像webforms中的代码隐藏文件一样,所有类型的业务逻辑都包含在其中。
我正在考虑以下架构,用于小型数据驱动的应用程序:
IRepository<T>
,使用依赖注入,是我的db代码所在的位置;只接收并返回POCO。我正在考虑在控制器和模型之间提供服务,但如果它们只是传递方法调用,我不确定它会有多大用处。
最后应该有包含模型代码的单元测试,以及覆盖存储库代码的单元+集成测试(如果可能的话,遵循“红绿”练习)
思想?
答案 0 :(得分:8)
Ian Cooper最近发表了一篇好文章:
答案 1 :(得分:3)
简单配方:(查看)使用ASP.NET的表示层,(控制器)代码隐藏或AJAX服务层,(模型) Application Services层,业务模型层和Persistance / Data Access层。
当然,为了构建一个清晰易读且易于理解的应用程序,您可以通过多种方式来处理复杂性。
最近关于这个主题的讨论,我发现它非常好,请查看这本新出版的书:Microsoft .NET: Architecting Applications for the Enterprise。
答案 2 :(得分:2)
这些演练非常有用:
MVC Framework and Application Structure
Walkthrough: Creating a Basic MVC Project with Unit Tests in Visual Studio
答案 3 :(得分:2)
Rob Conery有最好的答案IMO。
查看他的MVC Storefront Application,其中包含完整的source code和video tutorials。