作为《ASP.NET Core 3框架揭秘》的升级版,《ASP.NET Core 6框架揭秘》提供了很多新的章节,同时对现有的内容进行大量的修改。虽然本书旨在对ASP.NET Core框架的架构设计和实现原理进行剖析,但是其中提供的258个实例演示却可以作为入门材料,这个系列会将这些演示实例单独提取出来并进行汇总。对于想学习ASP.NET Core的同学,如果你觉得本书过于深入,读起来稍显吃力,可以看看。如果你对《ASP.NET Core 6框架揭秘》有兴趣,可以加入本书读者群(即原来《《ASP.NET Core 3框架揭秘》读者群,已经在群里的无需重复加入,但可以推荐其他人加入)。本书的目录可以从这里查看。
第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模式)(源代码)