之前就有想法说说这方面,直到看到我上一篇博客《EXT.NET复杂布局(一)——工作台》的回复:
小龙3:ext.net 比使用傳統的webform控件开发时间多多少?
我就决定提前写这一系列了。小龙3应该感到荣幸。嘿嘿。
相比Extjs,Ext.NET毋庸置疑的可以大大提高生产力(这里我只说EXT.NET的优势):
1)带智能提示的配置。
在VS设计界面,可以直接拖出EXT.NET控件,然后可以像编辑传统的ASP.NET控件一样来编写配置。Ctrl+J——J的爽吧。
2)编写速度加快。
一是有智能提示,二是很多时候,无须查看文档,只需要浏览智能提示就能配置。有时候写完前台写后台,耶,一个js都没写。虽然我不讨厌JS,但是能不写的,我不会多手。让EXT.NET搞定这些吧。。
3)错误率降低。
这点不需要解释。当然只是相对Extjs的。一般情况下,我写JS都是小心翼翼的。
4)可维护性。
js写多了,维护起来不是一般的头疼,虽然可以使用VS插件让JS可以实现折叠,但是多了的话,看着都难受,哪还有心情修改。如果恰巧字母大小写或者写错了,或者误操作,多敲了一个字母,等等,又有得忙了。
5)层次关系。
从VS设计源码界面,即使布局很复杂,代码很多,你也可以很清楚的看清楚各个控件的父子关系,可以很方便的找到哪个控件,也可以很方便的折叠哪些部分。
6)可以在服务器事件中操作。例如:
txtDogNo.Text = Request.QueryString["usbkey"]; txtMachineNo.Text = Request.QueryString["equipmentcode"];
在EXT.NET的DirectEvent事件或Page_Load事件这操作EXT.NET控件,比JavaScript操作更方便。虽然其原理也是使用的JavaScript。而且很多时候,可以不必要通过Httphandler类或者ASP.NET页面来操作,节省了很多配置。
7)数据交换更简单。
EXT.NET支持各种数据源,支持各种数据源控件。支持页面后台绑定,也支持xml、Ajax请求等等。
8)使用更快捷。
控件一拖(虽然我一般不拖),JS、CSS链接不需要操心了。语言也不需要操作了,会自动设置本地语言(虽然有时汉化不彻底,但是还勉勉强强)。
9)其他。一时间想不起来了。有想到的就回复下吧。嘿嘿。
那相比WebForm,Ext.NET的优势又在哪呢?这里我也会结合生产力说说(这里我就用++和--来标注好了)。
1)更好的用户体验。(生产力++)
虽然WebForm可以使用微软的Ajax以及Ajax控件进行开发,但是用户体验还是远远不及extjs。而且你可以跟客户忽悠,这个功能多么滴难做,多么好,但是我们做出来了。于是你的沟通能力又增长了。。。
2)美观的界面。(生产力+++)
只要程序员稍微懂点CSS的话,基本上可以忽略美工了。节约了人力,而且还节约了设计样式的时间。虽然extJs界面看多了,也就那么“美”,但是你要考虑到还有很多人没看够。
3)都支持服务器事件。这点打平了。
4)EXT.NET或者Extjs还不够完善。(生产力--)
EXT.NET是存在一些Bug的,在前面的文章我就提及过,但是并不影响开发。这些BUG有些是EXT.NET自身的原因,有些是Extjs的原因。碰到BUG了,需要冷静思考,别掉坑里去了就行了。
5)要求更高的解决问题的能力。(生产力--)
- 由于对EXT.NET的不理解、不熟悉,或者对extjs的不了解(前面说过,使用EXT.NET也需要了解Extjs。毕竟Extjs是他爸啊。),或者本身的BUG等等,写代码的时候很容易出现问题或者异常。这就需要自己去分析问题了。
- 比如设置了GridPanel的AutoExpandColumn属性(自动展开列),但是这个列名自己又疏忽了(也就是不存在),那么页面将不显示,也不会有异常提示显示。这时候就得自己分析原因啦。
- 又比如服务器环境问题——使用EXT.NET后,直接出异常了,什么什么Json序列化的。这是你就得乖乖打上.NET3.5的补丁包了,虽然官方要求的是3.5框架,但是是不缺SP1的框架。
- 又比如丢到SharePoint里面,只有Administrator干过之后,其他的角色才能搞,这是为什么呢?权限嘛。赶快使用SPSecurity.RunWithElevatedPrivileges方法把它干了。当然这是本人的解决办法而已。当初为了这问题可是差点黔驴技穷了。
- 也就是,当你使用Ext.NET后,你会碰到更多的问题。亲爱的读者,你有信心一一解决么?嘿嘿,先忽悠两把,吓死胆小的。
6)要求更强的自学能力。(生产力--)
Extjs的示例要看,API要看,EXT.NET的示例要学,现在出文档了,有空也可以瞄瞄。。。
7)可以实现更复杂、更高级、更好的功能。(生产力++)
EXT.NET内置的控件就有一箩筐,具体布局使用就靠个人了。传统的WebForm难以实现的,也许在这里面就不是问题。
8)要求更高的前端开发能力。(生产力—)
js要懂,Extjs要懂,css也要懂点,ASP.NET要懂。这些,你懂的。。。
9)其他。同上。
这篇文章本来是要等周三再敲的,今天生日心情好,而且难得不加班,就把这些文字给敲出来了。看好本系列文章的,就在下面来个祝福吧。不看好的,就为我过生日的还抽出时间来码字的精神,也祝福祝福吧。在本篇结束之际,再说一点个人体会:
- 几分熟决定着你的开发速度,心得和体会决定着你的成长进步,总结和提升让你少走弯路,造好模具才是你的开发利器。
接下来的本系列文章,主要就结合这些方面来说明了。