MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式。它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。既然是一种“模式”,在我看来,它就同设计模式一样,解耦,封装,实现软件的灵活,复用和扩展。
自己对MVC理解得还很浅显,如果非要把MVC和三层联系到一起的话,我认为View和Controller更像是UI层,Model中可以有BLL,DAL,Entity,只是个人理解。
在Web开发中,界面会因为需求变化,经常改动,而业务逻辑的更改不多。即界面显示上的变动>业务逻辑变动。
原来建一个ASP.NET Web窗体应用程序:
页面的aspx页面对应一个aspx.cs类,是耦合在一起的,如果我们想从页面的服务器控件上获取值,则需要在它对应的cs文件中写控件名.的形式,这样当界面上更改了,代码中也得跟着改,要不就得新建一个窗体,把不变的部分Copy过来。
在MVC中:
.aspx文件和cs文件是分离的,一个控制器对应一组页面,比如,Index页面有变化,我们可以再新建一个页面Index,把原来的删掉,而控制器中的Index方法中的逻辑不需要改变;也可以建一个不同名字的页面,如MyIndex,然后在原来的Index方法,修改Return View,默认情况下,返回的View是和方法同名的,但是允许返回不同视图。不过这样,就不符合开闭原则了吧。
访问方式:
WebForm是在服务器的物理地址中查找具体的某个页面
MVC是查找Controller下的某个方法
其他:
在WebForm中,对于一个页面,我们可以右击浏览该页面,或这是该页面为启动项,但是在MVC中,我们要浏览某个页面,只能在地址栏中输入地址。而设置启动项,则需要在Global.asax中的路由中设置。
在WebForm中,我们是将控件直接拖到页面上,而在MVC中我们需要手写Html代码,不过在MVC中,还有HtmlHelper,这就轻松多了。
这篇文章简要介绍了MVC,以及它和WebForm的区别。自己对二者的理解,还只是表面的东西,通过看别人的博客,了解到二者各有优缺点,以下链接,可以供大家参考。
http://www.cnblogs.com/wlb/archive/2009/12/07/1618954.html
原文地址:http://blog.csdn.net/u010924834/article/details/41307891