国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 12:50:39
字體:
供稿:網(wǎng)友

推薦:.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è)接口。這樣,上層

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

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

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

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

附上ASP.NET頁面的生存周期(看明白了就知道為何有時(shí)只需要OnLoad,而不需要OnInit了)
____
一:初始化Init:初始化對(duì)象--Init事件(OnInit方法)
二:加載視圖狀態(tài):LoadViewState方法
三:處理回發(fā)數(shù)據(jù):LoadPostData方法---實(shí)際上這一步只是加載,并沒有做其它的處理.
---實(shí)現(xiàn)該方法的控件要繼承自IPostBackDataHandler接口,該接口有LoadPostData和RaisePostBackDataChangedEvent兩個(gè)方法
四:加載Load:---Load事件(OnLoad方法)---該過程中所有對(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)
接下來,將進(jìn)行接口的設(shè)計(jì)。這里包括數(shù)據(jù)訪問層接口和業(yè)務(wù)邏輯層接口。在分層架構(gòu)中,接口扮演著非常重要的角色,它不但直接決定了各層中的各個(gè)操作類需要實(shí)現(xiàn)何種操作,而且它明確了各個(gè)層次的

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 郴州市| 定陶县| 南皮县| 巫山县| 盐池县| 蕉岭县| 会理县| 桃园县| 临安市| 黑龙江省| 岑巩县| 二手房| 天台县| 清流县| 阿勒泰市| 罗城| 同心县| 廉江市| 泰顺县| 拉萨市| 临海市| 芮城县| 许昌市| 南木林县| 应用必备| 浦县| 仁怀市| 张家口市| 邵东县| 茌平县| 诸暨市| 新源县| 稷山县| 简阳市| 鄱阳县| 华池县| 无锡市| 沅陵县| 商水县| 九龙县| 平塘县|