【问题标题】:What is the proper way to split a solution of a big mvc application?拆分大型 mvc 应用程序解决方案的正确方法是什么?
【发布时间】:2012-08-02 12:49:09
【问题描述】:

我正在数据库中创建一个包含 70 多个表的应用程序,它将在下一阶段增加。

我使用 Asp.net MVC:模型、实体框架、视图模型、存储库、视图、控制器、动作过滤器、引用、多语言……

这些部分在我的解决方案中的最佳位置是什么?

我已经看到了拆分解决方案的不同方法。例如:

  - Solution
        - Core.UI
            - Domain
            - UI
               - Models
            - Persistence
        - Core.Test
        - UI
            - Content
            - Controller
            - Views
            - Scripts

或者其他人说拆分成

  - Solution
        - Model
        - Entities
        - Web
        - References

或者

...

您对 DDD(领域驱动设计)有何看法?以及如何实施?你推荐它吗?


  • 我希望我的项目具有最佳灵活性最佳选择,因为 当一个项目很大时,更难改变它的结构。
  • 我想以各种形式交换信息(Web 和 html, 客户端应用程序、移动设备、xml....)
  • 我想更改和构建我的项目的基本部分 分别(现在和将来)

如果您能帮助我提供详细信息或示例。

非常感谢...

【问题讨论】:

    标签: c# asp.net-mvc model-view-controller architecture projects-and-solutions


    【解决方案1】:

    这里的关键是您希望避免耦合,以便在应用程序的整个开发过程中保持高效。为此,您需要创建一个面向服务的架构

    代替将问题分解为水平切片(层)的 n 层应用程序, 面向服务的架构取而代之的是应用程序(服务)的垂直切片。

    Start with this video by Udi Dahan如果你想学习面向服务架构的基本思想。提示:如果你已经设计了数据库,那你就走错了路。

    你想在这里阅读的两个家伙是Udi DahanGreg Young。我还推荐DDD Google Group 询问更详细的问题。 DDD 问题并不总是适合 StackOverflow 以及其他计算问题,因为它们非常细微,通常需要大量来回才能找到问题的根源。

    【讨论】:

      【解决方案2】:

      直接回答这个问题并不容易。这取决于您的业务需求、应用程序的规模等。

      Microsoft Spain 提供了一个参考实现。尽管它有一些缺点,但它仍然是一个很好的起点。如果您有足够的时间,只需决定哪些概念/模式需要哪些不需要。

      http://microsoftnlayerapp.codeplex.com/

      【讨论】:

        猜你喜欢
        • 2014-04-08
        • 2019-10-10
        • 1970-01-01
        • 2017-08-21
        • 2019-07-19
        • 1970-01-01
        • 2016-06-02
        • 1970-01-01
        • 2017-11-16
        相关资源
        最近更新 更多