现在很多公司用MVC加三层架构,实在不明白有什么优点。

eddiego 2016-06-06 06:41:30
1、现在很多公司用MVC加三层架构,原本model层用BLL读DAL来返回,我不理解这样做的优点和必要性是什么?这样程序的性能不是更差了么?工序了多了很多,优势何在呢?

2、而且还有个疑问,在这种情况下 model 层难道还是entity framework 的 code first ?还可以用vs来自动生成数据库、控制器和view视图么? 如果可以的话,这个model应该怎么写和传递呢?
...全文
20627 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_27549073 2019-03-26
  • 打赏
  • 举报
回复
当数据来源比较多的时候,如有些数据要从A网站数据库拿,有些数据要从B网站拿,有些数据要从配置文件拿。就必须有多个数据源。这个时候如果只有一层,会看起比较乱。拆分下比较好看。具体怎么拆就是个人爱好了
叫我 Teacher 周 2019-03-25
  • 打赏
  • 举报
回复
不是优点,而是适合
  • 打赏
  • 举报
回复
引用 5 楼 以专业开发人员为伍 的回复:
我们随便用现在很流行的某个“公众平台”做个例子,假设它有50个数据库表,它的对外服务文档中一共提到了120种数据输入输出名词儿概念,而它有10万家加盟的前端开发商推出了数万种网站(其中有不少使用你说的asp.net mvc)。用这个比喻就比较容易理解分层的意思。 那么此时,如果说10万个前端加盟软件开发商都是千篇一律地直接拿着人家平台文档中的 model 来做千篇一律的事情,这时候你显然就不能理解这帮乌合之众在干什么?!如果他们的 mvc 中的 m 比服务端的m 还丰富,你就能理解为什么要分层了。
学到了
紫魂一号 2019-03-15
  • 打赏
  • 举报
回复
差别还是很大的。。涉及的领域不一样。。MVC 与三层是两个概念。。。 区别最大的我觉得还是 视图和数据的处理。
吹风的兔子 2019-01-11
  • 打赏
  • 举报
回复
不要怀疑你自己。 你的问题,我曾经也想过:一个 程序集能做的,为什么非得拆成 BLL DAL,美其名曰 逻辑分层。 直到后来我发现: 怎么顺手怎么来 —— 别被束缚住了手脚。
ilikeff8 2019-01-11
  • 打赏
  • 举报
回复
三层架构很多都是跟风的,多小的项目,就一个人做,都要搞三层
而mvc是有必要的,asp.net的mvc微软会帮你搭好框架
stevenjin 2018-12-30
  • 打赏
  • 举报
回复
小项目确定感觉不出来,也没必要
niuqian___123456 2018-12-10
  • 打赏
  • 举报
回复
引用 34 楼 niuqian___123456 的回复:
[quote=引用 5 楼 以专业开发人员为伍 的回复:] 我们随便用现在很流行的某个“公众平台”做个例子,假设它有50个数据库表,它的对外服务文档中一共提到了120种数据输入输出名词儿概念,而它有10万家加盟的前端开发商推出了数万种网站(其中有不少使用你说的asp.net mvc)。用这个比喻就比较容易理解分层的意思。 那么此时,如果说10万个前端加盟软件开发商都是千篇一律地直接拿着人家平台文档中的 model 来做千篇一律的事情,这时候你显然就不能理解这帮乌合之众在干什么?!如果他们的 mvc 中的 m 比服务端的m 还丰富,你就能理解为什么要分层了。
农办sp大神[/quote] 本来我要写膜拜呢~~ [:冷汗]
  • 打赏
  • 举报
回复
可维护性强 可能可扩展性在三层中还无法体现
niuqian___123456 2018-12-10
  • 打赏
  • 举报
回复
引用 5 楼 以专业开发人员为伍 的回复:
我们随便用现在很流行的某个“公众平台”做个例子,假设它有50个数据库表,它的对外服务文档中一共提到了120种数据输入输出名词儿概念,而它有10万家加盟的前端开发商推出了数万种网站(其中有不少使用你说的asp.net mvc)。用这个比喻就比较容易理解分层的意思。 那么此时,如果说10万个前端加盟软件开发商都是千篇一律地直接拿着人家平台文档中的 model 来做千篇一律的事情,这时候你显然就不能理解这帮乌合之众在干什么?!如果他们的 mvc 中的 m 比服务端的m 还丰富,你就能理解为什么要分层了。
农办sp大神
corbyngg 2017-09-07
  • 打赏
  • 举报
回复
我刚学,理解不是很深,我就简单一个好处吧!一般的网站地址是Http://www.hao.com/index.aspx/id=2 而用MVC分层好处是网站地址是Http://www.hao.com/index/2 这样的话地址是不是美观多了。
正怒月神 2017-09-07
  • 打赏
  • 举报
回复
mvc和 三层架构本来就不冲突, 放一起使用根本没有问题。 mvc侧重点在于路由机制以及 model和view的绑定。 而三层架构,旨在业务逻辑层的处理,至于数据访问层,其实基本被ef等orm框架取代。 所以主要只是使用了 三层架构中的业务逻辑层概念。
  • 打赏
  • 举报
