微軟的程序設(shè)計(jì)和相應(yīng)的IDE做的很棒,讓人很快就能有生產(chǎn)力。.NET上手容易,生產(chǎn)力很高,但對(duì)于一個(gè)不是那么勤奮的人,他很可能就不再進(jìn)步了,沒(méi)有想深入下去的動(dòng)力,他不用去理解整個(gè)框架和環(huán)境是怎么執(zhí)行的,因?yàn)椴挥妹靼诪槭裁春孟褚材茏龊霉ぷ鳌?nbsp;.NET的人很多人不注重實(shí)現(xiàn) ,知其然不知其所以然,這樣真的OK么?永遠(yuǎn)懷著一顆學(xué)徒的心,你就能不斷進(jìn)步!
我們知道在asp.net中,若要對(duì)ASP.NET應(yīng)用程序進(jìn)行初始化并使它處理請(qǐng)求,必須執(zhí)行一些處理步驟,熟悉應(yīng)用程序生命周期非常重要,這樣才能在適當(dāng)?shù)纳芷陔A段編寫(xiě)代碼,達(dá)到預(yù)期的效果。永遠(yuǎn)不要做只會(huì)拖控件的.NET程序員,Never!那么你就必須懂ASP.NET應(yīng)用程序生命周期,懂ASP.NET頁(yè)面生命周期,懂ASP.NET 服務(wù)器控件原理。接下來(lái),我們一起來(lái)看看
可以先看一下先導(dǎo)篇 【深入ASP.NET原理系列】--ASP.NET請(qǐng)求管道對(duì)Asp.Net WebForm和Asp.Net Mvc的處理通用部分
這篇會(huì)著重講述ASP.NET應(yīng)用程序生命周期其中的ASP.NET請(qǐng)求管道,我們很多人可能已經(jīng)知道ASP.NET請(qǐng)求管道有19個(gè)事件,那是IIS 5.0和IIS 6.0 或者IIS 7.0以上經(jīng)典模式運(yùn)行的時(shí)候情況,當(dāng)應(yīng)用程序在IIS 7.0的集成模式下運(yùn)行,并且與.NET Framework 3.0或更高版本一起運(yùn)行時(shí),ASP.NET請(qǐng)求管道中會(huì)是22個(gè)事件。
面向切面編程的時(shí)候,就是給你途徑往預(yù)定的執(zhí)行順序里面添加自己處理邏輯。而ASP.NET中面向切面編程我們可以往ASP.NET請(qǐng)求管道中注入自己的代碼。一般采取兩種方式,一種是直接在Global.asax中對(duì)應(yīng)的方法中直接添加代碼。一種是可使用實(shí)現(xiàn) IHttpModule 接口的模塊來(lái)擴(kuò)展 ASP.NET 應(yīng)用程序生命周期。托管代碼模塊也可以在 IIS 7.0 配置存儲(chǔ)區(qū)(applicationHost.config 文件)的 modules 元素中注冊(cè)。在 ApplicationHost.config 文件中注冊(cè)的模塊具有全局范圍,因?yàn)樗鼈優(yōu)樗杏?IIS 7.0 承載的 Web 應(yīng)用程序而注冊(cè)。同樣,在 ApplicationHost.config 文件的 globalModules 元素中定義的本機(jī)代碼模塊也具有全局范圍。如果 Web 應(yīng)用程序不需要全局模塊,則可以將其禁用。
下面我們看一張圖,(始終覺(jué)得圖比文字更容易讓人理解)具體看一下ASP.NET應(yīng)用程序中管道事件具體干了些什么事情,圖中有注釋每一步干了些什么。如果圖看不清,可以下載圖片查看。(因?yàn)閳D是自己畫(huà)的,如有不對(duì)的,歡迎大家指出批評(píng)交流,圖中22個(gè)事件的展示代碼在篇尾有附)
輸出22個(gè)事件的Global代碼:http://files.VEVb.com/files/zhangyihui/Global.rar
下一篇:【深入ASP.NET原理系列】--ASP.NET頁(yè)面生命周期
如果覺(jué)得本文對(duì)你有所幫助不如【推薦】一下! 如果文中有不妥或者錯(cuò)誤的地方還望指出,以免誤人子弟。
作者:張一輝
出處:http://www.survivalescaperooms.com/zhangyihui/
本文以學(xué)習(xí)、研究和分享為主,版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但必須在文章頁(yè)面明顯位置給出此段申明。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注