因为IIS不支持跨平台的原因,我们在升级到ASP.NET Core后,会接触到一个新的Web服务器Kestrel.相信大家刚接触这个Kestrel时,会有各种各样的疑问. 今天我们全面认识一下ASP.NET Core的默认Web服务器Kestrel. 一.初识Kestrel 首先,Kestrel是一个跨平台的Web服务器,支持运行在Windows.macOS.Linux等操作系统中.Kestrel支持一下使用场景: HTTPS Opaque upgrade used to enable WebS…
当我们将原有ASP.NET 应用程序升级迁移到ASP.NET Core之后,我们发现代码工程中多了两个类Program类和Startup类. 接下来我们详细探秘一下通用主机Host的启动过程. 一.Program类的Main函数入口 Program类最重要的功能就是启动主机,这里有一个主机的概念,是ASP.NET Core全新引入的. 主机负责应用程序启动和生存期管理. 同时,主机也是封装应用程序资源的对象: 依赖注入 (DI) Logging Configuration IHostedServ…
ASP.NET Core在底层内置了一个依赖注入框架,通过依赖注入的方式注册服务.提供服务.依赖注入不仅服务于ASP.NET Core自身,同时也是应用程序的服务提供者. 毫不夸张的说,ASP.NET Core通过依赖注入实现了各种服务对象的注册和创建,同时也实现了面向抽象的编程模式和编程体验,提升了应用程序的扩展性. 今天,我们普及一下ASP.NET Core中依赖注入的一些基本知识. 一.服务的注册 我们通过创建一个ASP.NET Core的项目,可以发现在Startup.cs 类中,有一个…
随着.NET Core相关技术研究的深入,现在将这一系列的文章,整理到一个索引页中,方便大家翻阅查找,同时,后续也会不断补充进来. .NET Core技术研究-WebApi迁移ASP.NET Core2.0 .NET Core技术研究-Span<T>和ValueTuple<T> .NET Core技术研究-EntityFramework Core 3.0 Preview .NET Core技术研究-ConfigurationManager在单元测试下的坑 .NET Core技术研究…
前一段时间,和大家分享了 ASP.NET Core技术研究-探秘Host主机启动过程 但是没有深入说明主机的设计.今天整理了一下主机的一些知识,结合先前的博文,完整地介绍一下.NET Core的主机的设计和构建启动过程. 一.什么是主机 主机是一个封装了应用资源的对象,即:主机封装了一堆应用资源,封装了哪些应用资源呢? 依赖注入框架 DI Logging日志 Configuration 配置 托管服务:IHostedService服务接口的实现 二.Web主机和通用主机 先说Web主机:即ASP…
ASP.NET Core Web服务器 Kestrel和Http.sys 特性详解 https://www.cnblogs.com/vipyoumay/p/7525478.html ASP.NET Core Web服务器 Kestrel和Http.sys 特性详解 1.1. 名词解释 1.2. Kestrel基本工作原理 1.2.1. Kestrel的基本架构 1.2.2. Kestrel的工作原理 1.2.2.1. 处理Request和Response 1.2.2.2. 内存池读写 1.2.2…
ASP.NET Core Web服务器 Kestrel和Http.sys 特性详解 1.1. 名词解释 1.2. Kestrel基本工作原理 1.2.1. Kestrel的基本架构 1.2.2. Kestrel的工作原理 1.2.2.1. 处理Request和Response 1.2.2.2. 内存池读写 1.2.2.3. Libuv线程和托管线程通信 1.3. Http.sys基本工作原理 1.3.1. Http.sys基本构成 1.3.2. Http.sys工作原理 1.3.3. 总结 1.…
今天,Visual Studio中没有内置工具来测试WEB API.使用浏览器,只能测试http GET请求.您需要使用Postman,SoapUI,Fiddler或Swagger等第三方工具来执行WEB API的完整测试.在ASP.NET Core 2.2中,引入了一个名为“http-repl”的基于CLI的新dotnet核心全局工具,用于与API端点交互.它是一个基于CLI的工具,可以列出所有路由并执行所有HTTP动词.在这篇文章中,让我们了解如何使用HTTP-REPL工具在ASP.NET…
特别说明:1.本系列内容主要基于杨中科老师的书籍<ASP.NET Core技术内幕与项目实战>及配套的B站视频视频教程,同时会增加极少部分的小知识点2.本系列教程主要目的是提炼知识点,追求快准狠,以求快速复习,如果说书籍学习的效率是视频的2倍,那么"简读系列"应该做到再快3-5倍 本节内容,涉及3.2(P60-P69),7.2(P188-P193),NuGet包 Microsoft.Extensions.Configuration Microsoft.Extensions.…
本节内容,涉及4.6(P116-P130).主要NuGet包:如前述章节 一.LINQ和EFCore的集合查询扩展方法的区别 1.LINQ和EFCore中的集合查询扩展方法,虽然命名和使用完全一样,都两者定义在不同的命名空间下,是不同的方法.PS:LINQ定义在System.Linq中,EFCore定义在Microsoft.EntityFrameworkCore中 2.我们将集合操作的扩展方法,划分为两类:①非立即执行方法,如Where.OrderBy.Select.GroupBy.Skip.T…