web开发web form,mvc,Silverlight比较优缺点

时间:2021-09-10 21:15:28

最近一段时间比较闲,所以顺便尝试去了解一些新东西,虽然不做开发好多年,但最始终还是觉得做开发(coding)来的最轻松,也最拿手,做项目经理真的很烦,看来我还是不合适干项目经理。

前一段时间在Silverlight 2出来的时候我们公司就有个家伙用Siverlight做了个项目,吹嘘了一下说开发有多快,用户体验有多好,搞得公司里火了一段时间,后来又有项目组也开始用silverlight 开发产品,但很不顺利,效果很差,第一个项目组把项目做成功的原因是这哥们技术真的不错,肯专研,可惜后来离职了,而其他项目组菜鸟居多所以搞得进展很慢。做得也很辛苦。

  后来我也研究一下Silverlight 2/3/4 RIA 1.0,还有最近在看一些asp.net MVC相关的技术,也算是做个小小的总结吧。

asp.net Web Forms 

优点:最重要的一点解决方案多,经验丰富,什么需求基本都能找到解决方法。

没有什么比服务器端控件再好用的东西了。数据绑定控件(gridview,formview),数据原控件(objectdatasource,sqldatasource,linqdatasouce),有了这些控件开发业务系统觉得没有比用web forms更好,更快的技术了 

提供的服务多,到asp.net2.0 .net framework就提供很多非常好的服务,profile,membership,cache,Microsoft patterns & practices(企业库)

UI控件,AJAX,第三支持的比较多

有着很多成熟的开发模型比如微软推出petshopN层架构 

缺点:因为使用了功能强大的服务器控件导致页面比较大,每次post,response的数据相对ajax,silverlight肯定是大的,会影响性能。

 

Silverlight

优点:开发富互联网应用(RIA)绝对是最合适的技术,,新版Silverlight集成GPU加速,开发3D,多媒体绝对是利器。

对于一些业务系统,做得好的,真的好看,而且好用,用户体验也很好网上可以找不少Demo

新的Silverlight开发模式MVVM虽然比较新但真的很好用,如果要做业务系统那么一定要用MVVM这个设计模式太能体现更多Silverlight开发优势(databinding 功能强大) 

缺点:掌握UI设计工具的人太少,所以做不出很酷,很炫的页面效果。

与后台交互不方便,所有交互只能是web service(WCF),虽然RIA1.0也很方便,但都是异步操作,总没有web form那么直接了当。回调来对调去的还有4.0提供了很强大的匿名方法还有Action<>这些类库。

最后我只能说要想做得好真不容易。

 

ASP.NET MVC 

我还没有用mvc 2,3做过项目只是最近做一些tutorial,给我的影响就是返朴归真,与后台交互回到了最原始Post,Response,类似回到ASP时代。

优点:层次清晰,Model,Controller,View ,Action,都有向导产生,非常规范,感觉就是很专业,像是搞大项目架构,不想web form那么随意。

页面展现和后台完全分开,去掉了服务器端控件,与后台交互使用JSON数据对象,所以性能上一定优于web form 

还有同样强大的Route URL功能,搜索引擎优化SEO。

成熟的MVC设计模式。 

  缺点:取消了服务器端控件,使得一些业务系统的输入变得更为单调,在一些也用户的互操作上大打折扣。

与后台交互虽然比Silverlight要好点,不用异步方法,但只能post,submit还是没有web form的事件机制好用。

 一定要精通javascript,Jquery,Json不然UI这关真不好过。

 

最后对于开发业务系统最主要还是提供用户很方便输入数据,快速响应操作,对于开发人员就能很方便保存和更新数据,能很方便调用的需要数数据,调用特定的方法,并返回需要结果。能很方便的调试代码。

虽然silverlight,asp.net mvc都是在asp.net webform后出来的技术,但也没有必要就认为Silverlight,MVC就一定比传统的asp.net webform就好。其实不关什么技术都是为了解决不同的问题而产生,每项技术都有他存在的价值。

可惜很多开发人员对web form的了解还停留在asp.net 1.0的时代,很多asp.net的新特性都没有用到,还有就是拿asp.net的开发模式去开发silverlight应用。

  个人建议

如果做业务系统的web项目还是web form好,简单快速,做一些多媒体应用的Silverlight当然是最好了,MVC可能做大项网站内容管理更合适。 

当然了,不管什么都是孰能生巧,因为web form最的最多自然就最数量,其他主要还是用的少,我想Silverlight还是不错的如果RIA这块到2.0的时候可能开发会变得更简单。