ASP.NET中MVC的理解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET中MVC的理解相关的知识,希望对你有一定的参考价值。

我想问下MVC和三层架构直接有什么区别,我已经做过关于三层架构的项目了,还想对MVC了解下,我自己看百度知道的东西不是很理解,有简单的话说下你的理解吧,回答的我满意我再给100分,别给我复制一段话
说清楚下你的理解,复制百度的就别给我回答了,我看的没意思,还是不太懂,最好能有个例子

MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

MVC模式最早由Trygve Reenskaug在1974年[1]提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:
(控制器Controller)- 负责转发请求,对请求进行处理。
(视图View) - 界面设计人员进行图形界面设计。
(模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
MVC模式的缺点是由于它没有明确的定义,所以完全理解MVC模式并不是很容易。使用MVC模式需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。开发一个MVC模式架构的工程,将不得不花费相当可观的时间去考虑如何将MVC模式运用到应用程序中,同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。另外由于MVC模式将一个应用程序分成了三个部件,所以这意味着同一个工程将包含比以前更多的文件。
MVC模式的缺点是由于它没有明确的定义,所以完全理解MVC模式并不是很容易。使用MVC模式需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。开发一个MVC模式架构的工程,将不得不花费相当可观的时间去考虑如何将MVC模式运用到应用程序中,同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。另外由于MVC模式将一个应用程序分成了三个部件,所以这意味着同一个工程将包含比以前更多的文件
过去MVC模式并不适合小型甚至中等规模的应用程序,这样会带来额外的工作量,增加应用的复杂性。但现在多数软件设计框架,能直接快速提供MVC骨架,供中小型应用程序开发,此问题不再存在。对于开发存在大量用户界面,并且逻辑复杂的大型应用程序,MVC将会使软件在健壮性、代码重用和结构方面上一个新的台阶。尽管在最初构建MVC模式框架时会花费一定的工作量,但从长远的角度来看,它会大大提高后期软件开发的效率。
参考技术A MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

MVC模式最早由Trygve Reenskaug在1974年[1]提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:
(控制器Controller)- 负责转发请求,对请求进行处理。
(视图View) - 界面设计人员进行图形界面设计。
(模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
MVC模式的缺点是由于它没有明确的定义,所以完全理解MVC模式并不是很容易。使用MVC模式需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。开发一个MVC模式架构的工程,将不得不花费相当可观的时间去考虑如何将MVC模式运用到应用程序中,同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。另外由于MVC模式将一个应用程序分成了三个部件,所以这意味着同一个工程将包含比以前更多的文件。
MVC模式的缺点是由于它没有明确的定义,所以完全理解MVC模式并不是很容易。使用MVC模式需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。开发一个MVC模式架构的工程,将不得不花费相当可观的时间去考虑如何将MVC模式运用到应用程序中,同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。另外由于MVC模式将一个应用程序分成了三个部件,所以这意味着同一个工程将包含比以前更多的文件
过去MVC模式并不适合小型甚至中等规模的应用程序,这样会带来额外的工作量,增加应用的复杂性。但现在多数软件设计框架,能直接快速提供MVC骨架,供中小型应用程序开发,此问题不再存在。对于开发存在大量用户界面,并且逻辑复杂的大型应用程序,MVC将会使软件在健壮性、代码重用和结构方面上一个新的台阶。尽管在最初构建MVC模式框架时会花费一定的工作量,但从长远的角度来看,它会大大提高后期软件开发的效率。
参考技术B 楼上的是错的,MVC不是三层。

三层架构中,DAL(数据访问层)、BLL(业务逻辑层)、UI(显示)层各司其职,意在职责分离。
MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的显示层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;而C层直接与三层中的BLL进行对话。追问

到底什么区别了,你还是没表达清楚

追答

首先你要知道三层跟MVC根本不是一个东西

三层是将整个业务由数据到逻辑处理到显示分离开来,体现高内聚,低耦合。

MVC是一个设计模式,用来强制性的使应用程序的输入、处理和输出分开。

追问

MVC是一个设计模式,用来强制性的使应用程序的输入、处理和输出分开。
MVC是设计模式,那么实现的时候怎么实现的?还是不太明白

追答

你想要单独按照MVC模式来做应用程序那可难了,不过现在大都提供了现成的MVC框架,比如微软的MVC3。

想理解MVC,建议你去看看headfirst的设计模式,或者国人写的大话设计模式,或者最经典的GOF的设计模式。

追问

MVC就是设计模式吗?我现在学了观察者的和策略的,其他的还在慢慢学习,现在就是想了解多一点MVC的知识,马上就要找工作了,感觉这个还是不太了解

追答

MVC最复杂的复合型设计模式之一,建议你好好看看那几本书,MVC是依据其他模式建立起来的。如果不懂设计模式的话,找工作估计也会难一点吧,至少你要知道MVC里面包含了那几种模式....

追问

MVC是不是所有的设计模式都包含进去了,您能不能介绍下包含了哪一些设计模式呀?

追答

当然不是了........
视图和控制器:策略模式
视图中的显示:组合模式
模型:观察者模式

追问

还利用到了其他的什么模式吗,这几个模式我都有所了解

追答

没有,就这几个

本回答被提问者采纳
参考技术C MVC其实就是三层架构, M是指Model, 模型, 其实就是实体类, V是指View视图, 就是界面层, C是指Controller控制, 就是逻辑层 参考技术D mvc中的View,Controller(也可包括Model,也可单独作为Model层)就是三层结构中的表示层

以上是关于ASP.NET中MVC的理解的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET中MVC的理解

理解ASP.NET MVC

初步理解MVC

理解ASP.NET MVC的DependencyResolver组件

ASP.NET MVC

深入理解 ASP.NET MVC 上的 async/await