欢迎光临
免费的PDF电子书下载网站

ASP.NET Core 3 框架揭秘(上下册) PDF下载

编辑推荐

 

作为核心的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管道的构建方式,以及管道针对请求的处理流程。

√ 深入讲述每个常用中间件针对请求的处理逻辑。

 

内容简介

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

作者简介

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

ASP.NET Core 3 框架揭秘(上下册) PDF下载

目录

第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

ASP.NET Core 3 框架揭秘(上下册) pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:ASP.NET Core 3 框架揭秘(上下册)