近期的幾個ASP.NET開發(fā)經(jīng)驗總結和收集_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:.NET平臺依賴注入機制及IoC的設計與實現(xiàn)
      我們設計的分層架構,層與層之間應該是松散耦合的。因為是單向單一調用,所以,這里的“松散耦合”實際是指上層類不能具體依賴于下層類,而應該依賴于下層提供的一個接口。這樣,上層

      一:頁面中Page_Load事件 和 Page.IsPostBack執(zhí)行兩次的原因.
      原因一:
      當<%@Page....中沒有AutoEventWireup定義時會導致Page_Load執(zhí)行兩次,如果有定義,且值為true時,在IsPostBack中動態(tài)綁定控件等情況也會導致頁面Load事件發(fā)生兩次..因此,個人推薦不要忽視AutoEventWireup,且建議設置其值為 false;
      原因二:
      當頁面中有<img src="">時,也可能會導致Page_Load執(zhí)行兩次,解決方法:我也唔知.

      二:OnInit與OnLoad
      個人理解:如果頁面禁用了視圖或者邏輯過程中沒有用到視圖或者沒有必要回發(fā)數(shù)據(jù)的話,可以直接重寫OnLoad方法,而不用再寫OnInit方法,因為OnInit()之后還有進行一些視圖方法的操作及回發(fā)數(shù)據(jù)的處理.因此直接OnLoad效率會高一些.

      三:遠程服務器返回500錯誤
      過程中需要從遠程服務器下載文件到本地.可一直報遠程服務器返回500錯誤.檢查來檢查去,結果錯誤發(fā)生在本地:
      原因:頁面以ANSI編碼保存,而本地完全路徑中有中文字符,導致路徑不能被程序有效識別.
      解決方法:將頁面編碼更換成utf-8即可.VS系列中可通過高級保存選項更改.

      四:Response.End,Response.Redirect等導致"正在中止線程"的問題
      如果是Response.End(),可用HttpContext.Current.ApplicationInstance.CompleteRequest()來代替(據(jù)個人測試,貌似使用這句后,后邊不能再有程序執(zhí)行,否則仍然會繼續(xù)執(zhí)行下去?)
      對于Response.Redirect()可用其重載方法:Response.Redirect(string,bool)
      當然,Server.Execute(),Server.Transfer()情況也類似.

      附上ASP.NET頁面的生存周期(看明白了就知道為何有時只需要OnLoad,而不需要OnInit了)
      ____
      一:初始化Init:初始化對象--Init事件(OnInit方法)
      二:加載視圖狀態(tài):LoadViewState方法
      三:處理回發(fā)數(shù)據(jù):LoadPostData方法---實際上這一步只是加載,并沒有做其它的處理.
      ---實現(xiàn)該方法的控件要繼承自IPostBackDataHandler接口,該接口有LoadPostData和RaisePostBackDataChangedEvent兩個方法
      四:加載Load:---Load事件(OnLoad方法)---該過程中所有對象都已經(jīng)被實例化了..
      五:發(fā)送回發(fā)更改通知:RaisePostBackDataChangedEvent方法
      六:處理回發(fā)事件:IPostBackEventHandler接口的RaisePostBackEvent方法.
      七:預呈現(xiàn):OnPreRender方法(PreRender事件)
      八:保存視圖狀態(tài):SaveViewState方法
      九:呈現(xiàn):Render方法(--不再有對應事件)
      十:處置,回收資源:Dispose方法
      十一:卸載:UnLoad事件(OnUnLoad方法)..
      ---------Page是從Control繼承的,因此它也是一種特殊的控件!

      分享:基于.NET平臺的分層架構實戰(zhàn)(五)接口的設計與實現(xiàn)
      接下來,將進行接口的設計。這里包括數(shù)據(jù)訪問層接口和業(yè)務邏輯層接口。在分層架構中,接口扮演著非常重要的角色,它不但直接決定了各層中的各個操作類需要實現(xiàn)何種操作,而且它明確了各個層次的

      來源:模板無憂//所屬分類:.Net教程/更新時間:2008-08-22
      相關.Net教程