40條ASP.NET開發Tip

來源:互聯網
上載者:User

歡迎拍磚,共同進步!!!

1、在compilation 下,請設定debug=false ,如下:

default Language="c#" debug="false">

 

2、請使用Server.Transfer代替Response.Redirect。

 

3、使用Validator控制項,請要經常檢查Page.IsValid。

 

4、請使用foreach迴圈,而不是為字串迭代迴圈。

 

5、請使用用戶端驗證方式(不要每次都在服務端驗證)。

 

6、為了避免重複代碼執行,請檢查“Page.IsPostBack”。

 

7、GIF 和PNG類似,但是PNG通常產生一個較小體積的檔案。(當然,有些瀏覽器不支援PNG格式)

 

8、更新二進位檔案時,請使用AppOffline.htm 。

 

9、除非需要,否則請關閉跟蹤。

<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>

 

10、編譯頁面,請禁用AutoEventWireup。在Machine.config檔案中請設定AutoEventWireup為false。

 

11、如果不需要,請關閉Session會話。

<sessionstate timeout="20" cookieless="false" mode="Off" stateconnectionstring="tcpip=127.0.0.1:42424" sqlconnectionstring="data source=127.0.0.1;Trusted_Connection=no">

 

12、在你產生最終版本的應用程式之前,請選擇Release模式。預設是Debug。

 

13、如果不需要請禁用ViewState 。

EnableViewState="false"

 

14、請避免頻繁的訪問資料庫。

 

15、使用緩衝提高你的應用程式的效能。

 

16、驗證所有的使用者輸入。

 

17、請最後釋放所有資源。

 

18、String 和Stringbuilder。

      修改字串時,使用Stringbuilder而不是String ,在每次字串修改的時候,String都會佔據不同的記憶體空間,而Stringbuilder只使用同一個記憶體空間

 

19、切勿直接使用對象的值,先從本地變數擷取對象的值,然後再使用。因為直接讀取對象的值比讀取變數更花時間。

 

20、避免異常:使用if。

 

21、代碼最佳化:避免使用:x = x +1,而是使用x+=1比較好。

 

22、資料訪問技術:DataReaders提供快速有效資料檢索方法。在效能方面,DataReader是速度遠遠超過DataSets 。

 

23、在做一個笨重的ASP代碼的處理之前,你進行檢查以確保Response.IsClientConnected。

 

24、避免session變數,因為每個ASP頁面是在不同的線程運行和session調用將會被逐一序列化。這樣會降低應用程式。你可以使用QueryString集合或者表單上面的hidden變數來儲存值。

 25、使buffer有效,能提高效能,如:<% response.buffer=true %>

 接著使用:

<% response.flush=true %>

 

26、使用Repeater控制項代替DataGrid,DataList,因為它是高效的,可定製的,和可程式化的。

 

27、在資料庫中檢索大量資料,資料列表消耗更多的時間。

    分頁將顯示特定的資料,但是要考慮所有資料負載。只取當前頁需要的資料。

 

28、避免內嵌JavaScript和CSS。

 

29、使用單個的css檔案,而不是多個css檔案。

    請盡量將您所有的css合并成一個css的類檔案,不管檔案大小,大量的.css檔案會造成大量的請求。.css檔案通常是由瀏覽器緩衝,這樣一個單一的沉重的.css檔案不會導致在每個頁面請求時會有漫長的等待。    內嵌.CSS類導致HTML沉重,因此我覺得:首先考慮一個single.css檔案。 

30、減少cookie的大小。

 

31、壓縮CSS, JavaScript 和Images。

可以使用線上的壓縮,壓縮檔,將下列網頁和最佳化的代碼替換為您的檔案內容。

http://iceyboard.no-ip.org/projects/css_compressor[^]  CSS 壓縮
www.xtreeme.com/javascript-optimizer/[^] .  JS 壓縮

32、適當地使用緩衝。

i、網頁輸出快取:

<%@ OutputCache Duration="3600" VaryByParam="none" %>

ii、頁片段快取:

在每個使用者控制項中寫網頁輸出快取

iii、資料緩衝:

代碼

<script language="C#" runat="server"> 
 Protected void Page_Load (Object src, EventArgs e) 
{   
 DataView dv = (DataView) Cache. Get ("EmployeesDataView");   
 If (dv == null)
 { // wasn't there
  SqlConnection conn =    new SqlConnection ("server=localhost;uid=sa;pwd=;database=Test");  
  SqlDataAdapter da =new SqlDataAdapter ("select * from Employees", conn);  
  Dataset ds = new DataSet();
  da.Fill(ds, "Employees");   
  dv = ds.Tables["Employees"].DefaultView;   
  Cache.Insert ("EmployeesDataView", dv);
  conn.Close();
}   
 Else   
 Response.Write ("<h2>Loaded employees from data cache! </h2>");  
 lb1.DataSource = dv;  
 lb1.DataTextField = "Name";    
 lb1.DataValueField = "Age";   
 DataBind () ;
}   
</script> 

 

33、伺服器端使用諸如Port80s壓縮軟體http://www.port80software.com/products/httpzip/[^]。

 

34、使用了“using”。

 

35、不要聲明成員變數為 public 或者proteted,盡量使用private 成員變數和public/protected 屬性。

 

36、使用strString=string.Empty 代替 strString="" 。

 

37、請儘可能減輕你的分頁檔,盡量避免不必要的標籤,例如使用div代替table。

 

38、在div中寫靜態訊息,必要的時候才顯示出來。這比你設定服務端的label和div的text屬性快。

  

39、如果可能的話,一次性檢索資料庫中的資料。儘可能不要添加資料庫的訪問。因此,整合來自不同表datafields和選擇它們。

 

40、給WebControl取個簡短的名字。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.