0

我想知道在asp.net mvc中实现三层架构是什么意思?

我看过很多关于这个的帖子,都是这样提到的。但我很困惑。是否将 MVC 模型分离到另一个称为业务层的解决方案,称为在 mvc 中实现三层架构?如果不是,在 mvc 中实现三层架构的正确方法是什么?

类型 1
表示层:来自 MVC 模式的“控制器和视图”。
业务层:来自 MVC 模式的“模型(数据)”。
数据访问层:原始数据访问层。

类型 2
表示层:MVC 中除模型之外的所有
内容 业务层:将模型分离出来
数据访问层:数据库本身

4

2 回答 2

2

它更像是这样的:

  • 表示层:与 MVC 相关的所有内容
  • 业务层:一个单独的 核心域模型(它不是MVC 中的“M”)。它可能包括一个服务层,以在域模型上提供一个干净的接口。
  • 数据层:数据库

MVC本身只是一个表示层特定的模式,而 ASP.NET MVC 只是一个用于创建 Web UI 的框架。

MVC 中的模型也称为View Model,这意味着它的唯一职责是对View建模;它在ControllerView之间传输数据以保持它们的解耦。不要将 MVC 中的模型与适用于业务层的领域模型模式混淆。

将业务逻辑放入 MVC 视图模型可能适用于更简单的问题或原型,但它不会是他们所谓的三层系统。

Microsoft 应用程序架构指南- Microsoft 提供的免费电子书,介绍如何设计和构建您的解决方案等等。

于 2014-09-27T17:23:09.283 回答
0

我还没有看到带有 MVC 的 3 层架构的最佳选择。这真的归结为最适合你的东西。在分享我们如何实现 MVC 架构时,它可能不是最好的,但今天最好的方法,明天将是第二好的方法。

Web UI 项目包含视图和控制器——表示层

在一个单独的项目中,创建由控制器调用的服务类——业务逻辑层。

模型类也在第二个项目中,用作链接到表示层的业务对象层。

需要与数据库进行任何交互的任何服务都位于第二个项目中的单独类中。--数据访问层。

此外,我们有一个服务组合类,可以根据需要生成所有或任何特定服务。——我也会把它与业务逻辑层联系起来。

对于我们所做的,这很有效。

于 2014-09-27T19:43:04.477 回答