NET MVC与WebForm的区别

分析了MVC的工作工程,就可以对比其与WebForm的区别了。我们知道,MVC模式的业务被放置到Controller中去执行,而aspx页面只负责显示。那么在MVC中的业务实际执行时间被提前到了HttpMolde中,而WebForm的请求只在httpHandler容器中被执行。也就是说MVC中Controller与View的分离是使用的ASP.Net请求管道隔离的,这样的话无疑在不影响效率(一次请求,而Response.Redirect是二次请求)的情况下达成了代码的逻辑层次的分离。

    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中使用服务器端跳转的应用技巧(Server.Execute,Server.Transfer或者Context.RewritePath)进行开发就

可以解决数据传输问题,ASP.NET MVC与WebForm比较起来,WebForm更容易理解,不会产生复杂的配置,也是一个很不错的选择。

时间: 2024-09-20 08:47:23

NET MVC与WebForm的区别的相关文章

框架-Spring mvc和spring的区别

问题描述 Spring mvc和spring的区别 在书里看到的例子,业务层和持久层用的spring框架,而表现层由Spring mvc 实现 spring mvc和spring的区别在哪里?应用的地方不同吗? 这样的话只有表现层用了MVC的设计模式?其它层可以用spring mvc框架吗? spring可以整合其他的框架,意思说三层可以由不同的框架实现? 刚学spring,问题比较多,先谢了 解决方案 三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)

ASP.NET MVC学习笔记_实用技巧

网上关于ASP.NET MVC的系列教程有好几个,所以就不从头开始介绍了,结尾处给大家推荐了几个链接,需要的话可以从头系统的看看. 1.ASP.NET MVC介绍及与ASP.NET WebForm的区别 刚开始为了搞清楚ASP.NET MVC到底值不值得用,翻来覆去想了一个多礼拜,看了好多资料和评论,最后决定还是值得一用.MVC不是一个简单的设计模式,更像一种架构模式,或者一种思想,刚开始一听MVC想到的就是模板引擎,NVelocity,StringTempleate等,但感觉如果只是为了用模板

不要为了mvc而mvc 大家进来讨论下都

问题描述 web开发不是特别多但是也不算是新手了觉得一个web项目的架构web--直接webformdalbllcommonmodel差不多这样就够了对于分层架构没有异议但是对于web表示层现在貌似mvc大行其道说实在的我觉得除了那些个多余的配置我没有看到什么特别的好处还有就是orm的框架用起来也不觉得多么方便啊直接存储过程ado调用数据库有什么不好么到时候数据库迁移换数据库或者是同一个数据库换其他开发语言也很方便存储过程不用重复开发了大家都什么意见呢对于webform我个人觉得还是以干净的ht

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装    (5):前台Jquery easyUI实现    (6):EF上下文实例管理    (7):DBSession的封装   (8):DBSession线程内唯一     (9):TT摸版的学习    (10):V

ASP.NET MVC应用程序展示RDLC报表

原文:ASP.NET MVC应用程序展示RDLC报表 学习ASP.NET MVC这样久,在学习,练习与应用过程中,觉得很多知识与以前的ASP.NET多有区别,但是实现操作起来,细处又有许多相近的地方. 本篇跟大家一起学习RDLC报表,是在ASP.NET MVC应用程序中实现.在实现过程中,Insus.NET也将把一些常见的问题列举与提供解决方法. 首先我们在数据库准备数据,表,存储过程等,数据应用以前练习的数据,写一个存储过程好了.   在ASP.NET MVC应用程序目录结构下的Entitie

MVC到底是干嘛的,莫喷

问题描述 我看好多招聘要求都有它,想先了解一下它,百科说的太不通俗了,我想知道1.MVC是一个软件还是一个像工厂模式.单例模式这样的设计模式而已2.C#Winfrom和Wpf会用到MVC吗? 解决方案 解决方案二:模型(Model),视图(View),控制器(Controller)相较于webform有区别,可以上网上搜下教程,或者看看书.

自学MVC看这里——全网最全ASP.NET MVC 教程汇总

MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp.NET MVC 框架知识,Let's go!   1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习Asp.net MVC替代WebForms,产生ASP.N

ASP.NET MVC如何显示UserControl控件(扩展篇)

昨晚Insus.NET有怀旧一下<念念不忘,ASP.NET MVC显示WebForm网页或UserControl控件>http://www.cnblogs.com/insus/p/3641610.html 那仅是小小尝试,还有很多不明的地方. 那一篇其中有Render用户控件ascx的.如今Insus.NET想重构它一下,让步其能在Action或是Razor语法中使用. 创建一个AscxUtility.cs,这们我们可以在应用程序中多个地方使用. 这样我们就可以重构一下昨晚那个public A

【框架篇】mvc、mvp、mvvm使用关系总结

MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 数据关系 View 接受用户交互请求 View 将请求转交给Controller Controller