【深入ASP.NET原理系列】--ASP.NET請求管道、應用程序生命周期、整體運行機制


   微軟的程序設計和相應的IDE做的很棒,讓人很快就能有生產力。.NET上手容易,生產力很高,但對於一個不是那么勤奮的人,他很可能就不再進步了,沒有想深入下去的動力,他不用去理解整個框架和環境是怎么執行的,因為不用明白為什么好像也能做好工作。 .NET的人很多人不注重實現 ,知其然不知其所以然,這樣真的OK么?永遠懷着一顆學徒的心,你就能不斷進步!

  我們知道在ASP.NET中,若要對ASP.NET應用程序進行初始化並使它處理請求,必須執行一些處理步驟,熟悉應用程序生命周期非常重要,這樣才能在適當的生命周期階段編寫代碼,達到預期的效果。永遠不要做只會拖控件的.NET程序員,Never!那么你就必須懂ASP.NET應用程序生命周期,懂ASP.NET頁面生命周期,懂ASP.NET 服務器控件原理。接下來,我們一起來看看

  可以先看一下先導篇 【深入ASP.NET原理系列】--ASP.NET請求管道對Asp.Net WebForm和Asp.Net Mvc的處理通用部分

      這篇會着重講述ASP.NET應用程序生命周期其中的ASP.NET請求管道,我們很多人可能已經知道ASP.NET請求管道有19個事件,那是IIS 5.0和IIS 6.0 或者IIS 7.0以上經典模式運行的時候情況,當應用程序在IIS 7.0的集成模式下運行,並且與.NET Framework 3.0或更高版本一起運行時,ASP.NET請求管道中會是22個事件。

      面向切面編程的時候,就是給你途徑往預定的執行順序里面添加自己處理邏輯。而ASP.NET中面向切面編程我們可以往ASP.NET請求管道中注入自己的代碼。一般采取兩種方式,一種是直接在Global.asax中對應的方法中直接添加代碼。一種是可使用實現 IHttpModule 接口的模塊來擴展 ASP.NET 應用程序生命周期。托管代碼模塊也可以在 IIS 7.0 配置存儲區(ApplicationHost.config 文件)的 modules 元素中注冊。在 ApplicationHost.config 文件中注冊的模塊具有全局范圍,因為它們為所有由 IIS 7.0 承載的 Web 應用程序而注冊。同樣,在 ApplicationHost.config 文件的 globalModules 元素中定義的本機代碼模塊也具有全局范圍。如果 Web 應用程序不需要全局模塊,則可以將其禁用。

  下面我們看一張圖,(始終覺得圖比文字更容易讓人理解)具體看一下ASP.NET應用程序中管道事件具體干了些什么事情,圖中有注釋每一步干了些什么。如果圖看不清,可以在新標簽中打開圖片放大看。(因為圖是自己畫的,如有不對的,歡迎大家指出批評交流,圖中22個事件的展示代碼在篇尾有附)

   

  輸出22個事件的Global代碼:http://files.cnblogs.com/files/zhangyihui/Global.rar

    下一篇:【深入ASP.NET原理系列】--ASP.NET頁面生命周期


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM