Mvc与WebForm优缺点及Mvc的使用

关于Mvc与WebForm的优缺点在网上的评论可谓不胜枚举,但脱离了我们的项目来谈这些意义就不大了。以我们这次改版来看,WebForm的优势有以下几点:

一,可以使用<#include>,css、html与js可以实现跨页面乃至夸项目的重用,Mvc没有发现此类功能;

二,可以精确的调用用户控件中的属性、字段、函数并可以获得相应的返回值,Mvc也未发现此类功能;

三,可以方便的将公共或保护性字段属性函数等应用到aspx页面上,Mvc无法直接调用控制其中的相应字段属性等。

针对以上WebForm的有点或Mvc的确点,我们在改版商铺写字楼时遵循了下面的几个规范予以弥补:

一,使用局部视图来实现html的重用;

二,对控制器中所用到的属性字段函数进行合理的封装,如将原有的变量集成到一个大的类中作为一个强类型视图传递的对象传给相应的视图,实现在视图中的方便使用。在这里对于类的划分需要尽可能的把相关性比较高的放到一块儿,优先采用类的组合而非继承,若需要放到视图对象中的字段是一个较大的复合类,如经纪人实体或房源实体,建议单独存放在ViewBag中。这些做法的目的比一方面希望这些变量使用起来更加方便,另一方面减小在视图中调用局部视图或函数的时候传递参数的颗粒度,也就提高了这些局部视图或函数的重用性,如用经纪人实体做参数的函数我们既可以在商铺写字楼中用,也可以用在普通的经纪人详情页中使用,二视图对象做参数无法实现这点;

三,将代码的重用单位放到对象和函数上,原则上不在控制器中创建不直接向浏览器做交代的函数,而是放在底层以方便重用。

在遵循了上述一些规范之后方才发现Mvc还是有些优点的:

一,优秀的Razor引擎使得在视图中使用C#代码更加方便流畅;

二,单个视图可以对应多个控制器,提高了代码的重用;

三,在主视图的ViewBag或ViewData中存储的对象可以在局部视图(仅限通过RenderPartial方式渲染的视图)或母版页中使用;

四,可以在视图中以函数方式重用普通的html代码到局部视图中且可以向局部视图中传递一个对象;

五,视图与控制器的分界更加清晰,局部视图的重用可以直接在视图中予以调用,而在WebForm中用户控件在后台代码中由于需要传参绑定而无法放在底层实现更高的重用。

除了上面的异同,还有一些在WebForm与Mvc中名字相同的对象,这些对象虽然名字相同,但是类型已经不是一个类型了,如:

 1         //
 2         // 摘要:
 3         //     为当前 HTTP 请求获取 System.Web.HttpRequestBase 对象。
 4         //
 5         // 返回结果:
 6         //     请求对象。
 7         public HttpRequestBase Request { get; }
 8         //
 9         // 摘要:
10         //     为当前 HTTP 响应获取 System.Web.HttpResponseBase 对象。
11         //
12         // 返回结果:
13         //     响应对象。
14         public HttpResponseBase Response { get; }

Mvc中的http对象

 1         //
 2         // 摘要:
 3         //     获取请求的页的 System.Web.HttpRequest 对象。
 4         //
 5         // 返回结果:
 6         //     当前与该页关联的 System.Web.HttpRequest。
 7         //
 8         // 异常:
 9         //   System.Web.HttpException:
10         //     System.Web.HttpRequest 对象不可用时发生。
11         [Browsable(false)]
12         [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
13         public HttpRequest Request { get; }
14         //
15         // 摘要:
16         //     获取与该 System.Web.UI.Page 对象关联的 System.Web.HttpResponse 对象。该对象使您得以将 HTTP 响应数据发送到客户端,并包含有关该响应的信息。
17         //
18         // 返回结果:
19         //     当前与该页关联的 System.Web.HttpResponse。
20         //
21         // 异常:
22         //   System.Web.HttpException:
23         //     System.Web.HttpResponse 对象不可用。
24         [Browsable(false)]
25         [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
26         public HttpResponse Response { get; }

WebForm中的http对象

由于类型不同,在Mvc中一些特性不再灵验,如在controller里面不能识别Response.End()页面会继续运行下面的代码,可以用return null来代替。另外也添加了一些好玩的属性函数如Request.IsAjaxRequest(),该函数可以用来判断是否异步访问。但毕竟相应对象的类型依然共用一个基类,它们的大多数属性函数用法依然相同。目前对相应对象的各种新的用法了解还是很有限,需要在今后的工作中加以总结,以最大化的发挥出框架的优势。

就现在的改版来说,我们做的尚不够好,但依然可以发现,在MVC中我们用的代码更少,重用的地方更多了。其实无论是MVC还是WebForm只要能够合理的使用都可以获得较高的效率及可维护性,要想提高代码的可维护性及性能还是需要我们定制并完善统一的标准,同时也要提高我们的个人水平。

时间: 2024-09-30 14:18:57

Mvc与WebForm优缺点及Mvc的使用的相关文章

MVC和WebForm的优缺点对比

1 WebForm优点 1)支持事件模型开发,得益于丰富的服务端组件,WebForm开发可以迅速的搭建Web应用 2)使用方便,入门容易 3)控件丰富的WebForm 2 WebForm缺点  1)封装太强,很多地层东西让我们初学者不是很明白  2)入门容易,提升很难.  3)复杂的生命周期模型学习起来并不容易.  4)控制不灵活  5)ViewState处理  6)异步请求每个请求后台都必须有一个一般处理程序对应 7)跟传统的Web开发方式不一致 3 MVC优点 1)很容易将复杂的应用分成M,

