关于 ASP, ASP.NET; VBS, VB.NET, JS, JS.NET, C# 的体会,思考

五年前开始使用ASP, 和大多数人一样,使用VBS。
写了四年以后,也和很多人一样,积累了不少自己管用的方法、函数之类的。

这期间有考虑过学习.NET,但是初步体验了一下ASP.NET,有点深恶痛绝的感觉,尤其是.NET的服务端控件这样的概念。
个人感觉如果一个BS程序员一开始就学ASP.NET的话,一定是件很糟糕的事情,十有八九会搞不清楚什么是服务端什么是客户端。客服端的用户操作只会产生一个HTTP请求,怎么处理,那就是服务器IIS的事情的,最后才是.NET程序执行的问题。 现在却点个按钮直接就触发了 button_Click 事件了,两个字——恐怖!

因为之前一直用VB, 所以尝试用VB.NET做了一些小应用程序,感觉还不错,至少自己用起来不错,开发很方便。 .NET里面我最喜欢的就是 WebClient ,还有必要时候的杀手锏 WebRequest ,如果没有这两个东西,或许一直就不会去学.NET,用.NET了。

零八年初换了工作,新公司需要开发、修改一些电子商务网站,中间尝试招了几个程序员,面试的时候,问了些问题:

问:“你用什么语言写ASP?VBS还是JS , ASP , 不是ASP.NET”
答:“C#”
……
问:“你确定自己说的是ASP,不是ASP.NET?”
答:“嗯”
……
问:“那你用什么写ASP.NET,C#,还是VB.NET?”
答:“JavaScript”
问:“不是吧,我是说ASP.NET,你用JS写.NET?”
答:“是啊,VS不支持JS,编译的时候会报错,不过你直接运行是可以的!”
……



后来这个程序员来公司体验了半天就走了,留下我一个人在那里郁闷。
他走了以后,因为用VBS写ASP写了好多年了,自己都腻了。所以决定搞些不一样的花样。

用JavaScript写ASP .
因为之前一直用JS写浏览器脚本,对于JS的神奇object情有独钟,再加上判断null的方法是如此方便: if(obj==null)....  比起VBS,不知要爽多少倍。
可是一直没有用JS去写ASP,因为JS的时间操作让我望而生畏。
所以要解决的第一个问题就是封装时间类。用惯了VBS函数的我在使用new Date()的时候就在一个劲儿的抱怨,妈的,JS真烦。可是还是很喜欢。
就这样用JS做了一个电子商务的订单处理系统。

用JSCRIPT8写ASP.NET
后来无意中在MSDN上看到JSCRIPT8,也就是JS.NET的介绍,马上激动地跑过去将JS写的ASP的扩展名全部换成了.ASPX ,错误是不可避免的,不过在修改了
若干个小地方之外,奇迹般的在原有的JS写的ASP文件里, new WebClient() 成功了!
几乎是一鼓作气的,我把页面结构也换成了.net 的样子, 每个页面头部 inherits 一下。 但是,整个过程依然使用的new ActiveXObject("Adodb.Connection")
因为实在不喜欢DataSet的复杂操作。

因为VS开发环境不支持JS, 所以所有代码都是在EditPlus里面写的,把ASP默认语言改成JAVASCRIPT,倒也用得挺方便。实在有冷僻的方法记不住命名空间,就打开VS“提示”一下。
这期间我疯狂得喜欢上了JSCRIPT8,感觉用起来真他妈爽。 JS语言风格+.NET的强大支持, 怎一个爽字了得。 处理大表单的时候,需要添加表单域的时候随便在类里面加个属性来接收
它就可以了,处理完数据,再扔到数据层的类里面 foreach 一下双方的类字段,根据字段类型的不同产生不同的赋值SQL, 最后连要赋值几十个字段的SQL语句都不用写了, 直接 foreach 出来了。

