最近一直在学习研究MVC,由于以前都是用三层架构的思想去开发,习惯了使用WebForm,从而觉得从开发角度来说MVC貌似减慢了开发的速度,内部结构复杂,不容易理解,MVC的使用增加的项目的运行效率,提高了运行速度。下面总结一下关于MVC的相关内容,一部分也是在网上查阅资料得到的:
MVC(Model View Controller)的概述:
模型(Model):应用对象。
模型是应用程序的主体部分。 模型代表了业务数据和业务逻辑; 当数据发生改变时,它要负责通知视图部分;一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。
视图(View):数据的展现。
视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。
控制器(Controller):逻辑处理、控制实体数据在视图上展示、调用模型处理业务请求。
MVC与WebForm的优缺点对比:
WebForm优点
支持事件模型开发,得益于丰富的服务端组件,WebForm开发可以迅速的搭建Web应用
使用方便,入门容易
控件丰富的WebForm
WebForm缺点
封装太强,很多地层东西让我们初学者不是很明白 ;
入门容易,提升很难;
复杂的生命周期模型学习起来并不容易;
控制不灵活 ;
ViewState处理;
异步请求每个请求后台都必须有一个一般处理程序对应;
跟传统的Web开发方式不一致;
MVC优点
1)很容易将复杂的应用分成M,V,C三个组件模型,通过Model,View和Controller有效的简化了复杂的架构, 体现了很好的隔离原则 ;
2)因为没有使用Server-Based forms。所以我们程序员控制的更加灵活,页面更加干净;
3)可以控制声称自定义的url,对于seo友好的url更是不在话下;
4)强类型的view实现,更安全,更可靠,更高效;
5)让web开发可以专注于某一层,更利于分工配合使用与大型架构开发 ;
6)MVC下面对异步处理更进一步很好的支持 ;
7)校验非常高 ;
8)表单提交的时候,提供自动装配的功能;
9)微软提供的全局的过滤器;