.NET開發的一些積累

來源:互聯網
上載者:User

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多個表,如果名字命名的不好後期維護人員看著是很頭痛的。一般表名最好採用首碼、尾碼來安功能或地區來劃分。預存程序最好採用表名+“_”+動詞的方式來命名便於以後維護,名字不要太短。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.