asp.net MVC 和 webForm的区别

asp.net MVC请求过程 ASP.NET MVC框架只是给开发者提供了开发web应用程序的一种选择,并不是要取代Webform这两种技术各有优缺点,开发者需要根据实际情况,选择对应的技术有时候,可以在同一个项目中混合使用这两种技术 WebForm请求过程 个人网站:http://www.51pansou.com .net视频下载:.net视频教程 .net源码下载:.net源码

MVC与WebForm的区别

在初步了解MVC后,发现很多人对于MVC和三层架构开发概念上会有很大的混淆,所以把这两天的学习笔记整理一下,分享给自己的同学们.同时也做一个小Demo,让没有接触过MVC开发的同学,能对MVC有一个简单的了解. 一,MVC和三层架构的区别 ①什么是三层架构? 在学校的时候,和同学或者老师一起讨论MVC的时候,别人可能会说,“不就是三层架构嘛!实体层(Model),用来创建对象的实体:业务逻辑层(BLL),用来处理复杂的数据间的关系或者是业务间的关系:数据库访问层(DAL),用来用来访问数据库的:

WebForm中使用MVC

http://www.cnblogs.com/encoding/articles/3556046.html ************************************************************* 前言 掐指一算,3年没写博了,好懒的说... 众所周知,MVC现在越来越火了,不懂MVC的程序猿都不好意思说自己是搞网站开发的. 虽然MVC与WebForm各有所长,但是基于种种原因,很多用WebForm开发的网站需要转移到MVC上面来.但是,原有的系统上面有非常非常

【.NET特供-第三季】ASP.NET MVC系列:传统WebForm网站和MVC网站运行机制对比

本文以图形化的方式,从'运行机制'方面对比传统WebForm网站和MVC网站. 请参看以下图形: 一.运行机制 当我们访问一个网站的时候,浏览器和服务器都是做了哪些动作呢? (本文只是提供一个简单的运行过程,有兴趣的找资料研究一下复杂的网络过程.) (一)WebForm网站运行机制 假设为:www.baidu.com/index.aspx 1.Http请求(物理地址:index.aspx) ①发送请求 浏览器向服务器发送请求报文,此时由IIS虚拟目录接受.(通过配置过IIS,把网站挂载在服务器上

念念不忘,ASP.NET MVC显示WebForm网页或UserControl控件

学习与使用ASP.NET MVC这样久,还是对asp.net念念不忘.能否在asp.net mvc去显示aspx或是user control呢?这个灵感(算不上灵感,只能算是想法)是来自前些天有写过一篇<多个视图结果显示于一个共用预览视图内>http://www.cnblogs.com/insus/p/3633298.html 其中有一个Render方法.以致想起以前开发asp.net时,也经常Render用户控件.即是说把网页经过Render之后,转换为是一串字符串. 那我们也一定可以把这串

MVC与WebForm最大的区别

原文地址:http://www.cnblogs.com/birdshover/archive/2009/08/24/1552614.html 使用ASP.NET MVC框架,创建默认项目,第一直观感觉就是地址都是Rewrite过的.对源码和配置文件稍加分析不难看出,MVC使用了httpModules来拦截地址请求,具体用到了System.Web.Routing类库(MVC2中,MVC1怎么用的忘记了.)而这部分类库被包装在.NET Framework3.5 SP1中,MVC2需要SP1支持也就理

MVC 与 WebForm 小论

 WebForm: WebForm是一个快速可视化的web程序开发技术.跟VB一样,几乎是相同的开发模式,只需要简单的拖拽已经封装好的控件到窗体设计器上,VS就会在Behind Code(aspx.cs)生成相应的代码,开发人员只要在生成的事件框架中写入自己需要的业务逻辑或者数据显示转换等就可以快速的实现某一功能. 简单快捷,尤其是对于我们这种从VB过渡过来的同学们,感觉简直是福音,无论横向对比竖向对比,让我们的感觉很是似曾相识,很容易上手,但是慢慢也会发现它很多不容忽视的问题. 1:紧耦合

MVC和WebForm 中国省市区三级联动

MVC和WebForm是微软B/S端的两条腿,两种不同的设计理念,相对来说MVC更优于WebForm对于大数据的交互,因为WebForm是同一时间传输所有数据,而MVC它只是传输所用到的数据,更精确,传输量少等待数据传输的响应时间就短.但是WebForm也有他的优点,比如说设计起来更像Winform容易理解. SQL表如下: 根据ParentAreaCode=0001可以查出省级地市, 对应的省级地市有AreaCode 根据不同的AreaCode输入在ParentAreaCode中可以查出省级地