万本电子书0元读

万本电子书0元读

顶部广告

ASP.NET Core 3 框架揭秘(上下册)电子书

作为核心的Web发平台,ASP.NET Core可利用其极具扩展能力的请求处理管道,来支撑目前常用的发模型,如MVC、GRPC、SingalR和Orlean等。不论从事哪种类型的Web发,针对底层管道的了解都是必需的。如对底层框架具有足够的了解,甚至可以在ASP.NET Core平台上构建自己的Web编程模型。《ASP.NET Core 3框架揭秘》不拘泥于某种Web编程模型,而是直从HTTP请求处理流程的视角对ASP.NET Core底层框架行剖析,让你真正了解*本质和核心的原理。

售       价:¥

纸质售价:¥191.00购买纸书

138人正在读 | 0人评论 7.1

作       者:蒋金楠

出  版  社:电子工业出版社

出版时间:2020-03-01

字       数:54.7万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:此类商品不支持退换货,不支持下载打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
《ASP.NET Core 3 框架揭秘(上下册)》主要阐述 ASP.NET Core *核心的部分——请求处理管道。通过阅读本书,读者可以深刻系统地了解 ASP.NET Core 应用在启动过程中管道的构建方式,以及请求在管道中的处理流程。《ASP.NET Core 3 框架揭秘(上下册)》还详细讲述了 .NET Core 跨平台的本质,以及多个常用的基础框架(如依赖注、文件信息、配置选项和诊断日志等)。《ASP.NET Core 3 框架揭秘(上下册)》还对大部分原生的中间件提供了系统性介绍,采用“编程体验”、“总体设计”、“具体实现”和“灵活运用”的流程,使读者可以循序渐地学习 ASP.NET Core 的每个功能模块。《ASP.NET Core 3 框架揭秘(上下册)》可供所有 .NET 从业人员阅读与参考。<br/>【推荐语】<br/>  作为核心的Web发平台,ASP.NET Core可利用其极具扩展能力的请求处理管道,来支撑目前常用的发模型,如MVC、GRPC、SingalR和Orlean等。不论从事哪种类型的Web发,针对底层管道的了解都是必需的。如对底层框架具有足够的了解,甚至可以在ASP.NET Core平台上构建自己的Web编程模型。《ASP.NET Core 3框架揭秘》不拘泥于某种Web编程模型,而是直从HTTP请求处理流程的视角对ASP.NET Core底层框架行剖析,让你真正了解*本质和核心的原理。 √ 体验 .NET Core跨平台应用发,了解 .NET Core跨平台的奥秘。 √ 剖析常用基础框架(依赖注、文件系统、配置选项和诊断日志等)。 √ 系统介绍以IHost/IHostBuilder为核心的服务承载系统。 √ 深刻理解ASP.NET Core管道的构建方式,以及管道针对请求的处理流程。 √ 深讲述每个常用中间件针对请求的处理逻辑。<br/>【作者】<br/>蒋金楠,同程艺龙技术专家。知名IT博主(多年来一直排名博客园第一位),拥有个人微信公众号“大内老A”;2007—2018年连续12次被评为微软MVP(最有价值专家),也是少数跨多领域(Solutions Architect、Connected System、Microsoft Integration和ASP.NET/IIS等)的MVP之一;畅销IT图书作者,先后出版了《WCF全面解析》、《ASP.NET MVC 4框架揭秘》、《ASP.NET MVC 5框架揭秘》和《ASP.NET Web API 2框架揭秘》等著作。<br/>
目录展开

前言

第1章 全新的开发体验

1.1 Windows平台

1.1.1 构建开发环境

1.1.2 利用命令行创建.NET Core应用

1.1.3 ASP.NET Core应用

1.1.4 ASP.NET Core MVC应用

1.2 macOS用户

1.2.1 构建开发环境

1.2.2 利用命令行创建.NET Core应用

1.2.3 ASP.NET Core MVC应用

1.3 Linux

1.3.1 启用Linux子系统

1.3.2 构建开发环境

1.3.3 利用命令行创建ASP.NET Core应用

1.4 Docker

第2章 跨平台的奥秘

2.1 历史的枷锁

2.1.1 Windows下的.NET

2.1.2 非Windows下的.NET

2.2 复用之伤

2.2.1 源代码复用

2.2.2 程序集复用

2.3 全新的布局

2.3.1 跨平台的.NET Core

2.3.2 统一的BCL

2.3.3 展望未来

第3章 依赖注入(上篇)

3.1 控制反转

3.1.1 流程控制的反转

3.1.2 好莱坞法则

