MVC实在便是一种软件架构模式,也便是我们常常说的设计模式。个中紧张包括三个模块,便是如MVC名字所显示的那样:模型(Model),视图(View),掌握器(Controller);
什么是WebForm?ASP.NETWebform供应了一个类似于Winform的事宜相应GUI模型(event-drivenGUI),隐蔽了HTTP、HTML、JavaScript等细节,将用户界面构建成一个做事器真个树构造控件(Control),每个控件通过ViewState保持自己的状态,并自动把客户真个js事宜和做事器真个事宜联系起来。这种做法使得开拓WinForm和WebForm程序具有附近的开拓体验,填平WinForm开拓(有状态、面向工具的)和WebForm开拓(无状态、面向HTML的)之间的鸿沟;
WebForm网站:

MVC网站:
浏览器向做事器发送Request要求报文;做事器真个IIS相应Request要求;.NET FramWork根据路由配置,解析URL,并创建FirstPage类的工具,并调用相应的Default方法;然后会访问视图文件夹下的Default.cshtml,返回给浏览器(个中包括html,css,js等等);Webform的优缺陷WebForm 优点1、支持事宜模型开拓。得益于丰富的做事器端组件,webfrom开拓可以迅速的搭建web运用;
2、利用方便,入门随意马虎;
3、控件丰富;
WebFrom 缺陷1、封装太强,很多底层东西让我们初学者不是很明白;
2、入门随意马虎,提升很难;
3、繁芜的生命周期模型学习起来并不随意马虎;
4、掌握不灵巧;
5、ViewState处理;
MVC的优缺陷MVC优点1、很随意马虎将繁芜的运用分成M、V、C三个组件模型。通过model、view和controller有效的简化了繁芜的架构,表示了很好的隔离原则;
2、由于没有利用server-based forms 。以是我们程序员控 制的更加灵巧,页面加干净;
3、可以掌握天生自定义的url。对付seo友好的url更是不在话下;
4、强类型View实现,更安全、更可靠、更高效;
5、让web开拓可以专注于某一层,有利于开拓中的分工,更利于分工合营适用于大型架构开拓;
6、很多企业已经利用MVC作为项目开拓框架,招聘明确哀求熟习MVC开拓模式,我现在做的项目架构便是mvc+ef+wcf+…
7、松耦合、易于扩展和掩护;
8、有利于组件的重用;
9、ASP.NET MVC更好的支持单元测试;
10、在团队开拓模式下表现更出众,MVC 代码和页面彻底分离,WebForm:codebehind技能没有完备对代码和前台页面进行分离;
MVC缺陷须要有一定的html、css、js、jquery前端技能,也就增加了一些学习的本钱;
MVC比Webform比拟MVC更加有利于理解分层逻辑,把握代码的层次感,Controller到aspx页面之间的过程已经被框架隔离;至于Controller或者View页面与Model调用的过程,还是须要自己来把握;ASP.NET的MVC框架实现了Controller代码的单独管理。
WebForm则只在HttpHandler容器中实行,对其进行分层,在大的方面缺少支持,而只能依赖逻辑上分离,并不是不能分离,而是有一定的局限性;HttpHandler的拦截,是跟访问后缀名有关的,当要求一个页面时,那便是一个Handler,而WebForm模型实现显示与逻辑分离,才有的是WinForm的事宜驱动,显然,事宜必须被注册到页面里,比如Button1_Click这样的代码,而在Button1_Click实行之前,Page_Load方法会被实行;显示代码被写入Page_Load方法中,那么就会造成须要写额外的废代码,比如if (!Page.IsPostBack)这样的剖断,而在Button1_Click实行后须要显示的部分,则比较难处理,写出另一个方法,也是必须要在Button1_Click里调用的,替代的办理方案是利用Response.Redirect,在一个aspx页面中处理逻辑,处理完就跳转到其余一个显示的页面;这样做的坏处是,在两个页面中数据很难共享,而跳转是通过标记302来实现,因此多一次要求;而其余还可以通过Server.Execute,Server.Transfer或者Context.RewritePath这样的处理办法,则两个页面转换是在做事器端完成,可以共享数据,可以说和MVC框架的处理办法大同小异,缺陷是须要手动配置这些重新定向的属性。
总结
MVC框架具有很强的优胜性,而WebForm也不是一无是处,在大略的运用中更加随意马虎开拓。WebForm也是可以实现和MVC一样的分层办法,只是处理时须要多写一些代码而已。而我认为,在用WebForm开拓分层碰着的最大问题是页面与页面之间数据的通报问题,而节制好WebForm中利用做事器端跳转的运用技巧进行开拓就可以办理数据传输问题,ASP.NET MVC与WebForm比较起来,WebForm更随意马虎理解,不会产生繁芜的配置,也是一个很不错的选择。