asp.net mvc中的三层架构

时间:2014-09-27 11:51:52

标签: asp.net-mvc design-patterns architecture three-tier

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

我已经看过很多关于此的帖子,这些都是以这种方式提到的。但我很困惑。 是否将MVC Model分离到另一个名为Business Layer的解决方案,称为在mvc中实现三层架构?如果没有,在mvc中实现三层架构的正确方法是什么?

输入1
演示层:MVC模式中的“控制器和视图” 业务层:MVC模式中的“模型(数据)” 数据访问层:原始数据访问层。

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

2 个答案:

答案 0 :(得分:1)

更像这样:

  • 演示文稿层:与MVC相关的所有内容
  • 业务层:单独的 核心域模型(它是来自MVC的'M')。它可能包括一项服务 图层,以提供域模型上的干净界面。
  • 数据层: 数据库

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

MVC中的模型也称为视图模型,这意味着它的唯一责任是建模 View ;它在 Controller View 之间传输数据,以使它们分离。 不要将MVC中的模型与适用于业务层的域模型模式混淆。

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

Microsoft Application Architecture Guide - 来自Microsoft的免费电子书,介绍如何设计和构建解决方案等等。

答案 1 :(得分:0)

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

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

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

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

任何需要与db进行交互的服务都在第二个项目的不同类中。 - 数据访问层。

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

对于我们的工作,这很有效。

相关问题