原文地址: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+!
其實,這些不成熟的心態只在一個原因上能站得住腳:錢,為了拿到更多的錢!如果不是由于這個原因,那么這種心態就只能體現人的虛榮。這也就是本文主要要表達的意思之一。
下面是總結性的建議:
一、學習階段,廣泛地了解同一領域中的各種技術是很重要的,特別是對它們的特性和比較優勢的理解更是重要,這些常識將是你構成科學的軟件開發世界觀的必要因素之一(另外一個重要因素是軟件工程方面的知識);
二、實踐階段,你應該依據科學的軟件開發世界觀來指導自己,不要盲目,更不要讓自己虛榮心作怪;
三、相信,存在既有理由。那些低端的解決方案既然仍然在流行,就說明它仍然在某些方面有自己的優勢,就算你不能或不愿接受它們,也應該嘗試理解它們,盡量避免偏見;
四、那些高端的解決方案,對于我們來說有太多值得學習、研究和探索的地方,我們不應該停留于它們(中的一部分)提供的“低起點”,永遠保持謙虛的態度和求知的熱情;
五、要找準自己的發展方向,并為之不斷努力,切忌浮躁!——是不是覺得這條建議是濫竽充數?實際上,軟件開發涉及的方面太廣闊了,幾乎沒有人能面面俱到,所以上面四條建議都最好能限定在一個相對小的范圍內,限定依據就是你的興趣和特長,當然,最重要的還是發展方向!所以這條建議是最重點!
建議區別和聯系本文與我寫的另外一篇文章(激進派與保守派之間的對壘),這樣更有助于理解和接受本文。
最后,祝所有勤勞的人好運!