3.1.3 流程定制

3.2 IoC模式

3.2.1 模板方法

3.2.2 工厂方法

3.2.3 抽象工厂

3.3 依赖注入

3.3.1 由容器提供对象

3.3.2 3种依赖注入方式

3.3.3 Service Locator模式

3.4 一个简易版的依赖注入容器

3.4.1 编程体验

3.4.2 设计与实现

3.4.3 扩展方法

第4章 依赖注入(下篇)

4.1 利用容器提供服务

4.1.1 服务的注册与消费

4.1.2 生命周期

4.1.3 针对服务注册的验证

4.2 服务注册

4.2.1 ServiceDescriptor

4.2.2 IServiceCollection

4.3 服务的消费

4.3.1 IServiceProvider

4.3.2 服务实例的创建

4.3.3 生命周期

4.4 实现概览

4.4.1 ServiceProviderEngine和ServiceProviderEngineScope

4.4.2 ServiceProvider

4.4.3 注入IServiceProvider对象

4.5 扩展

4.5.1 适配

4.5.2 IServiceProviderFactory<TContainerBuilder>

4.5.3 整合第三方依赖注入框架

第5章 文件系统

5.1 抽象的文件系统

5.1.1 树形层次结构

5.1.2 读取文件内容

5.1.3 监控文件的变化

5.2 设计详解

5.2.1 IChangeToken

5.2.2 IFileProvider

5.2.3 PhysicalFileProvider

5.2.4 EmbeddedFileProvider

5.2.5 两个特殊的IFileProvider实现

5.3 远程文件系统

5.3.1 HttpFileInfo与HttpDirectoryContents

5.3.2 HttpFileProvider

5.3.3 FileProviderMiddleware

5.3.4 远程文件系统的应用

第6章 配置选项(上篇)

6.1 读取配置信息

6.1.1 配置编程模型三要素

6.1.2 以键值对的形式读取配置

6.1.3 读取结构化的配置

6.1.4 将结构化配置直接绑定为对象

6.1.5 将配置定义在文件中

6.2 配置模型

6.2.1 数据结构及其转换

6.2.2 IConfiguration

6.2.3 IConfigurationProvider

6.2.4 IConfigurationSource

6.2.5 IConfigurationBuilder

6.3 配置绑定

6.3.1 绑定配置项的值

6.3.2 绑定复合数据类型

6.3.3 绑定集合对象

6.3.4 绑定字典

6.4 配置的同步

6.4.1 配置数据流

6.4.2 ConfigurationReloadToken

6.4.3 ConfigurationRoot

6.4.4 ConfigurationSection

6.5 多样性的配置源

6.5.1 MemoryConfigurationSource

6.5.2 EnvironmentVariablesConfigurationSource

6.5.3 CommandLineConfigurationSource

6.5.4 FileConfigurationSource

6.5.5 StreamConfigurationSource

6.5.6 ChainedConfigurationSource

6.5.7 自定义ConfigurationSource(S616)

第7章 配置选项(下篇)

7.1 Options模式

7.1.1 将配置绑定为Options对象

7.1.2 提供具名的Options

7.1.3 配置源的同步

7.1.4 直接初始化Options对象

7.1.5 根据依赖服务的Options设置

7.1.6 验证Options的有效性

7.2 Options模型

7.2.1 OptionsManager<TOptions>

7.2.2 IOptionsFactory<TOptions>

7.2.3 IOptionsMonitorCache<TOptions>

7.2.4 IOptionsMonitor<TOptions>

7.3 依赖注入

7.3.1 服务注册

7.3.2 IOptions<TOptions>与IOptionsSnapshot<TOptions>

7.3.3 扩展与定制

7.3.4 集成配置系统

第8章 诊断日志(上篇)

8.1 各种诊断日志形式

8.1.1 调试日志

8.1.2 跟踪日志

8.1.3 事件日志

8.1.4 诊断日志

8.2 Debugger调试日志

8.2.1 Debugger

8.2.2 Debug

8.3 TraceSource跟踪日志

8.3.1 跟踪日志模型三要素

8.3.2 预定义TraceListener

8.3.3 Trace

8.4 EventSource事件日志

8.4.1 EventSource

8.4.2 EventListener

8.4.3 荷载对象序列化

8.4.4 活动跟踪

8.4.5 性能计数

8.5 DiagnosticSource诊断日志

8.5.1 标准的观察者模式

8.5.2 AnonymousObserver<T>

8.5.3 强类型的事件订阅

8.5.4 针对活动的跟踪

第9章 诊断日志(下篇)

9.1 统一日志编程模式

