您的位置:首页 > 其它

MVC、WebForm和Silverlight的一点比较

2011-09-23 19:16 92 查看
今天比较深入的接触了一下VS的MVC开发,有点感触,所以写点感言。因为接触不是很久,研究不够深入,写这些主要是测试一下自己的技术敏感度,如果下次发现自己写得不对,其实也是一种提高,所以大家看的时候,就当娱乐吧。

我们首先来看看MVC和WebForm:

1)首先MVC和webForm还是属于比较典型的BS程序,所以本质上它们没什么区别,理由如下:

A)构成:Web的构成是Aspx+CS文件,MVC是M+ASPX+Controller(CS),其实M相对独立,传统的Aspnet也可以拥有这层,因此比较的时候可以除掉相同项M,得到Aspx+cs和Aspx+Controller.cs,大家看看,是不是没什么区别?

B)执行机制:WebForm访问请求aspx的时候,会与对应的后台类合为一体,做相应的处理,而MVC是利用所谓的路由找相关的类和方法进行处理,其实没本质上的区别;

C) 都采用的是HTML协议,当然这是废话。

2) MVC和WebForm在几个点上的比较:

A)状态管理:对于BS开发,状态管理是非常关键的,因为BS本质上是无状态应用。对于Session,Application级,两者没什么区别,而WebForm利用了ViewState做页面状态管理,其实这点对于页面元素多,且交互性强的应用是个优势,而MVC没有页面级状态管理,需要自己处理页面级状态;

B)客户端控件:在客户端都是HTML控件,没区别.

C) 服务器控件:MVC支持HTML5,同时可以不用服务器控件,Aspx采用Asp语法方式,而WebForm两种控件都支持,但如果用服务器控件,估计目前缺少Html5支持,但这不是什么大问题,自己输出成HTML5即可。WebForm也可以用asp语法(Aspnet),但因为有后台的更方便访问方式,所以一般不会直接在界面上写处理逻辑.

D)流量:MVC因为没有页面状态管理,也没有ViewState,因此在流量上要比WebForm少很多;

E)服务端性能:不用处理ViewState和控件树,所以MVC要快很多(MVC也可以使用服务器控件),这点上MVC更纯粹BS一些。

D)数据交互:从客户端回来都是利用HTML的表单,这点上两者没什么区别。有区别的是在服务端,对于强类型的视图,MVC会把从客户端来的数据自动生成相应的类实例供程序员调用,而WebForm是构建控件树,并对控件进行赋值管理,调用方便性上面,两者差不多。但MVC可以直接转成模型实例,而WebForm只会处理成控件树,要生成对应模型实例,需要自己处理,从这点上来说MVC要便捷很多。

F)开发便捷性:两者各有优势,WebForm开发逻辑要简单些。MVC则灵活性,但要求要高些。

G)页面与逻辑耦合:这点上MVC确实要灵活一些,虽然实际做业务应用时V和C还是会耦合比较紧,但毕竟不像WebForm那样1对1(0)紧耦合,架构得好的话V和C的复用性都要好些;

其它诸如交互事件的处理,因为还不是很了解MVC对这块的处理,这里就不比较了.

MVC和WebForm基本可以算是一个阵营的,跟Silverlight还是有很大的区别,各有自己的应用场景,不存在互相替代的问题。HTML5虽然强大很多,但依然无法替代Silverlight,除非你用浏览器做客户端,JS做客户端开发语言,完全用Ajax通信。由于本身的限制,JS在逻辑处理上跟C#这些来比,还是差很多,因为C#之类的有很多类库支持。Silverlight更多的是CS开发模式.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: