我想知道在asp.net mvc中实现三层架构意味着什么?
我已经看过很多关于此的帖子,这些都是以这种方式提到的。但我很困惑。 是否将MVC Model分离到另一个名为Business Layer的解决方案,称为在mvc中实现三层架构?如果没有,在mvc中实现三层架构的正确方法是什么?
输入1
演示层:MVC模式中的“控制器和视图”
业务层:MVC模式中的“模型(数据)”
数据访问层:原始数据访问层。
类型2
演示层:除模型外,MVC中的所有内容
业务层:将模型分离出来
数据访问层:数据库本身
答案 0 :(得分:1)
更像这样:
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进行交互的服务都在第二个项目的不同类中。 - 数据访问层。
此外,我们还有一个服务组合类,可根据需要生成所有或任何特定服务。 - 我还将此与业务逻辑层联系起来。
对于我们的工作,这很有效。