2014-09-27 131 views
0

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

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

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

2型
表示层:一切都在MVC除了模型
业务层:单独的模型出来
数据访问层:数据库本身

回答

1

它更像是这样的:

  • 介绍层:与MVC
  • 业务层:一个单独的 核心域模型(它 MVC中的 'M')。它可能包括一个服务 层,以提供一个干净的界面模型。
  • 数据层: 数据库

MVC本身只是一个表现层 - 具体模式,ASP.NET MVC是简单地创建的Web UI的框架。

在MVC模型也被称为视图模型,这意味着它的唯一责任是对查看模型;它在控制器查看之间传输数据以保持它们的解耦。 不要将MVC中的模型与适用于业务层的域模型模式混淆。

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

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

+0

我添加了一个链接到相关的电子书从微软 - 它是免费提供的 – astreltsov 2014-09-28 03:24:30

0

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

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

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

模型类也在此第二个项目中充当链接到表示层的业务对象层。

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

此外,我们有一个服务组合类,根据需要生成所有或任何特定的服务。 - 我也将这与业务逻辑层相关联。

对于我们所做的,这个工程很好。

+1

这混淆了[图层和层](https://stackoverflow.com/questions/120438/whats-the-difference-between-layers -and-层) – astreltsov 2014-09-28 03:18:46