Jen

20 Tips to Improve ASP.net Application Performance

There are certain things you should take into account,if you are a asp.net developer.... 最近可能會有個案子,非常需要效能調校,好好研讀這篇文章幫助自已改善開發ASP.NET Ap的習慣。

  1. Disable Session State
    • 如果沒用到Session就關了吧,這應該大家都知道,只是我還蠻常用到的> <"
    • EnableSessionState="false"
  2. Output Buffering
  3. Avoid Server-Side Validation
    • 盡量用JavaScript做Validation囉,多用Validation control
    • 如果需要跟後端資料做驗證,也可以寫一些簡單的Ajax驗證
  4. Repeater Control Good, DataList, DataGrid, and DataView controls Bad
    • Repeater is best to me!
    • 在套前台版面,Repeater control是我的最愛,簡單又明瞭.
  5. Take advantage of HttpResponse.IsClientConnected before performing a large operation
    • if (Response.IsClientConnected) { }
    • 這招我倒是沒用到,嗯可以考慮一下
  6. Use HTTPServerUtility.Transfer instead of Response.Redirect
    • Response.Redirect是蠻常用的一個導頁方式,如果在站內,還是多利用HTTPServerUtility.Transfer
    • 這個方法能節省很多不必要的HttpRequest.
  7. Always check Page.IsValid when using Validator Controls
  8. Deploy with Release Build
    • 盡量把寫好的class、物件Release Build成dll,再Deploy到你的web site使用囉.
  9. Turn off Tracing
  10. Page.IsPostBack is your friend
    • 有些事是PostBack不用做的事或者PostBack該做的,盡量寫清楚囉.
  11. Avoid Exceptions
    • 別忘了,多想一下、多用一點try catch
    • 但不是亂用或濫用,我就曾經這樣.有些錯是必須讓它出現,好像開發人員去trace bug,我卻什麼事都沒做,隱藏掉了,這樣就不太好了.
  12. Caching is Possibly the number one tip!
    • Cache也是很Impo的啊!這個我沒有懂很多真是的...不過接來下我也是要用到,有心得再報告.
  13. Create Per-Request Cache
    • Use HTTPContect.Items to add single page load to create a per-request cache
    • 對我來說又是新招了...哈哈!
  14. StringBuilder
    • 在Java裏我記得沒錯的話有一種東西叫做「String pools」,當你每次new 出一個String instance的時候就會把它丟入String pools,String + String的效能不好也是因為這樣,更何況是我們常用String += String...String pools就會有一堆我們用過的String.
    • new StringBuilder()來用用吧.
  15. Turn Off ViewState
    • 記錄page level State,如果用不到也關了他吧.
  16. Use Paging
  17. Use the AppOffline.htm when updating binaries
  18. Use ControlState and not ViewState for Controls
  19. Use the Finally Method
  20. Option Strict and Option Explicit
有人說ASP.NET寫不出高效能的WebAp,也有人把WebAp效能差的原因怪罪於Server不夠強、頻寬不夠寬,試想,以上二十點你都是神手了嗎?我還要繼續學習才是... 參考:http://www.realsoftwaredevelopment.com/2007/08/20-tips-to-impr.html

0 意見: