.NET开发的一些积累
ASP.NET項目開發一些瑣碎的積累
?
1.過濾危險的字符串,諸如“=”、“>”等可能會諸如數據庫的危險字符串,我看過很多人做的網頁僅僅進行客戶端腳本驗證是不夠的。必須在服務器段的后臺代碼里面也進行數據驗證,我曾經編寫過一個程序可以繞過腳本驗證提交表單。
2.判斷字符串可否轉換成整形、字符型、還是浮點型等
3.錯誤處理,如果簡單的站點需要配置一下寫一下Application_Error事件就可以了。復雜的站點需要編寫日志類,來處理
?? 使用記錄站點出現的異常。
4.經常用地的Request.QueryString操作。最好寫成公共的處理方法以返回需要的類型數據。具體可以參考動網論壇的.
5.根據站點的規模以及功能劃分出幾個區域分別基礎Page類。諸如:后臺管理界面、用戶中心、幫助中心、Ajax處理。還需要注意網頁內容是否需要在客戶端存儲。如果開發的項目自己公司的同時需要進行維護,同時應該考慮Js腳本文件的變化,因為如果需要增加JS代碼可能每個頁面都要增加,所以最好的輸出腳本的方式就是定義公共的類。我們所經常用到Page對象的ClientScript屬性并不能完成所有功能的腳本注冊,如果你想寫一個公共的Page類并且向頭部輸出js,那ScriptManger是不能完成的。它僅限于向Body元素內部輸出腳本。一般我會這個往頭部添加腳本
HtmlGenericControl?js=?new?HtmlGenericControl("script");?js.Attributes.Add("type",?"text/javascript");?
js.Attributes.Add("src","test/123.js");?
this.Page.Header.Controls.Add(js);?
?
以后如果每個頁面都需要添加Js文件可以直接在基類中添加就可以了。
這個道理同樣適用于數據庫開發,比如PetShop中用到了四個數據庫分別存放主題數據、訂單中心、客戶數據等根據不同的模塊來劃分數據庫。劃分的原則就是:表直接聯系特別密切的劃分到一個數據庫中,比較松散的劃分的兩個數據庫中。這樣便于后期的管理與維護(當然,如果是租用空間還是就不要考慮這個了,因為托管服務器買數據庫也需要錢的。。多個數據庫多點投入,這樣的客戶還是用一個省事)。
6.經常用的的消息彈出框最好也單獨寫一個類來進行處理。還有獲取主機IP、簡體字繁體直接的轉換、字符的加密解密、Cookie操作、文件操作、URL操作(獲取根目錄URL等,經常在用戶控件中會用到,一個用戶控件可能會被幾個不屬于一個
目錄層次的Page調用,如果該用戶控件上有圖片、JS文件路徑就會需要獲取根目錄的URL)
7.必須了解軟件的運行環境是在機房托管的服務器還是租用的空間?托管的服務器開發限制較少。如果是租用的空間限制比較大,好多功能不能用,如果是機房托管的服務器靈活性就比較大了。
8.注意在代碼中應用的sql語句,注意變量的類型與sql中數據類型相對應,如
?????
string?a="45454";string?sql="SELECT?*?FROM?[Customer]?customerID="+a.ToString();
?
編譯的時候并沒有錯,執行的時候也就有問題了。。進入SQL中執行的時候“45454”就會被解釋成整形了。如果超出數據范圍就會出現異常。這時候就需要的了''(單引號)
?
?
string?a="45454";string?sql="SELECT?*?FROM?[Customer]?customerID='"+a.ToString()+"'";
?9.編碼過程中最大限度的實現功能的模塊化。如果一個頁面上有查過兩個以上的功能區域,做好把每個區域做成用戶控件,用戶控件之間盡可能少的了解的其他用戶控件。可以通過session、Cookie 來共享數據。模塊化不僅有利于代碼移植,而且便于代碼修改于閱讀。
10.網站設計過程中應該仔細的考慮緩存的設計,這樣可以大幅度的提高性能。一般來說讀取數據庫比讀取普通硬盤上的文本文件要慢一些,所以我經常緩存一些XML文件到Cache中。測試一下就會發現性能提升時很明顯的事情。
?11.設計的時候針對不同的項目必須考慮其變化點。我經常做一些電子商務平臺的軟件。最大的變化點就業經常變更的銷售策略,從配送發貨到商品打折,經常會變化,對于項目來說就是業務邏輯層經常地變動。所以寫代碼的時候最好可以把變化點進行分離出來,業務的邏輯的處理最好編寫單獨的模塊,經常用到的字符也可以轉換成一個類的常量單獨存儲。
?12.對于數據庫的完整性雖然約束不支持跨數據的,但是觸發器卻支持。當需要數據實現聯動的時候處理用C#代碼來針對每個表來處理之外,也可以采用觸發器實現多個表之間的數據同步。但是觸發器是在其他外鍵約束沒有作用的是時候才會采用的,因為觸發器作為約束來使用并沒有外鍵那么強。
13.好的編碼規范是才能保證良好的程序結構與可讀性。如果開發項目前做編碼規范那么即使代碼結構再好,其可讀性也會大大降低。多說一下數據庫的命名吧。一般的一個中型項目少說也得100多個表,如果名字命名的不好后期維護人員看著是很頭痛的。一般表名最好采用前綴、后綴來安功能或區域來劃分。存儲過程最好采用表名+“_”+動詞的方式來命名便于以后維護,名字不要太短。
轉載于:https://www.cnblogs.com/zhuqun/p/3922783.html
總結
以上是生活随笔為你收集整理的.NET开发的一些积累的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mtr命令详解
- 下一篇: 解决重写父类的方法且不会影响继承的子类的