9.1.1 将日志输出到不同的渠道

9.1.2 日志过滤

9.1.3 日志范围

9.1.4 LoggerMessage

9.2 日志模型详解

9.2.1 日志模型三要素

9.2.2 ILogger

9.2.3 日志范围

9.2.4 ILoggerProvider

9.2.5 ILoggerFactory

9.2.6 LoggerMessage

9.3 依赖注入

9.3.1 服务注册

9.3.2 设置日志过滤规则

9.4 日志输出渠道

9.4.1 控制台

9.4.2 调试器

9.4.3 TraceSource日志

9.4.4 EventSource日志

第10章 承载系统

10.1 服务承载

10.1.1 承载长时间运行服务

10.1.2 依赖注入

10.1.3 配置选项

10.1.4 承载环境

10.1.5 日志

10.2 承载模型

10.2.1 IHostedService

10.2.2 IHost

10.2.3 IHostBuilder

10.3 实现原理

10.3.1 服务宿主

10.3.2 针对配置系统的设置

10.3.3 针对依赖注入框架的设置

10.3.4 创建宿主

10.3.5 静态类型Host

第11章 管道(上篇)

11.1 管道式的请求处理

11.1.1 两个承载体系

11.1.2 请求处理管道

11.1.3 中间件

11.1.4 定义强类型中间件

11.1.5 按照约定定义中间件

11.2 依赖注入

11.2.1 服务注册

11.2.2 服务的消费

11.2.3 生命周期

11.2.4 集成第三方依赖注入框架

11.3 配置

11.3.1 初始化配置

11.3.2 以键值对形式读取和修改配置

11.3.3 合并配置

11.3.4 注册IConfigurationSource

11.4 承载环境

11.4.1 IWebHostEnvironment

11.4.2 通过配置定制承载环境

11.4.3 针对环境的编程

11.5 初始化

11.5.1 Startup

11.5.2 IHostingStartup

11.5.3 IStartupFilter

第12章 管道(中篇)

12.1 中间件委托链

12.1.1 HttpContext

12.1.2 中间件

12.1.3 中间件管道的构建

12.2 服务器

12.2.1 IServer

12.2.2 针对服务器的适配

12.2.3 HttpListenerServer

12.3 承载服务

12.3.1 WebHostedService

12.3.2 WebHostBuilder

12.3.3 应用构建

第13章 管道(下篇)

13.1 请求上下文

13.1.1 HttpContext

13.1.2 服务器适配

13.1.3 获取上下文

13.1.4 上下文的创建与释放

13.1.5 RequestServices

13.2 IServer+IHttpApplication

13.2.1 IServer

13.2.2 HostingApplication

13.2.3 诊断日志

13.3 中间件委托链

13.3.1 IApplicationBuilder

13.3.2 弱类型中间件

13.3.3 强类型中间件

13.3.4 注册中间件

13.4 应用的承载

13.4.1 GenericWebHostServiceOptions

13.4.2 GenericWebHostService

13.4.3 GenericWebHostBuilder

13.4.4 ConfigureWebHostDefaults

附录A 实例演示1

第14章 静态文件

14.1 搭建文件服务器

14.1.1 发布物理文件

14.1.2 呈现目录结构

14.1.3 显示默认页面

14.1.4 映射媒体类型

14.2 处理文件请求

14.2.1 条件请求

14.2.2 区间请求

14.2.3 StaticFileMiddleware

14.3 处理目录请求

14.3.1 DirectoryBrowserMiddleware

14.3.2 DefaultFilesMiddleware

第15章 路由

15.1 路由映射

15.1.1 路由注册

15.1.2 设置内联约束

15.1.3 默认路由参数

15.1.4 特殊的路由参数

15.2 终结点的解析与执行

15.2.1 路由模式

15.2.2 终结点

15.2.3 中间件

15.3 路由约束

15.3.1 预定义的IRouteConstraint

15.3.2 InlineConstraintResolver

15.3.3 自定义约束

第16章 异常处理

16.1 呈现错误信息

16.1.1 显示开发者异常页面

16.1.2 显示定制异常页面

16.1.3 针对响应状态码定制错误页面

16.2 开发者异常页面

16.2.1 IDeveloperPageExceptionFilter

16.2.2 显示编译异常信息

16.2.3 DeveloperExceptionPageMiddleware

16.3 异常处理器

16.3.1 ExceptionHandlerMiddleware

16.3.2 异常的传递与请求路径的恢复

16.3.3 清除缓存

16.4 响应状态码页面

16.4.1 StatusCodePagesMiddleware

16.4.2 阻止处理异常

