【问题标题】:How should I structure a simple ASP.NET MVC app?我应该如何构建一个简单的 ASP.NET MVC 应用程序?
【发布时间】:2010-09-26 00:31:52
【问题描述】:

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

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

  • Controllers:只处理请求,调用相应的服务并将动作结果返回给View;
  • 模型:POCO,处理所有业务逻辑、授权等。依赖于存储库,完全不了解持久性基础设施。
  • 存储库:实现IRepository<T>,使用依赖注入,这是我的数据库代码所在的位置;只接收和返回 POCO。

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

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

想法?

【问题讨论】:

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


    【解决方案1】:

    Ian Cooper 最近对此发表了一篇很好的文章:

    The Fat Controller

    【讨论】:

      【解决方案2】:

      简单的方法:(view)使用 ASP.NET 的表示层,(controller)代码隐藏或 AJAX 服务层,(model)应用服务层、业务模型层和持久性/数据访问层。

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

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

      【讨论】:

        【解决方案3】:
        【解决方案4】:

        Rob Conery 拥有 IMO 最佳答案。

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

        【讨论】:

        • Rob Conery 的视频的问题在于,对于那些从一开始就没有关注的人来说,现在观看视频就像 30 小时一样......不容易。视频格式的另一个问题是可搜索性。我希望他通过博客文章来做到这一点。
        • 另一个问题是他在最后几集中基本上对整个项目说'meh',然后谈论 DDD,删除他的服务层,然后删除 codeplex 源并创建一个新的不同项目,他打电话给河野。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-31
        • 1970-01-01
        相关资源
        最近更新 更多