11.WebHost  第六个对象 到目前为止我们已经知道了由一个服务器和多个中间件构成的管道是如何完整针对请求的监听.接收.处理和最终响应的,接下来来讨论这样的管道是如何被构建出来的.管道是在作为应用宿主的WebHost对象启动的时候被构建出来的,在ASP.NET Core Mini中,我们将表示应用宿主的IWebHost接口简写成如下的形式:只包含一个StartAsync方法用来启动应用程序. public interface IWebHost { Task StartAsync(); }…
对于学习Core的框架,对我帮助最大的一篇文章是Artech的<200行代码,7个对象——让你了解ASP.NET Core框架的本质>,最近我又重新阅读了一遍该文.本系列文章就是结合我的阅读心得,一起来搭建一个迷你的Core框架. 本文相关代码在码云上,链接如下 https://gitee.com/qixinbo/MyKestrelServer/tree/master/CoreMini/CoreMini 还有部分是core的源码,链接如下 https://github.com/aspnet/A…
4.HttpContext 第一个对象 我们的ASP.NET Core Mini由7个核心对象构建而成.第一个就是大家非常熟悉的HttpContext对象,它可以说是ASP.NET Core应用开发中使用频率最高的对象.要说明HttpContext的本质,还得从请求处理管道的层面来讲.对于由一个服务器和多个中间件构建的管道来说,面向传输层的服务器负责请求的监听.接收和最终的响应,当它接收到客户端发送的请求后,需要将它分发给后续中间件进行处理.对于某个中间件来说,当我们完成了自身的请求处理任务之后…
8.Server   第五个对象 服务器在管道中的职责非常明确,当我们启动应用宿主的WebHost的时候,服务它被自动启动.启动后的服务器会绑定到指定的端口进行请求监听,一旦有请求抵达,服务器会根据该请求创建出代表上下文的HttpContext对象,并将该上下文作为输入调用由所有注册中间件构建而成的RequestDelegate对象. 简单起见,我们使用如下这个简写的IServer接口来表示服务器.我们通过定义在IServer接口的唯一方法StartAsync启动服务器,作为参数的handler…
本文作为学习过程中的一个记录. 学习文章地址: https://www.cnblogs.com/artech/p/inside-asp-net-core-framework.html 一. ASP.NET Core 框架上的 Hello World程序 public class Program { public static void Main() => new WebHostBuilder() .UseKestrel() .Configure(app => app.Run(context =…
C#中的函数式编程:递归与纯函数(二)   在序言中,我们提到函数式编程的两大特征:无副作用.函数是第一公民.现在,我们先来深入第一个特征:无副作用. 无副作用是通过引用透明(Referential transparency)来定义的.如果一个表达式满足将它替换成它的值,而程序的行为不变,则称这个表达式是引用透明的. 现在,我们不妨进行一个尝试:我们来实现一些函数,但是这次有一个限制:只能用无副作用的表达式. 先以素数判定为例子,我们要写一个函数bool IsPrime(int n),它返回这个…
2019年1月19日,微软技术(苏州)俱乐部成立,我受邀在成立大会上作了一个名为<ASP.NET Core框架揭秘>的分享.在此次分享中,我按照ASP.NET Core自身的运行原理和设计思想创建了一个 "迷你版" 的ASP.NET Core框架,并且利用这个 "极简" 的模拟框架阐述了ASP.NET Core框架最核心.最本质的东西.整个框架涉及到的核心代码不会超过200行,涉及到7个核心的对象. PPT下载源代码下载 目录1. 从Hello Worl…
了解ASP.NET Core框架的本质 ASP.NET Core自身的运行原理和设计思想创建了一个 “迷你版” 的ASP.NET Core框架,并且利用这个 “极简” 的模拟框架阐述了ASP.NET Core框架最核心.最本质的东西.整个框架涉及到的核心代码不会超过200行,涉及到7个核心的对象. PPT下载源代码下载 目录1. 从Hello World谈起2. ASP.NET Core Mini3. Hello World 24. 第一个对象:HttpContext5. 第二个对象:Reque…
原文:200行代码,7个对象--让你了解ASP.NET Core框架的本质 2019年1月19日,微软技术(苏州)俱乐部成立,我受邀在成立大会上作了一个名为<ASP.NET Core框架揭秘>的分享.在此次分享中,我按照ASP.NET Core自身的运行原理和设计思想创建了一个 “迷你版” 的ASP.NET Core框架,并且利用这个 “极简” 的模拟框架阐述了ASP.NET Core框架最核心.最本质的东西.整个框架涉及到的核心代码不会超过200行,涉及到7个核心的对象. PPT下载源代码下…
源文章地址:http://www.cnblogs.com/artech/p/inside-asp-net-core-framework.html 1.从Hello World谈起 当我们最开始学习一门技术的时候都喜欢从Hello World来时,貌似和我们本篇的主题不太搭.但事实却非如此,在我们看来如下这个Hello World是对ASP.NET Core框架本质最好的体现. public class Program { public static void Main() => new WebH…