16.4.3 注册StatusCodePagesMiddleware中间件

第17章 缓存

17.1 将数据缓存起来

17.1.1 将数据缓存在内存中

17.1.2 对数据进行分布式缓存

17.1.3 缓存整个HTTP响应

17.2 本地内存缓存

17.2.1 ICacheEntry

17.2.2 MemoryCacheEntryOptions

17.2.3 IMemoryCache

17.3 分布式缓存

17.3.1 IDistributedCache

17.3.2 基于Redis的分布式缓存

17.3.3 基于SQL Server的分布式缓存

17.4 响应缓存

17.4.1 HTTP/1.1 Caching

17.4.2 ResponseCachingMiddleware中间件

17.4.3 注册中间件

第18章 会话

18.1 利用会话保留“语境”

18.1.1 设置和提取会话状态

18.1.2 查看存储的会话状态

18.1.3 查看Cookie

18.2 会话状态的读写

18.2.1 ISession

18.2.2 DistributedSession

18.2.3 ISessionStore

18.3 SessionMiddleware中间件

18.3.1 SessionOptions

18.3.2 ISessionFeature

18.3.3 SessionMiddleware

第19章 认证

19.1 认证、登录与注销

19.1.1 认证票据

19.1.2 基于Cookie的认证

19.1.3 应用主页

19.1.4 登录与注销

19.2 身份与用户

19.2.1 IIdentity

19.2.2 IPrincipal

19.3 认证模型

19.3.1 认证票据

19.3.2 认证处理器

19.3.3 认证服务

19.3.4 服务注册

19.3.5 AuthenticationMiddleware

19.4 Cookie认证方案

19.4.1 AuthenticationHandler<TOptions>

19.4.2 CookieAuthenticationHandler

19.4.3 注册CookieAuthenticationHandler

第20章 授权

20.1 基于角色的权限控制

20.1.1 用户与角色的映射

20.1.2 根据角色授权

20.1.3 预定义授权策略

20.2 基于“要求”的授权

20.2.1 IAuthorizationRequirement

20.2.2 预定义的IAuthorizationRequirement实现类型

20.2.3 授权检验

20.3 基于“策略”的授权

20.3.1 授权策略的构建

20.3.2 授权策略的注册

20.3.3 授权检验

第21章 跨域资源共享

21.1 处理跨域资源

21.1.1 跨域调用API

21.1.2 资源提供者显式授权

21.1.3 基于策略的资源授权

21.2 CORS规范

21.2.1 同源策略

21.2.2 针对资源的授权

21.2.3 获取授权的方式

21.2.4 用户凭证

21.3 CORS模型

21.3.1 CORS策略

21.3.2 解析并应用授权结果

21.3.3 CorsMiddleware中间件

第22章 本地化

22.1 提供本地化消息文本

22.1.1 提供对应语种的文本

22.1.2 自动设置语言文化

22.1.3 将本地化文本分而治之

22.1.4 直接注入IStringLocalizer<T>

22.2 文本本地化

22.2.1 字符串本地化模型

22.2.2 基于JSON文件的本地化

22.2.3 基于资源文件的本地化

22.3 当前语言文化的设置

22.3.1 Culture与UICulture

22.3.2 IRequestCultureProvider

22.3.3 RequestLocalizationOptions

22.3.4 RequestLocalizationMiddleware

第23章 健康检查

23.1 检查应用的健康状况

23.1.1 确定当前应用是否可用

23.1.2 定制健康检查逻辑

23.1.3 改变响应状态码

23.1.4 细粒度的健康检查

23.1.5 定制响应内容

23.1.6 过滤IHealthCheck对象

23.2 设计与实现

23.2.1 IHealthCheck

23.2.2 HealthCheckService

23.2.3 HealthCheckMiddleware

23.2.4 针对Entity Framework Core的健康检查

23.3 发布健康报告

23.3.1 定期发布健康报告

23.3.2 IHealthCheckPublisher

23.3.3 HealthCheckPublisherHostedService

第24章 补遗

24.1 过滤主机名

24.1.1 实例演示

24.1.2 配置选项

24.1.3 HostFilteringMiddleware中间件

24.2 HTTP重写

24.2.1 实例演示

24.2.2 HttpMethodOverrideMiddleware中间件

24.2.3 ForwardedHeadersMiddleware中间件

24.3 基础路径

24.3.1 实例演示

24.3.2 UsePathBaseMiddleware

24.4 路由

24.4.1 实例演示

24.4.2 MapMiddleware

24.4.3 MapWhenMiddleware

附录B 实例演示2

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部