回复
View不能复用,到其他语言吗, 现在 主流的 是 前后端分离, 好处是: 1:就不存在View层 无法复用到 php java jsp 了因为都是html 2: 后端暴露webapi,给前端调用, 3: 前端改版不影响 后端,后端优化不影响前端,
a472544436 2017-08-03
  • 打赏
  • 举报
回复
首先你们在自顾自的写一堆又一堆的答案,一步一步往沟里带,再扯到服务端的事我就要砸鼠标了。人家是问MVC+三层这样的项目设计原理?大部分人在扯MVC的优势,三层的优势并不在客户端,从来没有人说过三层结构客户端就速度快一点或者安全一点怎么怎么滴,相反速度还会慢,他是纯粹为开发者设计的,为了今后好修改代码,理清代码条理,当你用MyEclipse就会发现用三层的明显好处,VS编辑器确实代码就比较工整。MVC不仅仅是UI层面,其实控制器已经在处理数据,从头到尾只是数据逻辑,楼上说UI我就看不下去了,跟UI有一毛钱关系没有,相反,你还看不到UI界面,比及传统的WEB设计,界面工具更糟,你根本看不到Disign视图,而是像WebStorm一样对HTML要求比较高,还要你熟悉他的CSS文件,MVC强制把输入、输出、数据处理分开,他是在降低耦合性,做三层一样有利开发者的事情。耦合性这么高大上的词意思就是块与块的关系,代码文件之间的逻辑,三层是在增加逻辑,MVC是要优化逻辑,逻辑多了未尝是好事。
yanchangshan 2017-05-22
  • 打赏
  • 举报
回复
我感觉公司内部应用 用MVC 好 清晰干净 外部特别是大型网站 用三层比较好 更强调性能 带清晰
Decated 2017-04-08
  • 打赏
  • 举报
回复
个人浅见,刚学mvc时候,一直以为mvc和三层的model是一样的(>﹏<)。但后来发现mvc的model是视图模型,也就是为了前端更好地展示数据和更好地关注分离,换句话说,三层的model代表实体,为了在各层传输数据,而mvc的model可以把传来的数据进行组合,变成你想要展示的数据,所以通常说mvc其实是属于web层,它就相当于把 webform的前后端分离开,让开发人员更好地关注分离,也因此单元测试会比webform更加容易。个人感觉比webform更舒服。如果用三层,直接mvc就跟你webform直接写后台差不多也能完成相应的功能。
我是三峡移民 2017-02-16
  • 打赏
  • 举报
回复
上面字好多懒得看,谈谈我的理解,还有一个实体层,实体跟DLL反射机制连接起来,bll做DLL接口,而UI层是没有的,一般现在的做法是,带实体层,实体就相当于数据库里面的表,而一般来说光用一个实体是不够的,这时候需要用到model,要那些写那些在加上主实体,至于优点,这个得谈跟3层跟2层的关系了,肯定是有优点的,分离开之后减少代码改动量,业务逻辑更清晰,不用3层加mvc,数据库操作与业务逻辑混合,又变成2层了,这个网上有3层跟2层的区别
wanghui0380 2017-02-16
  • 打赏
  • 举报
回复
其实这就是我们这行目前的状态,“推广”的东西具备一定的思想和要领,但不具备实战性,而实战的东西又没办法推广(因为实战的东西,“难看”----因为实战上没什么不能用,跟“地痞无赖”一样)
wanghui0380 2017-02-16
  • 打赏
  • 举报
回复
最近看了腾讯的一个采访,主要是讲“中国武术”滴,是一个真正的太极拳传人 其中有一段可以适用你这个题目 问:“太极拳到底是不是武术,是否有实战性” 答:“太极拳是武术,具有实战性。大家现在看到的是大架太极操,而实战用的是小架太极拳(小架太极拳依然是刚猛,迅速),武术(拳术)都讲究个人素质,但练拳讲究练和用两部分。练适合推广,讲究标准和是否推广,他不具备实战行,主要是推广和动作标准,让人掌握动作要领和(本拳种)发劲要领,而“用”部分则是在上面的基础上,随机应变,灵活处理,讲究个人体悟,个人素质,不要认为这人实战看上去跟泰拳,跆拳道一样刚猛就不是太极,只要他的发劲要领是太极就是太极,真正实用太极拳依然无所不用其极,只是思维和发劲不是太极。”(太极是懂劲,化劲,不是硬挡,硬拦。) 回到你的问题,mvc和3层其实是一样的道理,推广上是那么推广,实战上则是无处不mvc(现在js都流行mvc,mvvm,在你asp.net mvc看来mvc是这个样子滴,但是真正实战的人认为,哪里不能mvc??) 同样推广那是3层,而真正实战的人认为那里不是分层??
ProjectDD 2017-02-16
  • 打赏
  • 举报
回复
那种的确是sb做法,那种标准3层 是cs 上用到的,现在 mvc 是 bs 根本不需要,只要把 model 独立出来 成一个或若干个类库,把业务逻辑独立出来 就可以了
加载更多回复(21)

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