近期的幾個(gè)ASP.NET開(kāi)發(fā)經(jīng)驗(yàn)總結(jié)和收集_.Net教程
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
推薦:.NET平臺(tái)依賴注入機(jī)制及IoC的設(shè)計(jì)與實(shí)現(xiàn)我們?cè)O(shè)計(jì)的分層架構(gòu),層與層之間應(yīng)該是松散耦合的。因?yàn)槭菃蜗騿我徽{(diào)用,所以,這里的“松散耦合”實(shí)際是指上層類不能具體依賴于下層類,而應(yīng)該依賴于下層提供的一個(gè)接口。這樣,上層
一:頁(yè)面中Page_Load事件 和 Page.IsPostBack執(zhí)行兩次的原因.原因一:
當(dāng)<%@Page....中沒(méi)有AutoEventWireup定義時(shí)會(huì)導(dǎo)致Page_Load執(zhí)行兩次,如果有定義,且值為true時(shí),在IsPostBack中動(dòng)態(tài)綁定控件等情況也會(huì)導(dǎo)致頁(yè)面Load事件發(fā)生兩次..因此,個(gè)人推薦不要忽視AutoEventWireup,且建議設(shè)置其值為 false;
原因二:
當(dāng)頁(yè)面中有<img src="">時(shí),也可能會(huì)導(dǎo)致Page_Load執(zhí)行兩次,解決方法:我也唔知.
二:OnInit與OnLoad
個(gè)人理解:如果頁(yè)面禁用了視圖或者邏輯過(guò)程中沒(méi)有用到視圖或者沒(méi)有必要回發(fā)數(shù)據(jù)的話,可以直接重寫OnLoad方法,而不用再寫OnInit方法,因?yàn)镺nInit()之后還有進(jìn)行一些視圖方法的操作及回發(fā)數(shù)據(jù)的處理.因此直接OnLoad效率會(huì)高一些.
三:遠(yuǎn)程服務(wù)器返回500錯(cuò)誤
過(guò)程中需要從遠(yuǎn)程服務(wù)器下載文件到本地.可一直報(bào)遠(yuǎn)程服務(wù)器返回500錯(cuò)誤.檢查來(lái)檢查去,結(jié)果錯(cuò)誤發(fā)生在本地:
原因:頁(yè)面以ANSI編碼保存,而本地完全路徑中有中文字符,導(dǎo)致路徑不能被程序有效識(shí)別.
解決方法:將頁(yè)面編碼更換成utf-8即可.VS系列中可通過(guò)高級(jí)保存選項(xiàng)更改.
四:Response.End,Response.Redirect等導(dǎo)致"正在中止線程"的問(wèn)題
如果是Response.End(),可用HttpContext.Current.ApplicationInstance.CompleteRequest()來(lái)代替(據(jù)個(gè)人測(cè)試,貌似使用這句后,后邊不能再有程序執(zhí)行,否則仍然會(huì)繼續(xù)執(zhí)行下去?)
對(duì)于Response.Redirect()可用其重載方法:Response.Redirect(string,bool)
當(dāng)然,Server.Execute(),Server.Transfer()情況也類似.
附上ASP.NET頁(yè)面的生存周期(看明白了就知道為何有時(shí)只需要OnLoad,而不需要OnInit了)
____
一:初始化Init:初始化對(duì)象--Init事件(OnInit方法)
二:加載視圖狀態(tài):LoadViewState方法
三:處理回發(fā)數(shù)據(jù):LoadPostData方法---實(shí)際上這一步只是加載,并沒(méi)有做其它的處理.
---實(shí)現(xiàn)該方法的控件要繼承自IPostBackDataHandler接口,該接口有LoadPostData和RaisePostBackDataChangedEvent兩個(gè)方法
四:加載Load:---Load事件(OnLoad方法)---該過(guò)程中所有對(duì)象都已經(jīng)被實(shí)例化了..
五:發(fā)送回發(fā)更改通知:RaisePostBackDataChangedEvent方法
六:處理回發(fā)事件:IPostBackEventHandler接口的RaisePostBackEvent方法.
七:預(yù)呈現(xiàn):OnPreRender方法(PreRender事件)
八:保存視圖狀態(tài):SaveViewState方法
九:呈現(xiàn):Render方法(--不再有對(duì)應(yīng)事件)
十:處置,回收資源:Dispose方法
十一:卸載:UnLoad事件(OnUnLoad方法)..
---------Page是從Control繼承的,因此它也是一種特殊的控件!
分享:基于.NET平臺(tái)的分層架構(gòu)實(shí)戰(zhàn)(五)接口的設(shè)計(jì)與實(shí)現(xiàn)接下來(lái),將進(jìn)行接口的設(shè)計(jì)。這里包括數(shù)據(jù)訪問(wèn)層接口和業(yè)務(wù)邏輯層接口。在分層架構(gòu)中,接口扮演著非常重要的角色,它不但直接決定了各層中的各個(gè)操作類需要實(shí)現(xiàn)何種操作,而且它明確了各個(gè)層次的
相關(guān).Net教程:
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 談數(shù)據(jù)結(jié)構(gòu)與算法:C#語(yǔ)言描述 目錄
- 關(guān)于DDD:管理工作單元實(shí)例的兩種模式的使用方法
- 關(guān)于ADO.NET數(shù)據(jù)庫(kù)連接的相關(guān)知識(shí)的總結(jié)
- 用ASP.NET/C#連接Access和SQL Server數(shù)據(jù)庫(kù)
- 優(yōu)秀ASP.NET程序員修煉之路
- 解讀.NET中*延遲*特性的幾個(gè)陷阱
- asp.net如何連接sql server2000數(shù)據(jù)庫(kù)
- .Net應(yīng)用:制作ASP腳本組件實(shí)現(xiàn)重啟服務(wù)器
- 怎么在ASP.NET中使用SmtpMail發(fā)送郵件
- .NET中加密與解密QueryString的方法
- 相關(guān)鏈接:
復(fù)制本頁(yè)鏈接| 搜索近期的幾個(gè)ASP.NET開(kāi)發(fā)經(jīng)驗(yàn)總結(jié)和收集
- 教程說(shuō)明:
.Net教程-近期的幾個(gè)ASP.NET開(kāi)發(fā)經(jīng)驗(yàn)總結(jié)和收集
。