×
ASP.NET Core 3框架揭秘(全2册)

ASP.NET Core 3框架揭秘(全2册)

1星价 ¥75.6 (3.8折)
2星价¥73.6 定价¥199.0

温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>

暂无评论
图文详情
  • ISBN:9787121384622
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:24cm
  • 页数:2册(16,14,8
  • 出版时间:2020-05-01
  • 条形码:9787121384622 ; 978-7-121-38462-2

本书特色

《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 从业人员阅读与参考。

内容简介

作为核心的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管道的构建方式,以及管道针对请求的处理流程。 √ 深入讲述每个常用中间件针对请求的处理逻辑。

目录

第1章 全新的开发体验 1 1.1 Windows平台 1 1.1.1 构建开发环境 1 1.1.2 利用命令行创建 .NET Core应用 2 1.1.3 ASP.NET Core应用 6 1.1.4 ASP.NET Core MVC应用 13 1.2 macOS用户 17 1.2.1 构建开发环境 17 1.2.2 利用命令行创建 .NET Core应用 17 1.2.3 ASP.NET Core MVC应用 18 1.3 Linux 19 1.3.1 启用Linux子系统 20 1.3.2 构建开发环境 22 1.3.3 利用命令行创建ASP.NET Core应用 22 1.4 Docker 24 第2章 跨平台的奥秘 27 2.1 历史的枷锁 27 2.1.1 Windows下的 .NET 27 2.1.2 非Windows下的 .NET 31 2.2 复用之伤 34 2.2.1 源代码复用 34 2.2.2 程序集复用 36 2.3 全新的布局 44 2.3.1 跨平台的 .NET Core 44 2.3.2 统一的BCL 51 2.3.3 展望未来 56 第3章 依赖注入(上篇) 58 3.1 控制反转 58 3.1.1 流程控制的反转 58 3.1.2 好莱坞法则 61 3.1.3 流程定制 62 3.2 IoC模式 62 3.2.1 模板方法 63 3.2.2 工厂方法 64 3.2.3 抽象工厂 66 3.3 依赖注入 68 3.3.1 由容器提供对象 68 3.3.2 3种依赖注入方式 69 3.3.3 Service Locator模式 72 3.4 一个简易版的依赖注入容器 74 3.4.1 编程体验 74 3.4.2 设计与实现 79 3.4.3 扩展方法 85 第4章 依赖注入(下篇) 89 4.1 利用容器提供服务 89 4.1.1 服务的注册与消费 89 4.1.2 生命周期 93 4.1.3 针对服务注册的验证 96 4.2 服务注册 99 4.2.1 ServiceDescriptor 99 4.2.2 IServiceCollection 101 4.3 服务的消费 105 4.3.1 IServiceProvider 105 4.3.2 服务实例的创建 106 4.3.3 生命周期 109 4.4 实现概览 113 4.4.1 ServiceProviderEngine和ServiceProviderEngineScope 113 4.4.2 ServiceProvider 115 4.4.3 注入IServiceProvider对象 117 4.5 扩展 119 4.5.1 适配 120 4.5.2 IServiceProviderFactory 120 4.5.3 整合第三方依赖注入框架 121 第5章 文件系统 126 5.1 抽象的文件系统 126 5.1.1 树形层次结构 126 5.1.2 读取文件内容 128 5.1.3 监控文件的变化 130 5.2 设计详解 131 5.2.1 IChangeToken 132 5.2.2 IFileProvider 133 5.2.3 PhysicalFileProvider 135 5.2.4 EmbeddedFileProvider 139 5.2.5 两个特殊的IFileProvider实现 144 5.3 远程文件系统 147 5.3.1 HttpFileInfo与HttpDirectoryContents 147 5.3.2 HttpFileProvider 150 5.3.3 FileProviderMiddleware 151 5.3.4 远程文件系统的应用 153 第6章 配置选项(上篇) 155 6.1 读取配置信息 155 6.1.1 配置编程模型三要素 155 6.1.2 以键值对的形式读取配置 156 6.1.3 读取结构化的配置 157 6.1.4 将结构化配置直接绑定为对象 160 6.1.5 将配置定义在文件中 161 6.2 配置模型 165 6.2.1 数据结构及其转换 166 6.2.2 IConfiguration 167 6.2.3 IConfigurationProvider 169 6.2.4 IConfigurationSource 171 6.2.5 IConfigurationBuilder 171 6.3 配置绑定 172 6.3.1 绑定配置项的值 173 6.3.2 绑定复合数据类型 175 6.3.3 绑定集合对象 177 6.3.4 绑定字典 180 6.4 配置的同步 181 6.4.1 配置数据流 181 6.4.2 ConfigurationReloadToken 182 6.4.3 ConfigurationRoot 183 6.4.4 ConfigurationSection 185 6.5 多样性的配置源 186 6.5.1 MemoryConfigurationSource 187 6.5.2 EnvironmentVariablesConfigurationSource 188 6.5.3 CommandLineConfigurationSource 191 6.5.4 FileConfigurationSource 194 6.5.5 StreamConfigurationSource 207 6.5.6 ChainedConfigurationSource 208 6.5.7 自定义ConfigurationSource(S616) 210 第7章 配置选项(下篇) 215 7.1 Options模式 215 7.1.1 将配置绑定为Options对象 215 7.1.2 提供具名的Options 217 7.1.3 配置源的同步 219 7.1.4 直接初始化Options对象 221 7.1.5 根据依赖服务的Options设置 223 7.1.6 验证Options的有效性 225 7.2 Options模型 226 7.2.1 OptionsManager 226 7.2.2 IOptionsFactory 228 7.2.3 IOptionsMonitorCache 237 7.2.4 IOptionsMonitor 238 7.3 依赖注入 240 7.3.1 服务注册 240 7.3.2 IOptions与IOptionsSnapshot 246 7.3.3 扩展与定制 248 7.3.4 集成配置系统 256 第8章 诊断日志(上篇) 258 8.1 各种诊断日志形式 258 8.1.1 调试日志 258 8.1.2 跟踪日志 259 8.1.3 事件日志 262 8.1.4 诊断日志 265 8.2 Debugger调试日志 268 8.2.1 Debugger 268 8.2.2 Debug 270 8.3 TraceSource跟踪日志 271 8.3.1 跟踪日志模型三要素 271 8.3.2 预定义TraceListener 280 8.3.3 Trace 284 8.4 EventSource事件日志 287 8.4.1 EventSource 287 8.4.2 EventListener 294 8.4.3 荷载对象序列化 298 8.4.4 活动跟踪 302 8.4.5 性能计数 306 8.5 DiagnosticSource诊断日志 308 8.5.1 标准的观察者模式 308 8.5.2 AnonymousObserver 310 8.5.3 强类型的事件订阅 313 8.5.4 针对活动的跟踪 315 第9章 诊断日志(下篇) 317 9.1 统一日志编程模式 317 9.1.1 将日志输出到不同的渠道 317 9.1.2 日志过滤 323 9.1.3 日志范围 329 9.1.4 LoggerMessage 331 9.2 日志模型详解 334 9.2.1 日志模型三要素 334 9.2.2 ILogger 335 9.2.3 日志范围 339 9.2.4 ILoggerProvider 342 9.2.5 ILoggerFactory 342 9.2.6 LoggerMessage 347 9.3 依赖注入 348 9.3.1 服务注册 349 9.3.2 设置日志过滤规则 351 9.4 日志输出渠道 353 9.4.1 控制台 353 9.4.2 调试器 357 9.4.3 TraceSource日志 359 9.4.4 EventSource日志 362 第10章 承载系统 377 10.1 服务承载 377 10.1.1 承载长时间运行服务 377 10.1.2 依赖注入 379 10.1.3 配置选项 382 10.1.4 承载环境 385 10.1.5 日志 388 10.2 承载模型 391 10.2.1 IHostedService 392 10.2.2 IHost 392 10.2.3 IHostBuilder 397 10.3 实现原理 402 10.3.1 服务宿主 403 10.3.2 针对配置系统的设置 406 10.3.3 针对依赖注入框架的设置 407 10.3.4 创建宿主 412 10.3.5 静态类型Host 418 第11章 管道(上篇) 421 11.1 管道式的请求处理 421 11.1.1 两个承载体系 421 11.1.2 请求处理管道 423 11.1.3 中间件 424 11.1.4 定义强类型中间件 427 11.1.5 按照约定定义中间件 428 11.2 依赖注入 430 11.2.1 服务注册 430 11.2.2 服务的消费 433 11.2.3 生命周期 437 11.2.4 集成第三方依赖注入框架 443 11.3 配置 444 11.3.1 初始化配置 444 11.3.2 以键值对形式读取和修改配置 446 11.3.3 合并配置 448 11.3.4 注册IConfigurationSource 449 11.4 承载环境 450 11.4.1 IWebHostEnvironment 450 11.4.2 通过配置定制承载环境 452 11.4.3 针对环境的编程 454 11.5 初始化 459 11.5.1 Startup 459 11.5.2 IHostingStartup 461 11.5.3 IStartupFilter 464 第12章 管道(中篇) 467 12.1 中间件委托链 467 12.1.1 HttpContext 467 12.1.2 中间件 468 12.1.3 中间件管道的构建 469 12.2 服务器 470 12.2.1 IServer 471 12.2.2 针对服务器的适配 471 12.2.3 HttpListenerServer 473 12.3 承载服务 476 12.3.1 WebHostedService 476 12.3.2 WebHostBuilder 476 12.3.3 应用构建 478 第13章 管道(下篇) 480 13.1 请求上下文 480 13.1.1 HttpContext 480 13.1.2 服务器适配 483 13.1.3 获取上下文 487 13.1.4 上下文的创建与释放 488 13.1.5 RequestServices 489 13.2 IServer IHttpApplication 491 13.2.1 IServer 491 13.2.2 HostingApplication 492 13.2.3 诊断日志 495 13.3 中间件委托链 501 13.3.1 IApplicationBuilder 501 13.3.2 弱类型中间件 504 13.3.3 强类型中间件 507 13.3.4 注册中间件 509 13.4 应用的承载 510 13.4.1 GenericWebHostServiceOptions 510 13.4.2 GenericWebHostService 512 13.4.3 GenericWebHostBuilder 515 13.4.4 ConfigureWebHostDefaults 530 附录A 实例演示1 533 第14章 静态文件 537 14.1 搭建文件服务器 537 14.1.1 发布物理文件 537 14.1.2 呈现目录结构 540 14.1.3 显示默认页面 541 14.1.4 映射媒体类型 544 14.2 处理文件请求 545 14.2.1 条件请求 545 14.2.2 区间请求 549 14.2.3 StaticFileMiddleware 552 14.3 处理目录请求 563 14.3.1 DirectoryBrowserMiddleware 563 14.3.2 DefaultFilesMiddleware 567 第15章 路由 571 15.1 路由映射 571 15.1.1 路由注册 571 15.1.2 设置内联约束 574 15.1.3 默认路由参数 576 15.1.4 特殊的路由参数 578 15.2 终结点的解析与执行 580 15.2.1 路由模式 580 15.2.2 终结点 586 15.2.3 中间件 593 15.3 路由约束 599 15.3.1 预定义的IRouteConstraint 600 15.3.2 InlineConstraintResolver 602 15.3.3 自定义约束 603 第16章 异常处理 607 16.1 呈现错误信息 607 16.1.1 显示开发者异常页面 607 16.1.2 显示定制异常页面 610 16.1.3 针对响应状态码定制错误页面 612 16.2 开发者异常页面 615 16.2.1 IDeveloperPageExceptionFilter 616 16.2.2 显示编译异常信息 617 16.2.3 DeveloperExceptionPageMiddleware 622 16.3 异常处理器 624 16.3.1 ExceptionHandlerMiddleware 624 16.3.2 异常的传递与请求路径的恢复 626 16.3.3 清除缓存 629 16.4 响应状态码页面 631 16.4.1 StatusCodePagesMiddleware 632 16.4.2 阻止处理异常 632 16.4.3 注册StatusCodePagesMiddleware中间件 635 第17章 缓存 642 17.1 将数据缓存起来 642 17.1.1 将数据缓存在内存中 642 17.1.2 对数据进行分布式缓存 644 17.1.3 缓存整个HTTP响应 648 17.2 本地内存缓存 651 17.2.1 ICacheEntry 651 17.2.2 MemoryCacheEntryOptions 654 17.2.3 IMemoryCache 655 17.3 分布式缓存 663 17.3.1 IDistributedCache 664 17.3.2 基于Redis的分布式缓存 665 17.3.3 基于SQL Server的分布式缓存 668 17.4 响应缓存 670 17.4.1 HTTP/1.1 Caching 670 17.4.2 ResponseCachingMiddleware中间件 673 17.4.3 注册中间件 680 第18章 会话 681 18.1 利用会话保留“语境” 681 18.1.1 设置和提取会话状态 681 18.1.2 查看存储的会话状态 683 18.1.3 查看Cookie 685 18.2 会话状态的读写 686 18.2.1 ISession 686 18.2.2 DistributedSession 687 18.2.3 ISessionStore 688 18.3 SessionMiddleware中间件 689 18.3.1 SessionOptions 689 18.3.2 ISessionFeature 690 18.3.3 SessionMiddleware 691 第19章 认证 694 19.1 认证、登录与注销 694 19.1.1 认证票据 694 19.1.2 基于Cookie的认证 695 19.1.3 应用主页 696 19.1.4 登录与注销 698 19.2 身份与用户 700 19.2.1 IIdentity 700 19.2.2 IPrincipal 707 19.3 认证模型 710 19.3.1 认证票据 710 19.3.2 认证处理器 713 19.3.3 认证服务 720 19.3.4 服务注册 724 19.3.5 AuthenticationMiddleware 727 19.4 Cookie认证方案 729 19.4.1 AuthenticationHandler 729 19.4.2 CookieAuthenticationHandler 735 19.4.3 注册CookieAuthenticationHandler 744 第20章 授权 747 20.1 基于角色的权限控制 747 20.1.1 用户与角色的映射 747 20.1.2 根据角色授权 750 20.1.3 预定义授权策略 754 20.2 基于“要求”的授权 756 20.2.1 IAuthorizationRequirement 756 20.2.2 预定义的IAuthorizationRequirement实现类型 758 20.2.3 授权检验 762 20.3 基于“策略”的授权 767 20.3.1 授权策略的构建 768 20.3.2 授权策略的注册 769 20.3.3 授权检验 770 第21章 跨域资源共享 773 21.1 处理跨域资源 773 21.1.1 跨域调用API 773 21.1.2 资源提供者显式授权 777 21.1.3 基于策略的资源授权 779 21.2 CORS规范 780 21.2.1 同源策略 781 21.2.2 针对资源的授权 781 21.2.3 获取授权的方式 782 21.2.4 用户凭证 785 21.3 CORS模型 785 21.3.1 CORS策略 786 21.3.2 解析并应用授权结果 788 21.3.3 CorsMiddleware中间件 790 第22章 本地化 793 22.1 提供本地化消息文本 793 22.1.1 提供对应语种的文本 793 22.1.2 自动设置语言文化 795 22.1.3 将本地化文本分而治之 798 22.1.4 直接注入IStringLocalizer 800 22.2 文本本地化 801 22.2.1 字符串本地化模型 801 22.2.2 基于JSON文件的本地化 804 22.2.3 基于资源文件的本地化 810 22.3 当前语言文化的设置 814 22.3.1 Culture与UICulture 814 22.3.2 IRequestCultureProvider 815 22.3.3 RequestLocalizationOptions 820 22.3.4 RequestLocalizationMiddleware 821 第23章 健康检查 822 23.1 检查应用的健康状况 822 23.1.1 确定当前应用是否可用 822 23.1.2 定制健康检查逻辑 823 23.1.3 改变响应状态码 825 23.1.4 细粒度的健康检查 826 23.1.5 定制响应内容 828 23.1.6 过滤IHealthCheck对象 830 23.2 设计与实现 832 23.2.1 IHealthCheck 832 23.2.2 HealthCheckService 838 23.2.3 HealthCheckMiddleware 842 23.2.4 针对Entity Framework Core的健康检查 846 23.3 发布健康报告 850 23.3.1 定期发布健康报告 850 23.3.2 IHealthCheckPublisher 851 23.3.3 HealthCheckPublisherHostedService 852 第24章 补遗 856 24.1 过滤主机名 856 24.1.1 实例演示 856 24.1.2 配置选项 857 24.1.3 HostFilteringMiddleware中间件 858 24.2 HTTP重写 859 24.2.1 实例演示 859 24.2.2 HttpMethodOverrideMiddleware中间件 863 24.2.3 ForwardedHeadersMiddleware中间件 864 24.3 基础路径 872 24.3.1 实例演示 873 24.3.2 UsePathBaseMiddleware 874 24.4 路由 876 24.4.1 实例演示 876 24.4.2 MapMiddleware 878 24.4.3 MapWhenMiddleware 880 附录B 实例演示2 882
展开全部

作者简介

蒋金楠,同程艺龙技术专家。知名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框架揭秘》等著作。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航