ASP.NET Core 6框架揭秘的258个实例

作为《ASP.NET Core 3框架揭秘》的升级版,《ASP.NET Core 6框架揭秘》提供了很多新的章节,同时对现有的内容进行大量的修改。虽然本书旨在对ASP.NET Core框架的架构设计和实现原理进行剖析,但是其中提供的258个实例演示却可以作为入门材料,这个系列会将这些演示实例单独提取出来并进行汇总。对于想学习ASP.NET Core的同学,如果你觉得本书过于深入,读起来稍显吃力,可以看看。

第01章 编程体验

[101]利用命令行创建.NET程序源代码
[102]采用Minimal API构建ASP.NET Core程序源代码
[103]一步创建WebApplication对象源代码
[104]使用原始形态的中间件源代码
[105]使用中间件委托变体(1)(源代码
[106]使用中间件委托变体(2)(源代码
[107]定义强类型中间件类型源代码
[108]定义基于约定的中间件类型(构造函数注入)(源代码
[109]定义基于约定的中间件类型(方法注入)(源代码
[110]配置的应用源代码
[111]Options的应用源代码
[112]日志的应用源代码
[113]路由的应用源代码
[114]开发MVC API源代码
[115]开发MVC APP源代码
[116]开发gRPC API源代码
[117]Dapr-服务调用源代码
[118]Dapr-状态管理源代码
[119]Dapr-发布订阅(源代码
[120]Dapr-Actor模型源代码

第02章 依赖注入(上篇)

[201]模拟容器Cat-普通服务的注册和提取源代码
[202]模拟容器Cat-针对泛型服务类型的支持源代码
[203]模拟容器Cat-为同一类型提供多个服务注册源代码
[204]模拟容器Cat-服务实例的生命周期源代码

第03章 依赖注入(下篇)

[301]普通服务的注册和提取源代码
[302]针对泛型服务类型的支持源代码
[303]为同一类型提供多个服务注册源代码
[304]服务实例的生命周期源代码
[305]服务实例的释放回收源代码
[306]服务范围的验证源代码
[307]服务注册有效性的验证源代码
[308]构造函数的选择(成功)(源代码
[309]构造函数的选择(失败)(源代码
[310]IDisposable和IAsyncDisposable接口的差异(错误编程)(源代码
[311]IDisposable和IAsyncDisposable接口的差异(正确编程)(源代码
[312]利用ActivatorUtilities提供服务实例源代码
[313]ActivatorUtilities针对构造函数的“评分”(源代码
[314]ActivatorUtilities针对构造函数的选择源代码
[315]ActivatorUtilitiesConstructorAttribute特性的应用源代码
[316]与第三方依赖注入框架Cat的整合源代码

第04章 文件系统

[S401] 输出文件系统目录结构源代码
[S402]读取物理文件内容源代码
[S403]读取内嵌文件内容源代码
[S404]监控文件的变更源代码

第05章 配置选项(上篇)

[501]以键值对形式读取配置源代码
[502]读取结构化配置源代码
[503]将结构化配置绑定为对象源代码
[504]将配置定义在JSON文件中源代码
[505]根据环境动态加载配置文件源代码
[506]配置内容的实时同步源代码
[507]绑定配置项的值源代码
[508]类型转换器在配置绑定中的应用源代码
[509]复合对象的配置绑定源代码
[510]集合的配置绑定源代码
[511]集合和数组的配置绑定的差异源代码
[512]字典的配置绑定源代码

第06章 配置选项(下篇)

[601]将配置绑定为Options对象源代码
[602]具名Options的注册和提取源代码
[603]Options与配置源的实时同步(匿名Options)(源代码
[604]Options与配置源的实时同步(具名Options)源代码
[605]用代码方式初始化Options(匿名Options)源代码
[606]用代码方式初始化Options(具名Options)源代码
[607]针对依赖服务的Options设置源代码
[608]验证Options的有效性源代码

第07章 诊断日志(上篇)

[S701]TraceSource跟踪日志源代码
[S702]基于等级的日志过滤源代码
[S703]自定义面向控制台的TraceListener源代码
[S704]EventSource事件日志源代码
[S705]自定义EventListener监听事件源代码
[S706]DiagnosticListener诊断日志源代码
[S707]为DiagnosticListener注册强类型订阅者源代码
[S708]DefaultTraceListener针对文件的日志输出源代码
[S709]利用DelimitedListTraceListener将日志输出到CSV文件源代码
[S710]更加完整的EventListener类型定义源代码
[S711]利用EventSource的事件日志输出调用链源代码
[S712]AnonymousObserver<T>的应用源代码
[S713]强类型诊断事件订阅源代码

第08章 诊断日志(中篇)

[S801]将日志输出到控制台和调试窗口源代码
[S802]利用ILoggerFactory工厂创建Ilogger<T>对象源代码
[S803]注入Ilogger<T>对象源代码
[S804]TraceSource和EventSource的日志输出源代码
[S805]针对等级的日志过滤源代码
[S806]针对等级和类别的日志过滤源代码
[S807]针对等级、类别和ILoggerProvider类型的日志过滤源代码
[S808]利用配置定义日志过滤规则源代码
[S809]利用日志范围输出调用链源代码
[S810]LoggerMessage的应用源代码
[S812]基于Activity的日志范围源代码

第09章 诊断日志(下篇)

[S901]SimpleConsoleFormatter格式化器源代码
[S902]SystemdConsoleFormatter格式化器源代码
[S903]JsonConsoleFormatter格式化器源代码
[S904]改变ConsoleLogger的标准输出和错误输出源代码
[S905]自定义控制台日志的格式化器源代码

第10章 对象池

[S1001]对象池基本使用方式    
[S1002]利用注入的ObjectPoolProvider提供对象池
[S1003]自定义对象池化策略
[S1004]对象池的容量与并发的关系(容量不小于并发量)
[S1005]对象池的容量与并发的关系(容量小于并发量)
[S1006]池化对象的释放
[S1007]池化集合对象
[S1008]池化StringBuilder
[S1009]ArrayPool<T>的应用
[S1010]MemoryPool<T>的应用

第11章 缓存

[S1101]基于内存的本地缓存源代码
[S1102]基于Redis的分布式缓存源代码
[S1103]基于SQL Server的分布式缓存源代码

第12章 HTTP调用

[S1201]频繁创建HttpClient对象调用API源代码
[S1202]以单例方式使用HttpClient源代码
[S1203]利用IHttpClientFactory工厂创建HttpClient对象源代码
[S1204]直接注入HttpClient对象源代码
[S1205]定制HttpClient对象源代码
[S1206]强类型客户端源代码
[S1207]基于Polly的失败重试源代码
[S1208]HttpClient的默认管道结构源代码
[S1209]定制HttpClient管道源代码
[S1210]针对HTTP调用的日志输出(>=Information)(源代码
[S1211]针对HTTP调用的日志输出(>=Trace)(源代码

第13章 数据保护

[S1301]数据的加解密源代码
[S1302]Purpose字符串一致性源代码
[S1303]设置加密内容的有效期源代码
[S1304]撤销加密密钥(单个密钥)(源代码
[S1305]撤销加密密钥(所有密钥)(源代码
[S1306]瞬时加解密源代码
[S1307]密钥哈希源代码
[S1308]基于本地文件系统的密钥管理(密钥创建)源代码
[S1309]基于本地文件系统的密钥管理(密钥撤销)源代码

第14章 服务承载

[S1401]利用承载服务收集性能指标源代码
[S1402]依赖注入的应用源代码
[S1403]配置选项的应用源代码
[S1404]提供针对环境的配置源代码
[S1405]日志的应用源代码
[S1406]在配置中定义日志过滤规则源代码
[S1407]利用IHostApplicationLifetime对象关闭应用源代码
[S1408]与第三方依赖注入框架的整合(源代码
[S1409]利用配置初始化承载环境源代码

第15章 应用承载(上篇)

[S1501]基于IWebHost/IWebHostBuilder的应用承载方式源代码
[S1502]将初始化设置定义在Startup类型中源代码
[S1503]基于IHost/IHostBuilder的应用承载方式源代码
[S1504]Minimal API源代码

第16章 应用承载(中篇)

[S1601]一个“迷你版”的ASP.NET Core框架源代码

第17章 应用承载(下篇)

[S1701]ASP.NET针对请求的诊断日志源代码
[S1702]收集DiagnosticSource输出的日志源代码
[S1703]收集EventSource输出的日志源代码
[S1704]模拟Minimal API的实现源代码

第18章 服务器

[S1801]自定义服务器源代码
[S1802]两种终结点的选择源代码
[S1803]直接创建连接接收请求和回复响应源代码
[S1804]模拟KestrelServer的实现源代码
[S1805]使用IIS部署ASP.NET Core应用(In-Process模式)源代码
[S1806]使用IIS部署ASP.NET Core应用(Out-Of-Process模式)源代码

第19章 静态文件

[1901]以Web形式发布文件(图片)
[1902]以Web形式发布文件(PDF)
[1903]显式文件目录结构
[1904]显示目录的默认页面
[1905]定制目录的默认页面
[1906]设置默认的媒体类型
[1907]映射文件扩展名的媒体类型

第20章 路由

[S2001]注册路由终结点
[S2002]以内联方式设置路由参数的约束
[S2003]定义可缺省的路由参数
[S2004]为路由参数指定默认值
[S2005]一个路径分段定义多个路由参数
[S2006]一个路由参数跨越多个路径分段
[S2007]主机名绑定
[S2008]将终结点处理定义为任意类型的委托
[S2009]IResult 的应用

第21章 异常处理

[2101]开发者异常页面的呈现
[2102]定制异常页面的呈现
[2103]利用注册的中间件处理异常
[2104]针对异常页面的重定向
[2105]基于响应状态码错误页面的呈现(设置响应内容模板)
[2106]基于响应状态码错误页面的呈现(提供异常处理器)
[2107]基于响应状态码错误页面的呈现(利用中间件创建异常处理器)
[S2108]利用IDeveloperPageExceptionFilter定制开发者异常页面
[S2109]针对编译异常的处理(默认)
[S2110]针对编译异常的处理(定义源代码输出行数)
[S2111]利用IExceptionHandlerFeature特性提供错误信息
[S2112]清除缓存响应报头
[S2113]针对404响应的处理
[S2114]利用I[Statu[SCodePage[SFeature特性忽略异常处理

第22章 响应缓存

[S2201]基于路径的响应缓存
[S2202]基于指定的查询字符串缓存响应
[S2203]基于指定的请求报头缓存响应
[S2204]缓存屏蔽

第23章 会话

[S2301]设置和提取会话状态
[S2302]查看存储的会话状态
[S2303] 查看Cookie

第24章 HTTPS策略

[S2401]构建HTTPS站点
[S2402]HTTPS终结点重定向
[S2403]注册HstsMiddleware中间件
[S2404]设置HSTS配置选项

第25章 重定向

[S2501]客户端重定向
[S2502]服务端重定向
[S2503]采用IIS重写规则实现重定向
[S2504]采用Apache重写规则实现重定向
[S2505]基于HTTPS终结点的重定向

第26章 限流

[S2601]设置并发和等待请求阈值
[S2602]基于队列的限流策略
[S2603]基于栈的限流策略
[S2604]处理被拒绝的请求

第27章 认证

[S2701]使用最简洁的代码实现登录、认证和注销

第28章 授权

[S2801]基于“要求”的授权
[S2802]基于“策略”的授权
[S2803]将“角色”绑定到路由终结点
[S2804]将“授权策略”绑定到路由终结点

第29章 跨域资源共享

[S2901]跨域调用API
[S2902]显式指定授权Origin列表
[S2903]手工检验指定Origin是否的权限
[S2904]基于策略的资源授权(匿名策略)
[S2905]基于策略的资源授权(具名策略)
[S2906]将CORS规则应用到路由终结点上(代码编程形式)
[S2907]将CORS规则应用到路由终结点上(特性标注形式)

第30章 健康检查

[S3001]确定应用可用状态
[S3002]定制健康检查逻辑
[S3003]改变健康状态对应的响应状态码
[S3004]提供细粒度的健康检查
[S3005]定制健康报告响应内容
[S3006]IHealthCheck对象的过滤
[S3007]定期发布健康报告


posted @ 2022-02-22 08:23  Artech  阅读(24968)  评论(8编辑  收藏  举报