我使用VisualStudio2013MVC 5应用程序使用Razor。
我想了解各层是以什么顺序坐着并相互作用的。
在我的解决方案中:
我正在准备架构图,并想了解层之间是如何对话的。
我想命令是这样的:
**Data Access Layer -> Model -> Repository -> Business Layer -> Controller -> View**
休息在哪里?
发布于 2015-05-11 09:55:51
我想你所说的休息是指某种网络应用程序?
这应该是另一个UI层
DAL ->回购->模型/服务
-> MVC应用程序
或
-> Web.API
或
-> Windows应用程序
或
->移动应用程序
等
或者,您可以将存储库公开为API层(尽管您必须考虑安全性)
DAL -> Repo -> RepoService API -> RepoClient -> Models/BLL(即在带有web数据的移动应用程序上)
和/或如果业务逻辑由服务组成,则可以公开以下内容
这样做的目的是在更改用户界面时尽可能少地重写代码。
发布于 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项目中提取。
https://softwareengineering.stackexchange.com/questions/283486
复制相似问题