首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >了解MVC应用程序中的层是如何分开的

了解MVC应用程序中的层是如何分开的
EN

Software Engineering用户
提问于 2015-05-11 09:33:07
回答 2查看 4.8K关注 0票数 3

我使用VisualStudio2013MVC 5应用程序使用Razor。

我想了解各层是以什么顺序坐着并相互作用的。

在我的解决方案中:

  1. UI层(主要项目)-由模型、视图和控制器组成
  2. 数据访问层(类库)--包含通用存储过程方法和连接类
  3. 存储库(类库)-包含数据访问代码(创建/更新/删除)
  4. 业务层(类库)-包含业务验证
  5. 单独的休息层

我正在准备架构图,并想了解层之间是如何对话的。

我想命令是这样的:

代码语言:javascript
运行
复制
**Data Access Layer -> Model -> Repository -> Business Layer -> Controller -> View**

休息在哪里?

EN

回答 2

Software Engineering用户

发布于 2015-05-11 09:55:51

我想你所说的休息是指某种网络应用程序?

这应该是另一个UI层

DAL ->回购->模型/服务

-> MVC应用程序

-> Web.API

-> Windows应用程序

->移动应用程序

或者,您可以将存储库公开为API层(尽管您必须考虑安全性)

DAL -> Repo -> RepoService API -> RepoClient -> Models/BLL(即在带有web数据的移动应用程序上)

和/或如果业务逻辑由服务组成,则可以公开以下内容

这样做的目的是在更改用户界面时尽可能少地重写代码。

票数 1
EN

Software Engineering用户

发布于 2015-05-11 13:09:11

第一,MVC有3层。模型、视图和控制器。试图使BLL或n-Teir层适合是不太好的工作。

M-模型,这是您“访问和存储”您的数据的地方。

View,这是您呈现或表示数据的地方。

控制器,这是让视图告诉您的模型如何/通过视图呈现什么的胶水。

在现代web应用程序中,实际上有几个应用程序在工作。

DAL可能是一个MVC应用程序,模型是表,视图是存储过程的输出,控制器是存储过程本身。

"Repository“可以是MVC应用程序,其中模型是从DAL应用程序检索数据后存储数据的类对象。控制器将是任何逻辑,您必须选择什么需要从DAL。例如,视图将是一个公开的webservice。

等等..。

基本上,看起来您的项目(或您的理解)没有正确地使用MVC。MVC并不总是最好的工具。有时好的老恩蒂尔是“更好”。

多MVC应用程序的一个很好的例子:

提供移动应用程序和Javascript/HTML应用程序的Web服务。

web服务将有自己的MVC,由数据库/存储访问组成的模型。视图是提供的web服务json/xml。控制器是身份验证逻辑,服务器端验证。

Mobile应用程序将是一个MVC应用程序,模型是从web服务中检索数据的类。控制器是帮助将web服务数据转换为视图的类。视图是呈现的XML (android)或nib (iOS)文件。

JS/HTML应用程序将与移动应用程序的结构相同。模型是从web服务获取/保存数据的部分。控制器是“解析”数据的类,视图是呈现HTML的对象。

试图让n-teir适应MVC术语的主要问题是,它们并不完全是可比较的。您的业务逻辑应该在两个位置。控制器(如果控制的话)或模型(如果是验证的话)。DAO适合控制器(选择* where x=1)和模型(CRUD)。视图和UI几乎是一样的。但是UI/BLL/DAO不同于MVC。你应该尝试选择一种方法,并使用它,而不是试图将两者结合起来。

另外,为了确保用户界面不能是一个完整的项目,也在谈论同样的事情。我假设您有一个UI项目,它可以是一个MVC应用程序,模型可以从DAO项目中提取。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/283486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档