使用生活实例理解Asp.net运行时
学习编程语言,掌握面向对象的编程思想尤为重要,一旦理解了面向对象的这种概念,那么好些地方拿到生活中去理解,就容易的多了。
书本上的枯燥干涩的语言,对于好多人来说,即难懂,更难长时间牢牢记得。但是编程语言是为生活服务,也是来源于生活。我们的生活是丰富多彩的,那么,使用生活中的实例来理解编程,一切就容易的多了。
下面,我们就用生活中打电话的例子来理解ASP.NET运行时的内部过程:

当请求到达IIS后,IIS通过Aspnet_isapi.dll的作用将请求转交给ASP.NET运行时环境,在Asp.net运行时环境中进行一定处理,最终处理结果会返回给IIS,发送到客户端。
Asp.net运行时中处理请求是通过一系列对象完成的:
HttpApplication:通过使用HttpApplication类的一个实例来处理收到的众多请求,它每次只能处理一个请求。
生活实例:相当于手机网络运营商先接收所有拨打我们手机号码的所有电话请求,但是它每次只能给你传递一个电话请求,如果同时有两个或以上请求,就需要等待第一次请求结束才可以发送第二次请求。
HttpModule:对Http请求进行筛选过滤。它可以附加一些需要信息在这个Http请求,或者针对截获的请求信息做一些额外工作,更或者某些情况下干脆终止满足一些条件的HTTP请求。经过HttpModule赛选过滤后,把适合条件的HTTP请求传递给真正的处理中心(HttpHandler)。
生活实例:相当于手机,我们通过对手机的设置,可以设置来电防火墙,拦截黑名单的来点,也可以设置指定号码的联系人名称,头像和个性铃声等等。然后把来电防火墙放行的来电通过个性化的形式传递给我们。
HttpHandler:是HTTP请求的真正处理中心。Http请求经过它的处理后,再通过httpApplication发出回应。
生活实例:相当于人,来电经过防火墙过滤,以设定的格式通知手机持有者,手机持有者接听电话,并将回复声音通过手机网络运营商传递到来电拨打者。
当然,仅仅理解了这个过程并没有什么了不起的,但是,它会在我们以后实现一些相关的功能的时候,能够很快的明白我们要用的是什么,要从哪里下手。而不再是“我要怎么做,要用什么技术”。
使用生活实例理解Asp.net运行时的更多相关文章
- asp.net 运行时, 报控件不存在
Asp.net 运行时,报控件不存在,但系统中确实加入了控件z, 但是生成网站的时候,报控件不存在,输入代码的时候,this.edtxx.Text 确实可以输入 原因: 系统修改的时候,作了一个备份, ...
- httpRuntime与ASP.NET 运行时及IIS处理模型
配置 ASP.NET HTTP 运行时设置,以确定如何处理对 ASP.NET 应用程序的请求,配置节及其描述如下所示. <httpRuntime executionTimeout="1 ...
- asp.net 运行时,"未能映射路径"
asp.net 站点出现:未能映射路径,解决方案之一:发现原来是iis 应用程序池中设置了.net framework 版本为4.0了,而且VS中站点的版本为2.0引起的. 解决方案是把VS 中的站点 ...
- 在Linux安装ASP.Net Core的运行时(Runtime)
在部署的时候,如果您不想在您的Linux服务器上安装.Net Core SDK,您可以只安装Runtime,接下来我们看看该如何安装运行时Runtime. 下载运行时文件 下载页面:https://w ...
- 第30 章 : 理解 RuntimeClass 与使用多容器运行时
理解 RuntimeClass 与使用多容器运行时 本文将主要分享以下三方面的内容: RuntimeClass 需求来源 RuntimeClass 功能介绍 多容器运行时示例 RuntimeClass ...
- 深入理解ASP.NET Core依赖注入
概述 ASP.NET Core可以说是处处皆注入,本文从基础角度理解一下原生DI容器,及介绍下怎么使用并且如何替换官方提供的默认依赖注入容器. 什么是依赖注入 百度百科中对 ...
- 乘风破浪,.Net Core遇见Dapr,为云原生而生的分布式应用运行时
Dapr是一个由微软主导的云原生开源项目,国内云计算巨头阿里云也积极参与其中,2019年10月首次发布,到今年2月正式发布V1.0版本.在不到一年半的时间内,github star数达到了1.2万,超 ...
- 理解ASP.NET Core - 配置(Configuration)
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 配置提供程序 在.NET中,配置是通过多种配置提供程序来提供的,包括以下几种: 文件配置提供程 ...
- Objective C运行时(runtime)
#import <objc/runtime.h> void setBeingRemoved(id __self, SEL _cmd) { NSLog(@"------------ ...
随机推荐
- 一个关于考勤统计的sql研究
在这里,我们要做一个简单的员工考勤记录查询系统的后台数据库.业务需求如下所示: 1.统计每天来的最早.来的最晚.走的最早.走得最晚的人的姓名 1.1 统计每天来得最早的人 ...
- 自己写的jQuery浮动广告插件
效果图: 文件位置摆放: 插件的js代码: $.extend({ pfAdv:function(options){ var defaults={ count:1, startTop:200, star ...
- sqoop操作之ETL小案例
Extraction-Transformation-Loading的缩写,中文名称为数据提取.转换和加载.将数据从ORACLE中抽取数据,经过hive进行分析转换,最后存放到ORACLE中去. 本案例 ...
- 对 Spring 的核心(AOP 和 IOC)的理解(大白话)
Spring 首先它是一个开源而轻量级的框架.其核心容器的主要组件是Bean工厂(BeanFactory).Bean工厂使用控制反转(IOC)模式来降低程序代码之间的耦合度,并提供了面向切面编程(AO ...
- 子元素scroll父元素容器不跟随滚动JS实现
仅供参考: function parentNotRoll($id){ var flg;//标记滚动方向,true-向下,false-向上 var $test = document.getElement ...
- win10/win7 笔记本 开启虚拟无线 批处理
Microsoft Virtual WiFi Miniport Adapter 一.看网络网卡 有多出的这一项“Microsoft Virtual WiFi Miniport Adapter”,那么说 ...
- Java 9 模块化(Modularity)
JDK9的发布一直在推迟,终于在2017年9月21日发布了.下面是JDK9的几个下载地址: JDK9.0.1 Windows-x64下载地址 Oracle Java 官网下载地址 OpenJDK 9官 ...
- UI5-文档-2.4-Node.js-Based开发环境
用于修改OpenUI5.环境是基于Node.js,用作服务器,具有一个基于Grunt的构建过程.本节提供关于初始设置.开发工作流和测试执行的信息. 常规开发过程: 不需要构建过程,您可以简单地修改任何 ...
- Winform 窗体关闭事件
//窗体关闭前事件 private void FrmMain_FormClosing(object sender, FormClosingEventArgs e) { DialogResult res ...
- MySQLReport
简介: MySQLReport 一.安装 shell > yum -y install mysqlreport perl-DBD-MySQL 二.使用 shell > mysqlrepor ...