大家想想:为什么第一阶段比较慢,第二阶段比较快呢?将在下面的IL中讲到。
(四)CLR
1. 作用:内存管理,异常管理,多线程管理,GC管理等。CLR为.NET中极其重要的组成部分,也是.NET框架中比较难且晦涩技术之一。
2. 可以把CLR看成是Java虚拟机;
3. JIT即时编译,主要由三部分构成(主编译器,PreJit和EconoJit)
4. JIT CLR实现一次编译,多次运行且可跨平台;
5. CLR中比较重要的一个环节,就是管道(Pipes)(HttpModule和HttpHandler)
(五)MSIL
1.IL是.cs代码经过VS编译器csc.exe编译而成的;
2.IL比较接近机器代码但非机器代码(这个特点使其IL=》.exe过程比较快);
3.IL代码是指令无关的;
4.可以通过反汇编工具查看IL代码;
二 基于.NET Framework框架的B/S程序运行解析(一)总体流程概述
1. IIS在处理请求时,将资源分为两大类型:静态资源和动态资源
静态资源:IMG,JS,CSS,HTML等;
动态文件:ASP,ASP.NET,.aspx,..ashx,asax等;
2. IIS处理静态资源:
当IIS收到来自浏览器的请求,识别为静态资源时,IIS直接处理,将处理结果以HTML形式返回给浏览器;
3. IIS如何处理动态资源?
当IIS收到来自浏览器的请求,识别为动态资源时,此时IIS不能处理,转交给ISAPI Extensions(ISAPI 扩展程序)扩展程序,该扩展程序根据请求资源扩展名,寻找响应的程序处理,如为.asp文件,则asp_isapi处理
,若为.aspx,则aspnet_isapi处理,
4. IIS如何处理WebForm和MVC?
当IIS收到来自浏览器的请求,识别为动态资源时,此时IIS不能处理,转交给ISAPI Extensions处理,此时ASP.NET MVC HTTP处理程序识别请求资源是否为MVC,若是,则交给MVC路由,按照处理MVC方式处理,否则
,按照WebForm流程处理;
5. CLR里面的管道(Pipes)是怎样的呢?
管道的本质是HttpModule和HttpHandler(一般处理程序.ashx);
(二)CLR和Pipe