当前位置:北大青鸟南京竞成 → 文章中心.Net技术 → 文章内容

从底层了解ASP.NET体系结构

作者:jingch  来源:today - 博客园  时间:2008-3-6 19:20:36

  目录
  1. ASP.NET是什么?
  2.从浏览器到ASP.NET
  3.ISAPI连接
  4.IIS5和IIS6的不同之处
  5.进入.NET运行时
  6.加载.NET—稍微有点神秘
  7.回到运行时
  8.HttpRuntime,HttpContext以及HttpApplication
  9.Web程序的主要部分:HttpApplication
  10.穿过ASP.NET管道
  11.HttpContext,HttpModules和HttpHandlers
  12.HttpModules
  13.HttpHandlers
  14.是否已经提供了足够的底层知识?
  

       摘要:ASP.NET是一个用于构建Web程序的强大平台,提供了巨大的弹性和能力以至于它可以构建任意的Web程序。许多人仅仅对处于ASP.NET高层次的框架如:WebForms和WebServices比较熟悉,因此,在这篇文章里,我将会阐述有关ASP.NET比较底层的知识,并且将会解释,如何将请求从Web Server移交给ASP.NET运行时,然后通过ASP.NET HTTP管道处理这些请求。

  对于我来说,了解一个平台的内部工作机制总是会让我感到一些满足和安慰,如同洞察,可以帮助我写出更好的程序。知道了工具有什么用途,以及它们如何组装成复杂框架的一部分,这些将会使你很容易的找到问题的解决方案,以及在你修改和调试错误时,都显得非常重要。这篇文章的目的就是从底层了解ASP.NET以及帮助你理解请求如何流入ASP.NET处理管道里。同时,你将会了解ASP.NET引擎的核心,以及一个Web请求如何在这里结束。这里讲到的许多知识都是你日常工作中没必要知道的,但是,如果你理解了ASP.NET如何把请求路由到应用程序的代码里(通常比较高层次的),这将对你非常有用。
  注:整个ASP.NET引擎完全构建在托管代码里,其所有的扩展性都是通过托管代码去构建。

  使用ASP.NET的大多数都比较熟悉WebForms和WebServices。这些高层次的实现,使得构建Web程序变得非常容易。ASP.NET被设计为驱动引擎,它把底层的接口提供给Web Server,为高层次Web应用程序的前端和末端提供了路由服务。WebForms和WebServices是建立在ASP.NET框架之上,有关HTTP处理的两种最常用的方式。
  其实,在较低的层次上,ASP.NET也提供了足够多的灵活性。HTTP运行时和请求管道提供了同样的能力,可以构建类似于WebForms和WebServices的实现,当然,这些已经使用.NET托管代码实现了。如果你需要构建一个自定义HTTP处理平台,而这个平台要比WebForms所处的层次低一点,那么你就会用到所有这些类似的功能。

  构建大多的Web界面,使用WebForms无疑是最容易的方法,但是,如果你想自定义一个内容处理器,或者需要对流入和流出的内容做特殊的处理,或者需要为一个应用程序定制一个应用服务器接口,那么使用这些低层次的处理或者模块将会得到更好的性能,以及可以在真正的请求处理中获得更多的控制权。尽管那些高层次的实现,如:WebForms和WebServices已提供了类似的功能,但由于它们针对请求添加了太多的控制(导致性能下降)。所以你完全可以另辟佳境,在较低层次上处理这些请求。

  ASP.NET是什么?
  让我们从最简单的定义开始,ASP.NET是什么?我通常喜欢用如下语句来描述ASP.NET。
  ASP.NET是完全使用托管代码处理Web请求的一个成熟引擎平台。它不仅仅只是WebForms和WebServices。

  ASP.NET是一个请求处理引擎。它获取客户端请求,然后通过它内置的管道,把请求传到一个终点,在这个终点,开发者可以添加处理这个请求的逻辑代码。实际上这个引擎和HTTP或者Web Server是完全分开的。事实上,HTTP运行时是一个组件,你可以把它宿主在IIS之外的应用程序上。甚至完全可以和其它的服务组合在一起。例如,你可以把HTTP运行时宿主在Windows桌面应用程序里(详细的内容请查看:http://www.west-wind.com/presentations/aspnetruntime/aspnetruntime.aspx)。

  通过使用内置的管道路由请求,HTTP运行时提供了一套复杂的,但却很优雅的机制。在处理请求的每一个层面都牵涉到许多对象,但大多数对象都可以通过派生或者事件接口来扩展。所以,此框架具有非常高的可扩展性。通过这一套机制,可以进入较低层次的接口如:缓存,身份验证,授权等是有可能的。你可以在处理请求之前或之后过滤内容,或者仅仅把匹配指定签名的客户端请求直接路由到你的代码里或转向其它的URL。针对同一件事情,可以通过不同的处理方法完成,而且实现代码都非常的直

[1] [2]  下一页

 
上一篇文章:ASP.NET程序安全的基础知识  
下一篇文章:从宾馆服务员到微软技术专家  
 
打印本文 】 【 发表评论 】 【 】【 关闭窗口
        企业邮箱  使用帮助  交流论坛  联系我们  中心地图  下载中心  网站地图
   
  ©版权所有2006 北大青鸟APTECH(竟成)授权培训中心
  中心地址:南京市广州路189号民防大厦5楼(五台山体育场北门向西50米)
 
交通线路: 广州路站(6路 78路 91路 132路 302路 303路) 随家仓站(3路 318路) 拉萨路站(43路 60路 109路)下车即到
网站: http://www.jingch.net   E-mail:Admin@jingch.net   邮编:210000
 
北大青鸟-赵老师
 
形式 开班时间 状态
业余班 11月26日 热招
脱产班 11月10日 热招
业余班 11月7日 补招5人
脱产班 10月31日 缺3人
08第4季定向就业班火热报名!