用C#写ASP.NET
又对Jscript8疯狂了一段时间以后(甚至注册了jscript8.com的域名),我开始郁闷了。原因,看官您百度,谷歌一下jscript8或者jscript.net关键词就知道了。国内使用jscript8的人凤毛麟角,好不容易在卓越上看到一本jscript.net教程,还“缺货”。 只有那么几篇介绍性的文章,没有发现一个使用JSCRIPT8的同行者。国外,Pool English……
公司还指望我找几个程序员进来带他们,妈的,自己用那么冷僻的语言,怎么招人啊,总不能要求别人都来跟着我疯学jscript8吧。 而且,vs里面虽然有js的编译器jsc.exe,可是毕竟开发环境不支持它,而且jsc.exe手动编译很麻烦,虽然手动写了调用编译的小工具,可是遇到类互相引用的,编译器就说找不到引用了。都这样了,鬼知道微软哪天就把他给从.net行列里面除名了……
郁闷了一段时间以后,我终于决定使用C#了。
这些我就不写了,我相信这里的朋友对此都要比我资深。
现在使用起来还不错,已经使用它又做了两个复杂的订单处理,还有个人写了个采集QQ空间的程序(www.afei.name)。应该还会一直用下去了。

写在最后的
最后得出的结论是,
1. 没有最好的语言,只有最喜欢的语言。就好像谈恋爱的人“情人眼里出西施”一样。
2. 每种语言都会有优点、缺点,一旦你使用哪个习惯了,就会对其他的生疏(就像我现在已经对用了七八年的VB有些不习惯一样,现在连应用程序都会用C#写了),在几种语言之间切换还是蛮痛苦的。
3. 多些思考,任何一种语言基本上都能实现你想要的东西。
4. 多学几样没坏处,起码不会找工作的时候因为没用过某种语言而被淘汰,而且我相信真正的程序员之间的交流应该是不分语言的
5. 深夜的,我要睡觉了, 上了两个月的夜班,明天开始上白班了(但愿我能起得来……)



                                                                                 ---夏如嘏 零八年六月二十三日,子夜


PS: 如果这里有,或者哪位的朋友有使用、喜欢 jscript.net 的,欢迎加我QQ 178718038  一起分享!!
posted @ 2008-06-23 01:55 疯子阿飞 阅读(3324) 评论(49)  编辑 收藏

  回复  引用  查看    
#1楼 2008-06-23 02:27 | Jeffrey Zhao      
虽然不同意楼主部分看法,但是支持楼主在技术上的态度。
  回复  引用    
#2楼 2008-06-23 05:35 | benbenxx [未注册用户]
膜拜下楼主@!
  回复  引用  查看    
#3楼 2008-06-23 06:17 | 金色海洋(jyk)      
又一个怪人诞生了。
  回复  引用  查看    
#4楼 2008-06-23 07:54 | 随风流月      
JScript 8 已经后继无人了.
你可以尝试 Visual Basic 9,当然,你完全可以抛开服务器控件,像 ASP 那样编程 - 嗯,没有错,真的可以。说实在话,你应该试试 MVC。
  回复  引用  查看    
#5楼 2008-06-23 07:58 | kiler      
从asp转到asp。net是一个比较麻烦的过程,太多的观念要转变了。asp转到asp.net远比转到jsp,php要难。
  回复  引用  查看    
#6楼 [楼主]2008-06-23 08:21 | 疯子阿飞      
对于这样一个新生,并且更新频率很快的语言平台,令人迷惑、害怕的不是对新版本语言的适应问题(例如.NET 1.0, 2.0, 3.0 到现在的3.5)。

而是一个选择的问题,对于新手来说,应该从哪个版本开始学,应该使用哪个版本。究竟是选择最新的,还是使用范围最广的。

而对于已经在使用的人来说也同样存在这样的问题,新出来的版本是否要学习,是否要使用,学习没有问题,可是没有使用,单纯的学习是没有意义的,而如果使用的话,.NET的问题是个20多M的框架,随时需要安装,对于众多小型工具来说,这是个致命的问题。而对于WEB开发者来说,是否使用3.5,还要取决于他们所使用的服务器(很多人应该使用的是收费的虚拟服务器)是否安装了.NET3.5。

而且,如果说同时有.NET2.0的系统需要修改、维护的话,在不同版本间切换的编程也是痛苦的。
  回复  引用  查看    
#7楼 2008-06-23 08:39 | 剑了      
楼主有空可以看下面向对像的设计,分层的类设计,会让你的痛苦减轻很多.
至于.NET的版本问题,我想在分层的体系结构下并不是什么难题,需要变动的可能只是界面层. 楼主加油,个人体验是,当你了解了C#的基础,加面向对像编程的思想(如C#当中的接口及类的设计部分)后,你会发现,一切都不是问题.
  回复  引用  查看    
#8楼 2008-06-23 08:51 | 二手的程序员      
楼主的想法很不适合多人开发

从ASP转ASP.net确实是件很痛苦的事.
  回复  引用  查看    
#9楼 2008-06-23 09:01 | hxm      
在加上用MVC的人那么少 .NET啊 长路慢慢啊
然后都转去FLEX rails python 和php了
唉 有了MVC依然不能用的。。
真是。。真是。。
  回复  引用  查看    
#10楼 2008-06-23 09:01 | Yoshow      
楼主真是爱好广泛啊...
  回复  引用  查看    
#11楼 2008-06-23 09:01 | Solog      
问:“你用什么语言写ASP?VBS还是JS , ASP , 不是ASP.NET”

楼主确定你这句话不是病句?
  回复  引用  查看    
#12楼 [楼主]2008-06-23 09:03 | 疯子阿飞      
--引用--------------------------------------------------
二手的程序员: 楼主的想法很不适合多人开发

从ASP转ASP.net确实是件很痛苦的事.
--------------------------------------------------------

我也一直苦恼无法与别人并行完成任务,分工一般都是按模块分工,几个人互相牵扯到的东西很少。因为自己写的程序别人读起来很困难,可能是因为自己写程序的时间太长(有七八年了),与很多新手的想法都不一样,写东西的思维上也不太一样,比如在他们看来很简单的一个列表显示,会不明白为什么一定要输出XML再用JS组装成LIST之类的。而他们写的代码,我看的时候也会很痛苦,变量定义不规范,语句不知道对齐云云。

我知道不能要求每个程序员都是高手,或者说做到很好的样子。但是从感性上来说还是受不了。

所以,愿闻其详。
  回复  引用  查看    
#13楼 2008-06-23 09:04 | 随风流月      
我依然建议所有从 ASP 转型的程序员选择 ASP.Net MVC + Visual Basic 8/9,这是最佳的选择,可以少绕些路子的。
  回复  引用  查看    
#14楼 2008-06-23 09:05 | 随风流月      
@疯子阿飞
你需要在一定程度上调节你的思想以适应面向对象的设计与开发。还是那句话,我推荐 Visual Basic 9,特别在 XML 开发上有极大的优势。你应该试着习惯自动缩进 :D
  回复  引用  查看    
#15楼 [楼主]2008-06-23 09:05 | 疯子阿飞      
--引用--------------------------------------------------
Solog: 问:“你用什么语言写ASP?VBS还是JS , ASP , 不是ASP.NET”

楼主确定你这句话不是病句?
--------------------------------------------------------
没太明白
  回复  引用    
#16楼 2008-06-23 09:06 | t-mac [未注册用户]
@Solog
类似的文字全文还有几处,,,。。。。没看懂
  回复  引用  查看    
#17楼 2008-06-23 09:09 | Dove.Net      
用MVC就合适了
  回复  引用  查看    
#18楼 [楼主]2008-06-23 09:11 | 疯子阿飞      
--引用--------------------------------------------------
t-mac: @Solog
类似的文字全文还有几处,,,。。。。没看懂
--------------------------------------------------------
可能平时与人沟通比较少吧,大家或许多有这样的经历。

程序员会被人看成是“另类”“怪异”的代名词。当然,如果是在软件公司、网络公司,到处都是程序员的环境中,就另当别论了。

多多包涵大家。
  回复  引用    
#19楼 2008-06-23 09:11 | 鬼话 [未注册用户]
我是从从ASP转ASP.net的 其中确实有些艰苦 但是好在过来了。。!!加油!!
  回复  引用  查看    
#20楼 2008-06-23 09:17 | 没剑      
呵呵,楼主的asp情结很重哦,我也跟你的感觉差不多,所以都一直关注mvc这个框架,推荐楼主使用monorail这个框架,虽然msmvc.net是从这个的基础上开发的,但是monorail更正宗,更符合楼主的要求,没有服务端控件,没有viewstate。。。没有回发,没有ms....
  回复  引用  查看    
#21楼 2008-06-23 09:24 | 生鱼片      
楼主2点睡,8点起,我就没这精力。
  回复  引用  查看    
#22楼 2008-06-23 09:25 | 不死小强      
楼主高人,我也做过几年ASP,现在还是转ASP.NET了,没办法,ASP不好混饭吃啊。呵呵,不过么有尝试过用JS来写ASP,看来哪天要试试了,呵呵。
  回复  引用  查看    
#23楼 2008-06-23 09:29 | 赵俊      
干嘛这么折腾自己的呢!
  回复  引用  查看    
#24楼 2008-06-23 09:31 | zeus2      
如果一个BS程序员一开始就学ASP.NET的话,一定是件很糟糕的事情

这句话不敢苟同。
如果了解Click后发生什么还是一样的。
  回复  引用  查看    
#25楼 2008-06-23 09:37 | 超然      
很认同楼主的看法,尤其第三条,学什么语言重要吗?不重要!关键看这个语言是否适合自己而已。
  回复  引用  查看    
#26楼 2008-06-23 09:45 | airwolf2026      
俺可能就是直接从asp.net开始过来的吧,确实asp.net对于新手来说隐藏了太多了.还好俺以前有摸过asp(学校里面发癫,学一两天后面就再也没碰那种),呵呵.所以了解相关的一些技术实现比如http协议等还是有好处的.不能单单局限于某种环境中....
  回复  引用  查看    
#27楼 2008-06-23 09:58 | 胖胖安      

建議花個時間去 trace "cassini" 這個用 C# 寫的web server
我想就不會有這些疑問了
  回复  引用  查看    
#28楼 2008-06-23 09:58 | 小寒      
适应潮流,根据实际项目需要,学习不同的语言
掌握思想,用属于自己理解的思想,指导我们的编程
语言始终是工具,思想才是真谛
  回复  引用  查看    
#29楼 2008-06-23 10:08 | 陈晨      
对我们这些习惯用ASP.NET写程序的人来说

ASP用起来太复杂了
  回复  引用    
#30楼 2008-06-23 10:12 | xxzhao [未注册用户]
编写程序不是语言的划分,而是一种理念,重要的是思想,设计程序的逻辑结构,语言没有绝对的好与绝对的不好,他只是语法结构不同,编译方式,与运行环境不同,基本上能想得出的功能或算法,每种语言都能实现,只是解决的方法不同,如是而已。
  回复  引用  查看    
#31楼 2008-06-23 10:16 | deerchao      
JScript,VB.net这两种语言的下一版都可能会有很大的变化,到时要升级的话可能会有点麻烦。
  回复  引用  查看    
#32楼 2008-06-23 10:21 | John Rambo      
真的有这样的小白分不清asp和asp.net
  回复  引用    
#33楼 2008-06-23 10:26 | xxzhao [未注册用户]
.NET 2008 中的 VB .NET 2008 更新了不少,几乎是一个全新的语言,本人在学习 .NET 的第一天就使用 VB .NET ,开发效率高,程序可读性强,安全性强,多线程等等... ...
在 .NET 2008 中的 VB .NET 2008 与 SQL 语句继承,被称为 Sql 表达式,同时,以 With {} 为对象初始化时,可以为 “类”的实例的非私有属性进行初始值定量... ...
  回复  引用  查看    
#34楼 2008-06-23 10:30 | 个人知识管理      
但愿我能起得来...
应改为:但愿我能准时起来
  回复  引用  查看    
#35楼 2008-06-23 11:06 | 红尘中迷茫      
问:“你用什么语言写ASP?VBS还是JS , ASP , 不是ASP.NET”
答:“C#”
……
问:“你确定自己说的是ASP,不是ASP.NET?”
答:“嗯”
……
问:“那你用什么写ASP.NET,C#,还是VB.NET?”
答:“JavaScript”
问:“不是吧,我是说ASP.NET,你用JS写.NET?”
答:“是啊,VS不支持JS,编译的时候会报错,不过你直接运行是可以的!”
……
这个没看懂。。。。
  回复  引用  查看    
#36楼 2008-06-23 11:14 | Charming.Z      
不知所云
  回复  引用  查看    
#37楼 2008-06-23 11:15 | Klesh Wong      
ASP下面也有类似WebRequest的ActiveX组件
Paypal有一个示例就是用那个东东做的,支持SSL
另外,也可以通过XML组件代替WebRequest
这方面的资料应该可以通过装windows server 2003 sdk文档可以查到

jscript.net跟JS区别还是蛮大的,不支持内置类型prototype扩展,提供class和extend关键字作类的声明和继承等...速度功能上是强了,不过兼容性上是弱了.

vs2008里面没有jscript.net真是相当可惜啊.
  回复  引用    
#38楼 2008-06-23 11:18 | 9ago [未注册用户]
也是从asp 爬起来的,和你不一样的是以前接触过一点 winfrom的开发工具,记得第一次用的时候,怎么感觉跟vc似的 ……

本文转载了 http://www.9ago.com/html/2008-6/2008-6-23-11-12.html
  回复  引用  查看    
#39楼 2008-06-23 11:53 | 初始小花      
我现在正在从asp往那爬,C#写winform写了一段时间了,虽说没写什么大型的程序,不过多线程、委托、事件、泛型、GDI什么的都用到了,但是想写asp.net的时候还是有点模糊。
  回复  引用    
#40楼 2008-06-23 13:04 | 小辛 [未注册用户]
微软的“傻瓜化”没说不让你去探求其背后的实现机制阿。。。我看这是个学习过程问题。。。简单容易上手有了“成就感”,再对其深入:)。。。适应主流,有饭吃才实际阿。。。。探索技术的高峰,从吃饱饭开始。。。呵呵
  回复  引用  查看    
