|
章节 |
编码 |
摘要 |
1 |
01 |
S101 |
执行命令行“dotnet new”创建控制台程序 |
2 |
S102 |
采用Minimal API构建ASP.NET程序 |
3 |
S103 |
一步创建WebApplication对象 |
4 |
S104 |
使用原始形态的中间件 |
5 |
S105 |
使用中间件委托变体(1) |
6 |
S106 |
使用中间件委托变体(2) |
7 |
S107 |
定义强类型中间件类型 |
8 |
S108 |
定义基于约定的中间件类型(构造函数注入) |
9 |
S109 |
定义基于约定的中间件类型(方法注入) |
10 |
S110 |
配置的应用 |
11 |
S111 |
Options的应用 |
12 |
S112 |
日志的应用 |
13 |
S113 |
路由的应用 |
14 |
S114 |
开发MVC API |
15 |
S115 |
开发MVC APP |
16 |
S116 |
开发gRPC API |
17 |
S117 |
Dapr-服务调用 |
18 |
S118 |
Dapr-状态管理 |
19 |
S119 |
Dapr-发布订阅 |
20 |
S120 |
Dapr-Actor模型 |
21 |
02 |
S201 |
模拟容器Cat-普通服务的注册和提取 |
22 |
S202 |
模拟容器Cat-针对泛型服务类型的支持 |
23 |
S203 |
模拟容器Cat-为同一类型提供多个服务注册 |
24 |
S204 |
模拟容器Cat-服务实例的生命周期 |
25 |
03 |
S301 |
普通服务的注册和提取 |
26 |
S302 |
针对泛型服务类型的支持 |
27 |
S303 |
为同一类型提供多个服务注册 |
28 |
S304 |
服务实例的生命周期 |
29 |
S305 |
服务实例的释放回收 |
30 |
S306 |
服务范围的验证 |
31 |
S307 |
服务注册有效性的验证 |
32 |
S308 |
构造函数的选择(成功) |
33 |
S309 |
构造函数的选择(失败) |
34 |
S310 |
IDisposable和IAsyncDisposable接口的差异(错误编程) |
35 |
S311 |
IDisposable和IAsyncDisposable接口的差异(正确编程) |
36 |
S312 |
利用ActivatorUtilities提供服务实例 |
37 |
S313 |
ActivatorUtilities针对构造函数的“评分” |
38 |
S314 |
ActivatorUtilities针对构造函数的选择 |
39 |
S315 |
ActivatorUtilitiesConstructorAttribute特性的应用 |
40 |
S316 |
与Cat框架的整合 |
41 |
04 |
S401 |
输出文件系统目录结构 |
42 |
S402 |
读取物理文件内容 |
43 |
S403 |
读取内嵌文件内容 |
44 |
S404 |
监控文件的变更 |
45 |
05 |
S501 |
以键值对形式读取配置 |
46 |
S502 |
读取结构化配置 |
47 |
S503 |
将结构化配置绑定为对象 |
48 |
S504 |
将配置定义在JSON文件中 |
49 |
S505 |
根据环境动态加载配置文件 |
50 |
S506 |
配置内容的实时同步 |
51 |
S507 |
绑定配置项的值 |
52 |
S508 |
类型转换器在配置绑定中的应用 |
53 |
S509 |
复合对象的配置绑定 |
54 |
S510 |
集合的配置绑定 |
55 |
S511 |
集合和数组的配置绑定的差异 |
56 |
S512 |
字典的配置绑定 |
57 |
S513 |
环境变量的配置源 |
58 |
S514 |
命令行参数的配置源 |
59 |
06 |
S601 |
将配置绑定为Options对象 |
60 |
S602 |
具名Options的注册和提取 |
61 |
S603 |
Options与配置源的实时同步(匿名Options) |
62 |
S604 |
Options与配置源的实时同步(具名Options) |
63 |
S605 |
用代码方式初始化Options(匿名Options) |
64 |
S606 |
用代码方式初始化Options(具名Options) |
65 |
S607 |
针对依赖服务的Options设置 |
66 |
S608 |
验证Options的有效性 |
67 |
S609 |
IOptions<TOptions>和IOptionsSnapshot<TOptions>的差异 |
68 |
07 |
S701 |
TraceSource跟踪日志 |
69 |
S702 |
基于等级的日志过滤 |
70 |
S703 |
自定义面向控制台的TraceListener |
71 |
S704 |
EventSource事件日志 |
72 |
S705 |
自定义EventListener监听事件 |
73 |
S706 |
DiagnosticListener诊断日志 |
74 |
S707 |
为DiagnosticListener注册强类型订阅者 |
75 |
S708 |
DefaultTraceListener针对文件的日志输出 |
76 |
S709 |
利用DelimitedListTraceListener将日志输出到CSV文件 |
77 |
S710 |
更加完整的EventListener类型定义 |
78 |
S711 |
利用EventSource的事件日志输出调用链 |
79 |
S712 |
AnonymousObserver<T>的应用 |
80 |
S713 |
强类型诊断事件订阅 |
81 |
08 |
S801 |
将日志输出到控制台和调试窗口 |
82 |
S802 |
利用ILoggerFactory工厂创建Ilogger<T>对象 |
83 |
S803 |
注入Ilogger<T>对象 |
84 |
S804 |
TraceSource和EventSource的日志输出 |
85 |
S805 |
针对等级的日志过滤 |
86 |
S806 |
针对等级和类别的日志过滤 |
87 |
S807 |
针对等级、类别和ILoggerProvider类型的日志过滤 |
88 |
S808 |
利用配置定义日志过滤规则 |
89 |
S809 |
利用日志范围输出调用链 |
90 |
S810 |
LoggerMessage的应用 |
91 |
S811 |
Activity的采样策略 |
92 |
S812 |
基于Activity的日志范围 |
93 |
09 |
S901 |
SimpleConsoleFormatter格式化器 |
94 |
S902 |
SystemdConsoleFormatter格式化器 |
95 |
S903 |
JsonConsoleFormatter格式化器 |
96 |
S904 |
改变ConsoleLogger的标准输出和错误输出 |
97 |
S905 |
自定义控制台日志的格式化器 |
98 |
S906 |
利用EventListener收集EventSourceLogger输出的日志 |
99 |
S907 |
EventSourceLogger针对日志范围的支持 |
100 |
10 |
S1001 |
对象池基本使用方式 |
101 |
S1002 |
利用注入的ObjectPoolProvider提供对象池 |
102 |
S1003 |
自定义对象池化策略 |
103 |
S1004 |
对象池的容量与并发的关系(容量不小于并发量) |
104 |
S1005 |
对象池的容量与并发的关系(容量小于并发量) |
105 |
S1006 |
池化对象的释放 |
106 |
S1007 |
池化集合对象 |
107 |
S1008 |
池化StringBuilder |
108 |
S1009 |
ArrayPool<T>的应用 |
109 |
S1010 |
MemoryPool<T>的应用 |
110 |
11 |
S1101 |
基于内存的本地缓存 |
111 |
S1102 |
基于Redis的分布式缓存 |
112 |
S1103 |
基于SQL Server的分布式缓存 |
113 |
S1104 |
基于文件的更变的缓存过期策略 |
114 |
S1105 |
缓存压缩 |
115 |
S1106 |
Redis分布式缓存的过期实现 |
116 |
12 |
S1201 |
频繁创建HttpClient对象调用API |
117 |
S1202 |
以单例方式使用HttpClient |
118 |
S1203 |
利用IHttpClientFactory工厂创建HttpClient对象 |
119 |
S1204 |
直接注入HttpClient对象 |
120 |
S1205 |
定制HttpClient对象 |
121 |
S1206 |
强类型客户端 |
122 |
S1207 |
基于Polly的失败重试 |
123 |
S1208 |
HttpClient的默认管道结构 |
124 |
S1209 |
定制HttpClient管道 |
125 |
S1210 |
针对HTTP调用的日志输出(>=Information) |
126 |
S1211 |
针对HTTP调用的日志输出(>=Trace) |
127 |
S1212 |
在日志中过滤报头 |
128 |
S1213 |
SuppressHandlerScope设置针对服务实例生命周期的影响(False) |
129 |
S1214 |
SuppressHandlerScope设置针对服务实例生命周期的影响(True) |
130 |
13 |
S1301 |
数据的加解密 |
131 |
S1302 |
Purpose字符串一致性 |
132 |
S1303 |
设置加密内容的有效期 |
133 |
S1304 |
撤销加密密钥(单个密钥) |
134 |
S1305 |
撤销加密密钥(所有密钥) |
135 |
S1306 |
瞬时加解密 |
136 |
S1307 |
密钥哈希 |
137 |
S1308 |
基于本地文件系统的密钥管理(密钥创建) |
138 |
S1309 |
基于本地文件系统的密钥管理(密钥撤销) |
139 |
14 |
S1401 |
利用承载服务收集性能指标 |
140 |
S1402 |
依赖注入的应用 |
141 |
S1403 |
配置选项的应用 |
142 |
S1404 |
提供针对环境的配置 |
143 |
S1405 |
日志的应用 |
144 |
S1406 |
在配置中定义日志过滤规则 |
145 |
S1407 |
利用IHostApplicationLifetime对象关闭应用 |
146 |
S1408 |
与第三方依赖注入框架的整合 |
147 |
S1409 |
利用配置初始化承载环境 |
148 |
15 |
S1501 |
基于IWebHost/IWebHostBuilder的应用承载方式 |
149 |
S1502 |
将初始化设置定义在Startup类型中 |
150 |
S1503 |
基于IHost/IHostBuilder的应用承载方式 |
151 |
S1504 |
Minimal API的方式承载应用 |
152 |
S1505 |
以Func<RequestDelegate, RequestDelegate>形式定义中间件 |
153 |
S1506 |
定义强类型中间件类型 |
154 |
S1507 |
定义基于约定的中间件类型 |
155 |
S1508 |
查看默认注册的服务 |
156 |
S1509 |
中间件类型的构造函数注入 |
157 |
S1510 |
中间件类型的方法注入 |
158 |
S1511 |
服务实例的周期 |
159 |
S1512 |
针对服务范围的验证 |
160 |
S1513 |
基于环境变量的配置初始化 |
161 |
S1514 |
以键值对形式读取和修改配置 |
162 |
S1515 |
注册配置源(利用IWebHostBuilder) |
163 |
S1516 |
注册配置源(推荐方式) |
164 |
S1517 |
默认的承载环境 |
165 |
S1518 |
通过配置定制承载环境 |
166 |
S1519 |
利用WebApplicationOptions定制承载环境 |
167 |
16 |
S1601 |
Mini版的ASP.NET框架 |
168 |
17 |
S1701 |
ASP.NET针对请求的诊断日志 |
169 |
S1702 |
收集DiagnosticSource输出的日志 |
170 |
S1703 |
收集EventSource输出的日志 |
171 |
S1704 |
模拟Mininal API的实现 |
172 |
18 |
S1801 |
自定义服务器 |
173 |
S1802 |
两种终结点的选择 |
174 |
S1803 |
模拟KestrelServer的实现 |
175 |
S1804 |
基于In-Process模式的IIS部署 |
176 |
S1805 |
基于Out-of-Process模式的IIS部署 |
177 |
19 |
S1901 |
以Web形式发布文件(图片) |
178 |
S1902 |
以Web形式发布文件(PDF) |
179 |
S1903 |
显式文件目录结构 |
180 |
S1904 |
显示目录的默认页面 |
181 |
S1905 |
定制目录的默认页面 |
182 |
S1906 |
设置默认的媒体类型 |
183 |
S1907 |
映射文件扩展名的媒体类型 |
184 |
S1908 |
改变目录结构的呈现方式 |
185 |
20 |
S2001 |
注册路由终结点 |
186 |
S2002 |
以内联方式设置路由参数的约束 |
187 |
S2003 |
定义可缺省的路由参数 |
188 |
S2004 |
为路由参数指定默认值 |
189 |
S2005 |
一个路径分段定义多个路由参数 |
190 |
S2006 |
一个路由参数跨越多个路径分段 |
191 |
S2007 |
主机名绑定 |
192 |
S2008 |
将终结点处理定义为任意类型的委托 |
193 |
S2009 |
IResult 的应用 |
194 |
S2010 |
解析路由模式 |
195 |
S2011 |
利用多个中间件来构建终结点处理器 |
196 |
S2012 |
在参数上标注特性来决定绑定的数据源 |
197 |
S2013 |
默认的参数绑定规则 |
198 |
S2014 |
针对TryParse方法的参数绑定 |
199 |
S2015 |
针对BindAsync方法的参数绑定 |
200 |
S2016 |
自定义路由约束 |
201 |
21 |
S2101 |
开发者异常页面的呈现 |
202 |
S2102 |
定制异常页面的呈现 |
203 |
S2103 |
利用注册的中间件处理异常 |
204 |
S2104 |
针对异常页面的重定向 |
205 |
S2105 |
基于响应状态码错误页面的呈现(设置响应内容模板) |
206 |
S2106 |
基于响应状态码错误页面的呈现(提供异常处理器) |
207 |
S2107 |
基于响应状态码错误页面的呈现(利用中间件创建异常处理器) |
208 |
S2108 |
利用IDeveloperPageExceptionFilter定制开发者异常页面 |
209 |
S2109 |
针对编译异常的处理(默认) |
210 |
S2110 |
针对编译异常的处理(定义源代码输出行数) |
211 |
S2111 |
利用IExceptionHandlerFeature特性提供错误信息 |
212 |
S2112 |
清除缓存响应报头 |
213 |
S2113 |
针对404响应的处理 |
214 |
S2114 |
利用IStatusCodePagesFeature特性忽略异常处理 |
215 |
S2115 |
针对错误页面的客户端重定向 |
216 |
S2116 |
针对错误页面的服务端重定向 |
217 |
22 |
S2201 |
基于路径的响应缓存 |
218 |
S2202 |
基于指定的查询字符串缓存响应 |
219 |
S2203 |
基于指定的请求报头缓存响应 |
220 |
23 |
S2301 |
设置和提取会话状态 |
221 |
S2302 |
查看存储的会话状态 |
222 |
24 |
S2401 |
构建HTTPS站点 |
223 |
S2402 |
HTTPS终结点重定向 |
224 |
S2403 |
注册HstsMiddleware中间件 |
225 |
S2404 |
设置HSTS配置选项 |
226 |
25 |
S2501 |
客户端重定向 |
227 |
S2502 |
服务端重定向 |
228 |
S2503 |
采用IIS重写规则实现重定向 |
229 |
S2504 |
采用Apache重写规则实现重定向 |
230 |
S2505 |
基于HTTPS终结点的重定向 |
231 |
26 |
S2601 |
设置并发和等待请求阈值 |
232 |
S2602 |
基于队列的限流策略 |
233 |
S2603 |
基于栈的限流策略 |
234 |
S2604 |
处理被拒绝的请求 |
235 |
27 |
S2701 |
采用极简程序实现登录、认证和注销 |
236 |
28 |
S2801 |
基于“要求”的授权 |
237 |
S2802 |
基于“策略”的授权 |
238 |
S2803 |
将“角色”绑定到路由终结点 |
239 |
S2804 |
将“授权策略”绑定到路由终结点 |
240 |
29 |
S2901 |
跨域调用API |
241 |
S2902 |
显式指定授权Origin列表 |
242 |
S2903 |
手工检验指定Origin是否的权限 |
243 |
S2904 |
基于策略的资源授权(匿名策略) |
244 |
S2905 |
基于策略的资源授权(具名策略) |
245 |
S2906 |
将CORS规则应用到路由终结点上(代码编程形式) |
246 |
S2907 |
将CORS规则应用到路由终结点上(特性标注形式) |
247 |
30 |
S3001 |
确定应用可用状态 |
248 |
S3002 |
定制健康检查逻辑 |
249 |
S3003 |
改变健康状态对应的响应状态码 |
250 |
S3004 |
提供细粒度的健康检查 |
251 |
S3005 |
定制健康报告响应内容 |
252 |
S3006 |
IHealthCheck对象的过滤 |
253 |
S3007 |
定期发布健康报告 |