日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET开发的一些积累

發(fā)布時間:2025/3/21 asp.net 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET开发的一些积累 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ASP.NET項(xiàng)目開發(fā)一些瑣碎的積累

?

1.過濾危險的字符串,諸如“=”、“>”等可能會諸如數(shù)據(jù)庫的危險字符串,我看過很多人做的網(wǎng)頁僅僅進(jìn)行客戶端腳本驗(yàn)證是不夠的。必須在服務(wù)器段的后臺代碼里面也進(jìn)行數(shù)據(jù)驗(yàn)證,我曾經(jīng)編寫過一個程序可以繞過腳本驗(yàn)證提交表單。

2.判斷字符串可否轉(zhuǎn)換成整形、字符型、還是浮點(diǎn)型等

3.錯誤處理,如果簡單的站點(diǎn)需要配置一下寫一下Application_Error事件就可以了。復(fù)雜的站點(diǎn)需要編寫日志類,來處理

?? 使用記錄站點(diǎn)出現(xiàn)的異常。

4.經(jīng)常用地的Request.QueryString操作。最好寫成公共的處理方法以返回需要的類型數(shù)據(jù)。具體可以參考動網(wǎng)論壇的.

5.根據(jù)站點(diǎn)的規(guī)模以及功能劃分出幾個區(qū)域分別基礎(chǔ)Page類。諸如:后臺管理界面、用戶中心、幫助中心、Ajax處理。還需要注意網(wǎng)頁內(nèi)容是否需要在客戶端存儲。如果開發(fā)的項(xiàng)目自己公司的同時需要進(jìn)行維護(hù),同時應(yīng)該考慮Js腳本文件的變化,因?yàn)槿绻枰黾覬S代碼可能每個頁面都要增加,所以最好的輸出腳本的方式就是定義公共的類。我們所經(jīng)常用到Page對象的ClientScript屬性并不能完成所有功能的腳本注冊,如果你想寫一個公共的Page類并且向頭部輸出js,那ScriptManger是不能完成的。它僅限于向Body元素內(nèi)部輸出腳本。一般我會這個往頭部添加腳本

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文件可以直接在基類中添加就可以了。

這個道理同樣適用于數(shù)據(jù)庫開發(fā),比如PetShop中用到了四個數(shù)據(jù)庫分別存放主題數(shù)據(jù)、訂單中心、客戶數(shù)據(jù)等根據(jù)不同的模塊來劃分?jǐn)?shù)據(jù)庫。劃分的原則就是:表直接聯(lián)系特別密切的劃分到一個數(shù)據(jù)庫中,比較松散的劃分的兩個數(shù)據(jù)庫中。這樣便于后期的管理與維護(hù)(當(dāng)然,如果是租用空間還是就不要考慮這個了,因?yàn)橥泄芊?wù)器買數(shù)據(jù)庫也需要錢的。。多個數(shù)據(jù)庫多點(diǎn)投入,這樣的客戶還是用一個省事)。

6.經(jīng)常用的的消息彈出框最好也單獨(dú)寫一個類來進(jìn)行處理。還有獲取主機(jī)IP、簡體字繁體直接的轉(zhuǎn)換、字符的加密解密、Cookie操作、文件操作、URL操作(獲取根目錄URL等,經(jīng)常在用戶控件中會用到,一個用戶控件可能會被幾個不屬于一個

目錄層次的Page調(diào)用,如果該用戶控件上有圖片、JS文件路徑就會需要獲取根目錄的URL)

7.必須了解軟件的運(yùn)行環(huán)境是在機(jī)房托管的服務(wù)器還是租用的空間?托管的服務(wù)器開發(fā)限制較少。如果是租用的空間限制比較大,好多功能不能用,如果是機(jī)房托管的服務(wù)器靈活性就比較大了。

8.注意在代碼中應(yīng)用的sql語句,注意變量的類型與sql中數(shù)據(jù)類型相對應(yīng),如

?????

string?a="45454";
string?sql="SELECT?*?FROM?[Customer]?customerID="+a.ToString();

?

編譯的時候并沒有錯,執(zhí)行的時候也就有問題了。。進(jìn)入SQL中執(zhí)行的時候“45454”就會被解釋成整形了。如果超出數(shù)據(jù)范圍就會出現(xiàn)異常。這時候就需要的了''(單引號)

?

?

string?a="45454";
string?sql="SELECT?*?FROM?[Customer]?customerID='"+a.ToString()+"'";

?9.編碼過程中最大限度的實(shí)現(xiàn)功能的模塊化。如果一個頁面上有查過兩個以上的功能區(qū)域,做好把每個區(qū)域做成用戶控件,用戶控件之間盡可能少的了解的其他用戶控件。可以通過session、Cookie 來共享數(shù)據(jù)。模塊化不僅有利于代碼移植,而且便于代碼修改于閱讀。

10.網(wǎng)站設(shè)計過程中應(yīng)該仔細(xì)的考慮緩存的設(shè)計,這樣可以大幅度的提高性能。一般來說讀取數(shù)據(jù)庫比讀取普通硬盤上的文本文件要慢一些,所以我經(jīng)常緩存一些XML文件到Cache中。測試一下就會發(fā)現(xiàn)性能提升時很明顯的事情。

?11.設(shè)計的時候針對不同的項(xiàng)目必須考慮其變化點(diǎn)。我經(jīng)常做一些電子商務(wù)平臺的軟件。最大的變化點(diǎn)就業(yè)經(jīng)常變更的銷售策略,從配送發(fā)貨到商品打折,經(jīng)常會變化,對于項(xiàng)目來說就是業(yè)務(wù)邏輯層經(jīng)常地變動。所以寫代碼的時候最好可以把變化點(diǎn)進(jìn)行分離出來,業(yè)務(wù)的邏輯的處理最好編寫單獨(dú)的模塊,經(jīng)常用到的字符也可以轉(zhuǎn)換成一個類的常量單獨(dú)存儲。

?12.對于數(shù)據(jù)庫的完整性雖然約束不支持跨數(shù)據(jù)的,但是觸發(fā)器卻支持。當(dāng)需要數(shù)據(jù)實(shí)現(xiàn)聯(lián)動的時候處理用C#代碼來針對每個表來處理之外,也可以采用觸發(fā)器實(shí)現(xiàn)多個表之間的數(shù)據(jù)同步。但是觸發(fā)器是在其他外鍵約束沒有作用的是時候才會采用的,因?yàn)橛|發(fā)器作為約束來使用并沒有外鍵那么強(qiáng)。

13.好的編碼規(guī)范是才能保證良好的程序結(jié)構(gòu)與可讀性。如果開發(fā)項(xiàng)目前做編碼規(guī)范那么即使代碼結(jié)構(gòu)再好,其可讀性也會大大降低。多說一下數(shù)據(jù)庫的命名吧。一般的一個中型項(xiàng)目少說也得100多個表,如果名字命名的不好后期維護(hù)人員看著是很頭痛的。一般表名最好采用前綴、后綴來安功能或區(qū)域來劃分。存儲過程最好采用表名+“_”+動詞的方式來命名便于以后維護(hù),名字不要太短。

轉(zhuǎn)載于:https://www.cnblogs.com/zhuqun/p/3922783.html

總結(jié)

以上是生活随笔為你收集整理的.NET开发的一些积累的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。