具有 N 层架构的 MVC

MVC With N-Tier Architecture

我一直在文章和问题之间跳来跳去,但我似乎找不到我想要的信息。

当我开始学习 MVC 时,教程和文章指出:
*模型:是您的业务逻辑所在
*控制器:是数据访问和处理 request/respond 发生的地方。

我使用 MVC 已经有一段时间了,我想将一个旧的简单项目迁移到 MVC。在项目中,我有一个业务和数据访问层。 在阅读了 N-Tier MVC 架构之后,我的理解发生了变化。

我通常认为是业务领域的模型现在已更改为更多的取决于视图的演示文稿。模型确实反映了业务实体,但它充当了业务实体之上的另一层。

所以我的问题如下:假设我有一个 MVC 项目和另外两个项目,业务和数据访问。这样的关系对吗?

*一个模型,其大部分属性与其相应的业务实体相同。
*控制器将调用数据访问层来检索数据,数据将作为业务对象返回,业务对象将映射到模型中,然后返回到视图中。

  1. 模型并不总是对应于业务实体。因为 MVC 中的模型用于反映将发送给视图的实体。所以它们可能比域业务实体更简单一些。您的域模型将映射到 mvc 模型是正确的。
  2. 第二种说法我 100% 同意。

Is the relation in this manner right ?

My answer is that depends on your project scale and team size, But let me explain you my projects architecture.

  • MVC:表示层,是应用程序的启动项目。
  • Common:这是一个class库,包含一组核心classes,例如helpers,base classes , ... 这个项目被引用到所有其他项目。
  • Repositories: 为了读取和写入数据库,我创建了一个项目并将其命名为 repositories。该项目是存储库和工作单元模式的组合。实施这些模式有助于使您的应用程序免受数据存储更改的影响。
  • 测试:单元测试写在这个项目中。

希望对您有所帮助。