ASP.NET Core 6框架的258个实例,如何一一掌握?

摘要:作为《ASP.NET Core 3框架揭秘》的升级版,《ASP.NET Core 6框架揭秘》提供了很多新的章节,同时对现有的内容进行大量的修改。虽然本书旨在对ASP.NET Core框架的架构设计和实现原理进行剖析,但是其中提供的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]定期发布健康报告