微软的程序设计和相应的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页面生命周期

如果觉得本文对你有所帮助不如【推荐】一下! 如果文中有不妥或者错误的地方还望指出,以免误人子弟。

作者:张一辉

出处:http://www.cnblogs.com/zhangyihui/

本文以学习、研究和分享为主,版权归作者和博客园共有,欢迎转载,但必须在文章页面明显位置给出此段申明。

【深入ASP.NET原理系列】--ASP.NET请求管道、应用程序生命周期、整体运行机制的更多相关文章

  1. asp.net请求管道和页面生命周期

  2. 【深入ASP.NET原理系列】--ASP.NET页面生命周期

    前言 ASP.NET页面运行时候,页面将经历一个生命周期,在生命周期中将执行一系列的处理步骤.包括初始化.实例化控件.还原和维护状态.运行时间处理程序代码以及进行呈现.熟悉页面生命周期非常重要,这样我 ...

  3. ASP.NET请求管道、应用程序生命周期、整体运行机制

    我们知道在ASP.NET中,若要对ASP.NET应用程序进行 初始化并使它处理请求,必须执行一些处理步骤,熟悉应用程序生命周期非常重要,这样才能在适当的生命周期阶段编写代码,达到预期的效果.永远不要做 ...

  4. [ASP.NET MVC2 系列] ASP.Net MVC教程之《在15分钟内用ASP.Net MVC创建一个电影数据库应用程序》

    [ASP.NET MVC2 系列]      [ASP.NET MVC2 系列] ASP.Net MVC教程之<在15分钟内用ASP.Net MVC创建一个电影数据库应用程序>       ...

  5. ASP.NET管线与应用程序生命周期

    ASP.NET管线与应用程序生命周期 ASP.NET管线与应用程序生命周期 8.1节介绍了IIS的系统架构和HTTP请求处理的总体流程,从中可以知道每个ASP.NET网站都对应着一个Web应用程序,此 ...

  6. [转]ASP.NET应用程序生命周期趣谈(五) IIS7瞎说

    Ps:建议初学者在阅读本文之前,先简要了解一下之前的几篇文章,以便于熟悉本文提到的一些关于IIS6的内容,方便理解.仅供参考. PS:为什么叫瞎说呢?我觉得自己理解的并不到位,只能是作为一个传声筒,希 ...

  7. .net学习笔记----Asp.net的生命周期之一应用程序生命周期

    Http请求刚刚到达服务器的时候 当服务器接收到一个 Http请求的时候,IIS (Internet Information Services,互联网信息服务)首先需要决定如何去处理这个请求. 什么是 ...

  8. Asp.net的生命周期之应用程序生命周期

    参考:http://msdn.microsoft.com/zh-cn/library/ms178473(v=vs.100).aspx 参考:http://www.cnblogs.com/JimmyZh ...

  9. [转]ASP.NET应用程序生命周期趣谈(三) HttpModule

    在之前的文章中,我们提到过P_Module(HttpModule)这个能干的程序员哥们儿,它通过在项目经理HttpApplication那里得到的授权,插手整个应用程序级别的事件处理.所有的HttpM ...

随机推荐

  1. 2、HDFS和Yarn的基础学习笔记

    日志 --排错 .log:通过log4j记录的,记录大部分应用程序的日志信息 .out:记录标准输出和标准错误日志,少量记录     hdfs 常用shell     -ls     -put < ...

  2. seq

    Linux 中seq 命令的用法 用于产生从某个数到另外一个数之间的所有整数 用法: seq [选项]... 尾数 或:seq [选项]... 首数 尾数 或:seq [选项]... 首数 增量 尾数 ...

  3. chrome内核浏览器input边框

    直接给input加outline:none和设置input {outline:none}都没效 最后逼得没法,*:focus { outline: none; },然后整个世界就安静了,嚯嚯

  4. [书目20160612]思考软件,创新设计——A段架构师的思考技术

    高焕堂:在校时期主修统计学和信息管理,将近40年软件开发生涯.工作于亚洲和欧美各地区,专精于商业策略思考和系统架构设计.近年来,热衷于<it+设计>教育顾问和产品开发. 第1章  商业思维 ...

  5. [转]jQuery: how to get which button was clicked upon form submission?

    本文转自:http://stackoverflow.com/questions/5721724/jquery-how-to-get-which-button-was-clicked-upon-form ...

  6. USB hacker Collection

    This blog contains some ideas and tricks about USB hacking.

  7. shiro和quartz同时存在于项目中,解决冲突的方案

    shiro自带了quartz定时任务,不过版本是1.3的 很多项目都会使用shiro,另外定时任务也会使用,quartz的版本2.2目前和shiro不兼容 有人通过修改源码可以解决 我这边是这样解决的 ...

  8. POJ1014Dividing[多重背包可行性]

    Dividing Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 68769   Accepted: 17955 Descri ...

  9. 查找代码错误.java

    class Other{ public int i; } class Something{ public static oivd main(String[]args){ Other o = new O ...

  10. Eclipse的 JSON Edit插件

    1. Json-Eclipse-Plugin https://github.com/boothen/Json-Eclipse-Plugin 2. 另外一个JSON Edit工具 https://tfe ...