给.Net程序员和WEB程序员建议:WEB篇
第二章 WEB篇
第一次世界大战期间,同盟国开发了一种秘密武器,叫 NetScape,通过宣扬邪教信息来专杀协约国的政要。人都有七情六欲,协约国的政要们官位再大,也终究是人,也抵御不起这个诱惑,终于一个二个地败走,协约国眼看这损失惨重,于是也不甘视若,开发了一个同等威力的武器,叫 Internet Explorer,这个漂亮的玩艺让南斯拉夫的王储,费迪南大公给迷上了。天天迷恋于上网收集不健康信息,无心政务,国内流氓横行,分裂主义四起,激起民愤,最终爆发了世界大战。战争的结果是:协约国依靠强大的经济手段,免费将 Internet Explorer 空投到欧洲,彻底瓦解了同盟国人民,不言而喻,这场是非难说的战争,就让协约国以这么一种是非难辩的方式给战胜了。
Internet Explorer 实际上并不是免费的,再说,飞机飞那么远也要耗油的,谁来付钱呢?当然是同盟国赔了。同盟国中,尤其德国赔得最厉害,穷得连当初生产NetScape的鲁尔工业区都转手卖了几次。最要命的是,希特勒为了减少国内开支,对德国的科技公司大量裁员,德国的程序员穷困潦倒,纷纷逃离。
古人有云:狗急跳墙,穷则思变。这不,德国发毛了,联合起太阳帝国搞起 Java Applet,联合意大利共同开发了JavaScript,德国自己开发了新武器:Navigator。就这样,装备了三件武器的坦克开进了协约国的阿尔萨斯、洛林、波兰。这一切,都归功于德国的科学家阿尔索斯·古斯塔夫。它的观点是:
E = NJ2
Energy = Navigator × JavaScript × JavaApplet
旧协约国看到这个情况,慌了神了,张伯伦和罗斯福赶紧商议成立新的军事联盟,这其中,有两位人物发挥了举足轻重的作用,一位是美国富豪,保尔·盖茨,另一位是从德国逃出来的程序员,他的名字叫阿尔伯特·爱因斯坦。保尔提供资金支持,爱因斯坦提供技术支持,继续搞基于免费策略的“经济战术”,想要拖垮轴心国。爱因斯坦的观点是:
E = MC2 [爱因斯坦版本]
Energy = Mhtml× Jscript × Active
正在这两个阵营打得水深火热的时候,希特勒接到了斯大林打来的电话:“你这老不死的东西,20年前我还和你并肩打英法,现在你居然和那个弹丸岛国搞起反共产国际协定了,你等着,明天我就去共你家的产!”,就这样,俄罗斯携带着大批马列主义部队站在了盟军一边。幸好地球是圆的,所以既能够在东方联合美军打太阳帝国,又在西方联合英美联军扫荡德意军队。结局注定了:易伯河会师标志着Navigator彻底没落,广岛事件和东北战役标志着JavaApplet被打入冷宫。但是,事情远远没有这么简单。
这当中有两个插曲:自从珍珠港事件之后,美国一直在研究太阳帝国究竟是使用了什么武器能够这么快速给自己带来如此惨重的伤害。终于,在中途岛战役中,美国获得了这个技术,并且秘密开发自己的新型全球战略。据一位不愿透露姓名的内部高官消息:事因三本五十六崇洋媚外,偏要把座机引擎换上Internet Explorer V6型发动机,结果被一名美军飞行员使用最新研发的 野猫烧香 导弹击中。当时这位年轻的飞行员就是日后的美国第51届总统:乔治·布什。
在硫磺岛战役中,美军充分认识到这么一种战略观点:太阳帝国的海军偏向于发展大型炮舰。虽然威胁力强大,但是容易遭到敌军锁定,而且行动缓慢,一旦遇到行动力灵活的幽灵潜艇和快速轰炸机编队,就毫无招架之力。于是,美国人开始吸收经验,研制了一批航空母舰编队和各大司令部,分布于世界各大洋大洲,其中,就有装备webform动力的第七舰队常驻太平洋,随时防止太阳帝国再起、装备了xml动力的第四舰队常驻印度洋,特别关注中东局势、装备了IronPython级超音速运输机的第101空降师常驻地中海。而五角大楼自己则通过webservices频道随时指挥着这一切。
在瓜分战后欧洲地盘后,世界格局开始变动了。在斯大林格勒战役中Navigator落入了俄罗斯手中,并且被俄罗斯的宝林斯基教授改造成一个新的武器:Firefox, 宝林斯基指出:爱因斯坦的理论存在很多不稳定性和不安全性,而且核心技术掌握在美国人手中,这样很不利于俄罗斯统一世界,最终实现共产主义大社会的理想。于是,俄罗斯在E = NJ2的基础上,开始研究出新的理论观点:
E= FS2
Energy = Firefox × JavaScript × ActionScript
爱因斯坦理论的不完美性,同盟国也有发现,为了生怕俄罗斯制造出超级武器,爱因斯坦的继承人,同盟国的 史蒂芬·霍金 根据旧有的E=MC2和当年诺曼底战役和解放巴黎战役中缴获的Javascript,催生并强化了西欧盟军自己的Jscript。 并且提出了一个更富于时代需求的诠释:
E = MC2 [史蒂芬·霍金第一版本]
Energy = MSXML × Css ×JScript
柏林墙架起之后,欧洲国家心理很不是滋味:他娘的,你们两个要打架也别到我们的地盘来打。但是,这种话也只能在心里自我安慰一下,谁也没有胆量敢说出来。唉,还是暗地里慢慢来吧,将来有实力了再说。于是,一些欧洲国家向美国打了请示报告:“大哥,我们眼下缺这缺那的,煮顿饭吃都不容易,我们想自己搞个钢铁承包责任制,您看行不?”,大哥说:“去去去,要搞什么自己搞去,以后这种鸡毛蒜皮的小事少来烦老子”。于是,欧洲钢铁联盟就这样建立了,其实,他们内心想的是:“今天我管你叫大哥,明天我要你管老子叫爹”。
“古巴导弹危机”致使苏联的颜面尽失,为了报仇雪恨,宝林斯基已经针对史蒂芬·霍金的MSXML而开发出了更强悍的XMLHttpRequest级洲际导弹,射程更加精确。 苏联即将开展“切尔诺贝利”行动,以189枚核弹荡平欧洲。打算先杀鸡给猴子(美国)看。他们的路线图是这样的:
E = FX2
Energy = FireFox × XMLHttpRequest × XML
但是,这个美好的计划破产了,捷克斯洛伐克出卖了苏联,把这个风声透露给北约。为什么?是否记得“布拉格之春”事件?
就在核弹即将发射的前夜,一名北约特种部队士兵携带者一只短小精悍的AJAX型号无声枪,混入了克里姆林宫,暗杀了苏联总理,她的名字叫谭雅。并且从克格勃主任尤里的私人部队那里获得了不少机密资料。第三次世界大战终于没有爆发。根据这些机密资料,最终由北约司令部建立了适用于全球的终极防御理论:
E = EX2
Energy = ECMASCRIPT × XMLHttpRequest × XHTML
如今,苏联垮台了,美国也因为亚洲金融危机和雷曼兄弟公司破产带来的连锁性世界金融危机而元气大伤,还记得前面说过那个“欧洲钢铁联盟”吗?不知啥时候已经改名叫“欧洲联盟”了,趁着当年美国和苏联斗得你死我活,他们东方卖铁给苏联,西方卖米给美国,现在美国得管欧盟叫“谷哥”了。光搞经济不行,军事也要过硬,东方有个国家有句老话:“两手都要抓,两手都要硬”。欧盟强大了之后,史蒂芬·霍金终于可以不再被逼效力于美国了,于是他回到英国剑桥大学,再一次诠释了爱因斯坦的理论:
E = MC2 [史蒂芬·霍金第二版本]
Energy = GMail × Chrome × Cloud
与此同时,在世界各地分布着一些阴险的组织,尤其是最大的基地组织,长期以来,仗着美苏争斗而无人关注他们,于是便有了充足的时间和精力制造大规模杀伤性武器,他们有着共同的宗教信仰:
E = BS2
Energy = Browse × ActionScript × JavaScript
前面说到过美国曾经在二战中从太阳帝国那里缴获了秘密武器,如今,研发阶段已经成熟,这下,可以拿出来对付恐怖份子的大规模杀伤性武器,顺便给欧盟一个下马威,“小样的,你这吃里扒外的东西别得意,这个世界还是老子说了算”:
E = NS2
Energy = .Net × SilverLight × JavaScript
故事依然没有完结……
看到这里,也应该能够想象到,浏览器中最不争气,最不安全,最不稳定的,当属IE6以及那些旧有的基于微软专用技术开发的HTML格局。各种病毒、木马、就是通过IE6给放进来的。当然firefox和IE7、IE8也不是绝对的就安全,但是根据现实情况,相比之下,还是安全多了(谢绝死扣字眼)。
上面提到的安全性也许和我们无关,但是另一个重点:兼容性,就是和我们有关了。为了我们自己,为了我们不再因为IE6的兼容性而加班加点工作,能多一个客户告别IE6,就是为我们多带来一点希望。不要去等微软,微软铁定了心“我们的VISTA系统……”,也不要去等别人。人人等别人,无人是别人。一切都要从自己做起,看到一个客户,就宣扬一次IE6的坏处,哪怕是欺骗、诱惑、威胁、行贿……等等不限手段。
为了要做到斩草除根,我们该推荐的东西就不是Firefox,也不是chrome,更不是opera,装了firefox,人们仍然会有可能“不小心打开IE6”,甚至是“不知不觉的情况下已经在使用IE6”。所以,我们该推荐的东西是IE7。IE7和非IE浏览器的兼容性已经是非常的相像,基于firefox做的测试开发,在IE7上面的兼容性都是非常好,Firefox可以和IE6共存,但是IE7不可能和IE6共存(那些多IE绿色版本不在考虑之列,那种东西是不可能进入寻常百姓家的)。装了IE7,就是格了IE6的命。
可能有人会说:“我装遨游,360浏览器等等等,也非常安全,没有必要升级到IE7(8)”,但是请注意,这篇文章是发布在什么地方的?是写给什么人看的?看这篇文章并且能够坚持看到这一段话的你,又是什么人? 99.99%都是程序员。你具备这种专业知识,并且拥有解决问题的能力,保证系统安全性是理所当然的,保证各个浏览器的兼容性也是理所当然的。而环顾我们的四周,千千万万个连firefox是什么东西都没听说过的人,你也就不要白费口舌去解释“基于XX内核”、“浏览器安全性”、“javascript漏洞”等等术语了。你最该做的事情,就是让他们装上IE7,不是为了使用IE7而装,而是为了“不再使用IE6”而装。同时也是为了你早日不再需要 try XMLHttpRequest catch{ new MSXML2 }。
同样写给“XX花园后续版”、“XX论坛精简版”、“XX政府OEM版”的作者们,希望你们也能够顺手做个集成进去,系统本质上的安全性好了,兼容性好了,支持者们自然也会多起来。
好了
两个章节都只是一个工作建议,如果你是.NET程序员,你就该亲自为你身边的人们安装上FrameWork,如果你是WEB程序员,你就该尽可能让你身边的人永远不再使用IE6(window2000等有特殊原因的客户例外),特别是非IT工作人士,学校里的小女生等病毒木马的优质客户们,即使是在因为某些原因而暂时必须保留IE6的情况下,你也必须把IE6的种种坏处传达给他们。在可能的情况下,不应该是你去被动地兼容它,而是应该放弃它,即使是在IE6上能够完美运行,也仅仅是因为一部分常用WEB标准的偶然因素。即使是必须做到IE6兼容性,也希望能够在页面上做个提示:“正确显示该页 面,需要IE7.0或者更高版本的浏览器,点击这里下载……”。如果我们每个人都能够具备这样的观念,那么IE6的消亡是指日可待。否则,在不久后的WINDOWS7时代, 甚至是更远的WINDOWS8时代,都还要因为这个事情而头痛,就是对整个程序员群体的莫大讽刺了。如果你是ASP.NET程序员,你就该两件事情都做。
*世界大战的故事纯属娱乐性质的虚构,请勿通报各国领事馆。
*有5条明显是没有看清本文原意的评论已经删除
最好,打个义务广告:国内的.NET空间目前还是1.1比较多,建议不要买这种空间,目前已经没有必要开发1.1程序了。 国外空间基本都支持ASP.NET2.0,SQL2005。而且价格也要便宜过国内。一般300多至400RMB一年,而且还有另外一个彼此心照不宣的原因:把东西放国外比较有利于网站安全。godday(应该是这么写吧,懒得去查了)和另一个与它知名的服务商(忘记了,自己搜)那里就有。