我应该如何构建一个简单的ASP.NET MVC应用程序?

时间:2008-12-09 10:06:57

标签: asp.net-mvc model-view-controller architecture repository-pattern poco

我一直在阅读有关ASP.NET MVC,SOLID等的一些内容,我正在尝试为中小型ASP.NET MVC应用程序找出一个简单的“配方”来放置这些概念一起;我最关心的问题是结果是控制器过于复杂,就像webforms中的代码隐藏文件一样,所有类型的业务逻辑都包含在其中。

我正在考虑以下架构,用于小型数据驱动的应用程序:

  • 控制器:仅处理请求,调用适当的服务并将操作结果返回给View;
  • 模型:POCO,处理所有业务逻辑,授权等。取决于存储库,完全不了解持久性基础架构。
  • 存储库:实现IRepository<T>,使用依赖注入,是我的db代码所在的位置;只接收并返回POCO。

我正在考虑在控制器和模型之间提供服务,但如果它们只是传递方法调用,我不确定它会有多大用处。

最后应该有包含模型代码的单元测试,以及覆盖存储库代码的单元+集成测试(如果可能的话,遵循“红绿”练习)

思想?

4 个答案:

答案 0 :(得分:8)

Ian Cooper最近发表了一篇好文章:

The Fat Controller

答案 1 :(得分:3)

简单配方:(查看)使用ASP.NET的表示层,(控制器)代码隐藏或AJAX服务层,(模型) Application Services层,业务模型层和Persistance / Data Access层。

当然,为了构建一个清晰易读且易于理解的应用程序,您可以通过多种方式来处理复杂性。

最近关于这个主题的讨论,我发现它非常好,请查看这本新出版的书:Microsoft .NET: Architecting Applications for the Enterprise

答案 2 :(得分:2)

答案 3 :(得分:2)

Rob Conery有最好的答案IMO。

查看他的MVC Storefront Application,其中包含完整的source codevideo tutorials