您當前位置>首頁 » 新聞資(zī)訊 » 網站(zhàn)建設 >
Web開發學習體會
發表時間:2005-2-1
發布人:葵宇科技
浏覽次數:26
Web開發學習體會
這段時間一直在學習使用vss.net做web方面的東西,稍微有些感觸,主要是如(rú)下(xià)幾方面的:
1. web及B/S開發思想、模式
由于起初對HTML語言沒有多少(shǎo)了解,所以剛拿到一些例子(zǐ),特别是那些諸如(rú)JAVASCRIPT等客戶端腳本無從下(xià)手,甚至一個(gè)簡單的頁面都要花(huā)很長一段時間來處理。再者,長時間受C/S開發模式的影響,在WEB開發過程中(zhōng)時常會自覺不自覺的用C/S的思維考慮一些B/S開發特有的東西,遇到很多在C/S模式中(zhōng)看似十分簡單而到web編程的時候就感到特别痛苦,甚至無法實現;正因為受到這種思想的束縛,我們近期在開發的《智合論壇系統》遇到了很多麻煩,造成系統整體框架不合理、系統界面十分醜陋、系統運行效率低下(xià)、系統安全性低下(xià)等一系列後遺症,但是在這次論壇開發中(zhōng)我還是得到的挺多啟發:
a) Web系統的觀念需要正确對待,它已經不是單純的一個(gè)技術(shù)系統,它涉及了html、美工(web設計)、框架設計等,當然國内外有很多軟件公司是數據庫、系統代碼、美工、網頁設計等都是分工合作的,但是我個(gè)人認為程序員的能力是來自多方面的,我想更多的武裝才能有更好的成就和(hé)競争力度,所以經常自我提醒,在以後的開發過程中(zhōng)要盡量把以上提到的各個(gè)部分做到盡善盡美,不要老覺得隻要把代碼寫好就行,界面是美工的事;
b) 在開發web應用的過程中(zhōng),團隊間的合作更為重要,比傳統的C/S開發相互間的協作更多了,因此交流相當重要,以這次論壇開發為例,由于開發前約定的一些事項沒有得到嚴格執行,造成許多重複勞動(dòng),甚至一度導緻系統運行失敗;這裡特别提醒在以後開發中(zhōng),一些公用的組件、類、控件、接口等最好能由全體組員讨論得出,修改過程一定要慎重,有必要的外部接口必須加上方法級注釋;
c) 采用B/S模式開發應用,對數據安全、并發控制的要求十分之高,C/S方式沒法比拟,而我們本次的論壇開發過程中(zhōng)一直采用的是對數據進行簡單加密,沒有找到行之有效的方法加以解決,系統安全問(wèn)題是個(gè)很大的隐患,希望通(tōng)過今後學習探索能找到解決措施;
d) 我個(gè)人認為采用web開發模式重要的是理解什麼是B/S,它的優點以及限制,這樣在實際的應用中(zhōng)才能得心應手。模式是一些優秀的面向對象方法的總結,這些東西要靈活使用,不能為了模式而模式;
e) 我覺得在學一門新語言、一個(gè)新開發工具的時候一定要逐步養成一些好習慣,ASP.NET也不例外。在ASP.NET的開發中(zhōng),可(kě)以學習的技巧不少(shǎo),但是,一些基本的編程習慣我們一定要養成,這樣不但能根本上提高程序質量和(hé)開發效率,而且也利于程序的閱讀和(hé)團隊開發。如(rú)果自己寫的程序隻有自己可(kě)以看懂或者隻有幾個(gè)人可(kě)以看懂,即使程序技巧神乎其技,對于程序的升級和(hé)維護都是緻命問(wèn)題。開發過程中(zhōng)諸如(rú):錯誤處理、字符串的處理、數據庫鍊接及關(guān)閉時機等一些影響到系統性能的處理一定要養成比較好的習慣,特别是數據庫操作方面的習慣,一定要堅持“盡晚開啟,盡早關(guān)閉”的原則,因為WEB應用面對的用戶群體肯定比傳統的C/S要大,保證系統性能是十分重要的;
2. .net Framework 框架
.net framwork是一個(gè)龐大而完整的類庫,幾乎涵蓋了所有的開發領域,裡面不但有很多可(kě)以使用的地方,也有很多值得學習的地方,比如(rú)如(rú)何組織各個(gè)類之間的協作關(guān)系等等。
在這個(gè)框架用的最多的也就是ADO.NET部分的東西了,而說到ADO.NET不得不提DataGrid、DataSet、DataReader、DataAdapter一些重量級的控件、類,這使許多數據交互提供了極大的便利,這次開發過程中(zhōng)用到的東西有限,主要DataSet、DataGrid、DataReade反複使用,而且值得檢讨的是一直沒深入研究這幾個(gè)好東西,不過關(guān)于DataGrid在使用過程中(zhōng)學到了一些比較好的用法,比如(rú)模闆列、分頁功能等,功能的确強大,細節上的東西就不在這贅述了。
3. 在實際開發過程中(zhōng)的一些小問(wèn)題
在開發過程中(zhōng),通(tōng)過摸索查資(zī)料,收集了一些值得提出來的經驗:
a) 相對于原來的for語句foreach具有更好的執行效率,foreach的平均花(huā)費時間隻有for的30%。通(tōng)過測試結果在for和(hé)foreach都可(kě)以使用的情況下(xià),我們推薦使用效率更高的foreach。另外, 用for寫入數據時間大約是讀取數據時間的10倍左右;
b) 在asp.net程序中(zhōng),使用sa賬号的是一種非常不安全的做法,它具有在數據庫上執行任何操作的權限。黑客可(kě)以調用類似于xp_cmdshell這樣的擴展存儲過程進行攻擊;
c) 在處理數據交互的時候,盡量将組織SQL語句的處理放到中(zhōng)間層(比如(rú)專門的數據操作類、存儲過程等),這是防止注入式攻擊的有效方法;
d) 避免到服務器(qì)的不必要的往返過程。使用 Page.IsPostBack 避免對往返過程執行不必要的處理;
e) 一定要禁用調試模式;
f) 一般情況下(xià),讀取大量數據,對返回數據不做大量處理用SqlDataReader.對返回數據大量處理用DatSet比較合适.對SqlDataReader和(hé)DataSet的選擇取決于程序功能的實現;
g) 數據綁定建議使用<%# ctype(Container.DataItem,DataRowView).Row("字段名") %>。數據量大的時候可(kě)提高幾百倍的速度;
以上僅僅是個(gè)人的部分收集,個(gè)人觀點很不全面,有些内容還顯得十分空洞,或許還有錯誤,希望在以後的學習實踐中(zhōng)繼續進步、繼續積累。