原文地址:http://blog.csdn.net/estyle/archive/2004/07/15/41781.aspx
欢迎转载!但请注明出处(原文地址)和我的姓名:靳田
谢谢啦! ^_^
如果不考虑客户强制要求的情况——白天不懂夜的黑,有不少人在选择B/S开发技术的心态还是不成熟的,主要表现为不切实际、盲目求新求高。希望这篇文章能消除这些人心中的偏见。注意,我对非MS方向几乎完全不了解,所以非MS方向的技术基本也不在本文讨论范畴,不过就心态而言仍然是完全相通的。
目前B/S开发至少都是两层的,所以首要面临的两个问题是:用ISAPI、ASP还是ASP.NET呢?用ACCESS、MSSQL还是其它什么数据库?
第一个问题悬念不大,而第二个问题则很有文章可作啦。——我甚至听到过这样的声音:ACCESS拿不出手!
稍微懂点数据库的都知道,ACCESS是轻量级的面向桌面应用的关系型数据库,MSSQL无论在什么方面都强它太多。如果对ACCESS和MSSQL进行深入研究和测试,它们的差别就更明显、更具体。权威说话、数字作证,这些MSSQL相对ACCESS的优势,让一些心态还不够成熟的朋友开始鄙视ACCESS而盲从MSSQL……下面的臆断可能会伤害一部分人的感情,先向这部分朋友道个歉。
为什么在ASP和ASP.NET的选择上,冲突远小于对数据库技术的选择呢?因为ASP.NET和ASP有非常大的不同,只懂其中之一的人要理解和掌握另一个需要经过比较彻底地再学习,否则几乎无法运用。而ACCESS和MSSQL则不同,它们最基本的概念和操作都是一样的,还都有非常优秀的图形界面支持,而且T-SQL在它们之间几乎没有什么区别,会其中之一的人要想使用另外一个实在是易如反掌!所以,会用ACCESS的人一样可以自称能运用MSSQL,既然自己会用MSSQL,鄙视一下ACCESS又何妨?
但是,我敢说,这些鄙视ACCESS的人在用MSSQL的时候,和使用ACCESS没有什么两样,根本没有发挥出MSSQL的优势来!具体列举MSSQL有哪些可发挥的优势不在本文讨论范畴,但我建议每个从ACCESS转到MSSQL的人都该好好读一读MSSQL的联机丛书。
这不是盲从是什么?在这种不成熟的心态下写出来的程序,行家一看就会打个低分,根本不需要数字说话。如果一定要数字说话,可以,做个测试就能弄清楚!我保守估计,无论你如何优化MSSQL,在相同的硬件环境下运行相同的优化过的T-SQL语句,如果数据记录没有上五十万条,MSSQL和ACCESS的性能差别几乎可以不考虑。更何况你的应用环境是不是那种数据上百万的情况?——与其盲目选择MSSQL,不如优化你的数据库设计和T-SQL语句以及优化程序代码。而且,MSSQL可是很贵的,这个最重要的因素却被大部分人忽略了,原因大家心照不宣。
数据库讨论到这里,再简单讨论一下其它方面。比如同时会ASP和ASP.NET的人,有不少都已经抛弃了ASP而全身心投入ASP.NET了——见到这种情况,微软是最高兴的,它才不管那么多呢!当然,兴趣转移是无可厚非的,但如果面临一个具体项目,在技术选择的时候仍然因偏见而盲目选择ASP.NET则有待商权了。
软件开发准则中肯定有一条:在能够完成目标的前提下,选择自己最拿手的技术进行开发(以保证工程进度和质量)!因此请自问:我的ASP.NET水平已经达到或者超过ASP水平了吗?用ASP.NET比用ASP在项目进度和质量上更有优势和更具保证吗?这个时候,我们必须接受这样的事实:对项目而言,进度和质量才是最重要的,技术服务于项目而非主导项目。换句话说,新技术所具备的新特性,如果对项目而言并非是必须的,那就没有理由必须选择这个新技术。呵呵,离题太远了,好像。言规正传吧!
如果B/S开发是三层甚至多层的,还将面临如何实现中间层的问题,但这个我接触得还不多,不了解情况。我只希望,大家不会鄙视脚本组件而盲从COM/COM+!
其实,这些不成熟的心态只在一个原因上能站得住脚:钱,为了拿到更多的钱!如果不是由于这个原因,那么这种心态就只能体现人的虚荣。这也就是本文主要要表达的意思之一。
下面是总结性的建议:
一、学习阶段,广泛地了解同一领域中的各种技术是很重要的,特别是对它们的特性和比较优势的理解更是重要,这些常识将是你构成科学的软件开发世界观的必要因素之一(另外一个重要因素是软件工程方面的知识);
二、实践阶段,你应该依据科学的软件开发世界观来指导自己,不要盲目,更不要让自己虚荣心作怪;
三、相信,存在既有理由。那些低端的解决方案既然仍然在流行,就说明它仍然在某些方面有自己的优势,就算你不能或不愿接受它们,也应该尝试理解它们,尽量避免偏见;
四、那些高端的解决方案,对于我们来说有太多值得学习、研究和探索的地方,我们不应该停留于它们(中的一部分)提供的“低起点”,永远保持谦虚的态度和求知的热情;
五、要找准自己的发展方向,并为之不断努力,切忌浮躁!——是不是觉得这条建议是滥竽充数?实际上,软件开发涉及的方面太广阔了,几乎没有人能面面俱到,所以上面四条建议都最好能限定在一个相对小的范围内,限定依据就是你的兴趣和特长,当然,最重要的还是发展方向!所以这条建议是最重点!
建议区别和联系本文与我写的另外一篇文章(激进派与保守派之间的对垒),这样更有助于理解和接受本文。
最后,祝所有勤劳的人好运!