#41楼 2008-06-23 13:49 | Leem      
面试的问题够有水准,回答的更有水准.
  回复  引用  查看    
#42楼 2008-06-23 13:58 | 赵伟敏      
从ASP转为ASP.NET很容易啊?在ASP.NET仍几个服务器控件运行一下,看看源代码就什么都明白了,尤其对于经常从事BS开发的程序员来说,看网页源代码应该是习惯自然的事,倒是转为JSP等才困难。
你只想写一个HELLOWORLD,但却需要先配置大量的XML文件,到最后你一定会崩溃的呐喊:TMD,老子只想找个地方写代码,在哪写!告诉我在哪写!!!
  回复  引用    
#43楼 2008-06-23 15:20 | reddust [未注册用户]
如果楼主总是写表单的话建议用用CodeSmith.熟悉之后你会大叫“爽”....
  回复  引用  查看    
#44楼 2008-06-23 15:34 | jillzhang      
都这么大岁数了,还纠缠在c#,js,vb,java,c++,dephi,c,pascal的选择上,不觉得稍稍有些失败么?
  回复  引用    
#45楼 2008-06-23 15:42 | 柳永法 [未注册用户]
vbs很好玩,知道vbs能做什么么,可以不用ASP环境,直接运行,很爽
  回复  引用  查看    
#46楼 2008-06-23 15:50 | Clingingboy      
没什么好讨论,哪个适合你就用哪个。
  回复  引用  查看    
#47楼 [楼主]2008-06-23 16:09 | 疯子阿飞      
哪个用起来都不错。

所以现在使用C#,只是为了方便与其他合作者的代码相互阅读、修改。
因为貌似国内.NET使用最多的就是C#了。
  回复  引用  查看    
#48楼 2008-06-23 17:35 | Ants      
@疯子阿飞
C#也是.net平台下推荐的语言
  回复  引用  查看    
#49楼 2008-06-24 15:18 | 火无极      
楼主很强大,非常同意楼主最后的总结:

1. 没有最好的语言,只有最喜欢的语言。就好像谈恋爱的人“情人眼里出西施”一样。
2. 每种语言都会有优点、缺点,一旦你使用哪个习惯了,就会对其他的生疏(就像我现在已经对用了七八年的VB有些不习惯一样,现在连应用程序都会用C#写了),在几种语言之间切换还是蛮痛苦的。
3. 多些思考,任何一种语言基本上都能实现你想要的东西。

顶一个!!

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交