第105期-使用连接服务生成 API 客户端
- 2022/7/6 22:26 | 36分钟
- VIP
连接服务是 Visual Studio 中的一个工具集合,可帮助你将应用程序快速连接到指定的远程服务,使用 OpenAPI 终结点生成 HTTP API 客户端,定制 OpenAPI 生成的方法名和代理类名,一键更新生成的代理类,使用代理类高效优雅的调用 Web API 接口。
连接服务是 Visual Studio 中的一个工具集合,可帮助你将应用程序快速连接到指定的远程服务,使用 OpenAPI 终结点生成 HTTP API 客户端,定制 OpenAPI 生成的方法名和代理类名,一键更新生成的代理类,使用代理类高效优雅的调用 Web API 接口。
最小 API 最小托管模型 ,最小 API 和控制器 API 的区别,关于 SignalR 改进,使用源代码生成器的 Razor 编译器, 支持使用 IAsyncDisposable 释放资源,配置 HTTP/3 提高性能,日志记录改进,使用热重载快速更新正在运行的应用程序,使用顶级语句最小化应用程序所需的代码,默认启用可为空的引用类型,隐式命名空间全局引用,使用 HTTP 日志中间件快速记录请求响应日志,启用 Redis 分析会话,使用卷影复制。
理解 REST API 中的 URL 设计规范, 深入理解 PUT 和 PATCH 请求的区别,使用 PUT 更新整个实体资源,使用 PATCH 更新资源的部分字段,学习 JSON Patch 协议规范和相关操作,在 Web API 中使用微软官方提供 Patch 库处理请求,将 Patch 的更改用 EF Core 持久化保存到数据库,在 OpenAPI 帮助文档中展示 Patch 示例并运行例程。
支持 UTC 时间模型绑定,记录类型模型绑定,默认开启 OpenAPI 规范文档生成,提升 gRPC 性能,支持为 SignalR 集线器设置筛选器,改进 Kestrel 的配置和性能,优化 HTTP2 协议,缩减 Docker 容器镜像,允许匿名访问终结点,在 HttpContext 上提供 JSON 读取和写入的扩展方法,控制 Startup 类激活,使用 Watch 监视代码变更,修改代码后浏览器自动刷新,提供 JSON 格式控制台日志记录器。
理解 .NET 5 版本规范,将项目从 .NET Core 升级到 .NET 5 版本,理解 .NET Framework、.NET Core、.NET Standard 和 .NET 5 版本之间的区别与联系,关于工作流 WF 和 分布式 WCF 跨平台替代方案,最新 C# 9.0 语言特性,提供源码生成器在编译阶段动态注入代码,了解 Roslyn 分析器,全方位性能提升,内置 JSON 序列化库提供更好的性能和功能,未来 .NET 版本发布时间和路线图,理解最新 .NET 的生态系统和愿景。
使用 Worker 编写后台自动任务,关于 IHostedService 接口与 BackgroundService 抽象类,构建自宿主 Host 环境,在依赖容器中注入后台任务,在 Docker 容器中部署后台任务,在 Windows 服务中托管后台任务,使用 PowerShell 和 SC 命令管理 Windows 服务,使用开源的任务调度器框架。
业务需求变化,需要对 API 进行修改和版本升级,这些升级不能破坏其原始的 API 协定,并且同时运行旧版和新版的服务协定,因此,有必要制定服务版本控制策略,微软开源库提供整套版本控制解决方案,实战演练,在 ASP.NET Core 中控制 Web API 和 OData 接口的版本,版本约定相关配置,基于 OpenAPI 生成具有版本控制的 Swagger 帮助文档,参阅微软官方帮助文档。
理解微软开放数据协议,适用于 ASP.NET Core Web API 的 OData 支持库,注册 OData 相关服务,配置中间件,创建 OData 控制器,使用 OData 条件查询资源,实体集合,主键查询,选择查询,展开查询,过滤查询,内置过滤操作符,使用工具生成客户端代理,使用代理类消费 OData 数据,官方提供的在线示例。
关于 WebAPI 设计准则与最佳实践,使用 [Produces]、[ProducesResponseType]、[ProducesErrorResponseType] 和 [ProducesDefaultResponseType] 标记 WebAPI 响应,使用 OpenAPI 分析器简化操作约定流程,使用微软内置的 DefaultApiConventions 约定器,实战演练,创建并使用自定义的约定模板。
使用 NSwag 工具生成基于 Swagger 规范和符合 OpenAPI 标准的帮助文档,使用 SwaggerUI 和 ReDocUI 界面,理解 NSwag 体系结构和支持的工具链,使用 Visual Studio 添加 OpenAPI 服务引用,在构建阶段生成 C# 客户端代理类和基于 TypeScript 的代理类,可用微软 DocFX 工具基于 OpenAPI 生成离线帮助文档。
关于 Swagger 与 OpenAPI 规范,使用 Swashbuckle 开源库生成 WebAPI 帮助文档,微软内置 ApiExplorer 元数据层,配置 Swagger 提供的 JSON 端点,元数据特性约定,包括 XML 注释中的描述,生成多版本文档,省略过时的内容,接口分组与排序,使用过滤器扩展生成器,配置身份认证与授权,启用 OAuth 流程,注入自定义 CSS 样式,自定义模板,启用元数据特性,使用 ReDoc 界面,第三方开源界面主题。
微软内置的开发者异常页面,自定义异常处理程序,开发环境与生产环境下的异常处理,返回符合 RFC7807 格式标准的错误消息,使用过滤器处理异常,模型验证失败时的错误响应,定制模型验证错误响应工厂,客户端错误响应返回, 自定义 ProblemDetailsFactory 工厂,生成 ProblemDetails 和 ValidationProblemDetails 实例,客户端错误码映射。
特定格式的操作结果,认识 JsonResult 与 ContentResult 的区别,理解 HTTP 协议中的 Content-Type 和 Accept 标头,数据格式的内容协商,配置格式化程序,内置 JSON 与 XML 格式化程序,支持第三方格式化程序,使用 [Produces] 限定输出格式,排除内置的格式化程序,使用 [FormatFilter] 过滤器通过 URL 参数协商数据格式,通过示例实战演练,自定义输入格式化器和输出格式化器。
理解 Web API 控制器操作的返回类型,使用特定类型返回值,同步操作与异步操作,实现异步可提高吞吐量,集合 IEnumerable<T> 与 IAsyncEnumerable<T> 的区别,关于 IActionResult 接口与 ActionResult<T> 类,使用 [ProducesResponseType] 特性为帮助文档提供更多的描述信息。
简单类型与复杂类型的模型绑定机制,关于参数绑定中的前缀约定,自定义前缀,使用 [BindRequired]、[BindNever] 和 [Bind] 约束绑定,自定义对象模型绑定,集合类型模型绑定,字典类型模型绑定,特殊数据类型模型绑定,使用转换器自定义模型绑定,从模型绑定中排除指定类型,手动模型绑定与验证,自定义模型绑定器。
基于属性与参数的模型绑定,使用 [BindProperty] 和 [BindProperties] 绑定属性值,参数绑定原理,理解 [FromBody]、[FromForm]、[FromHeader]、[FromQuery]、[FromRoute] 和 [FromServices] 特性,扩展模型绑定系统,编写并注册自定义值提供程序,内置默认值模型绑定规则,类型转换错误处理机制,基本类型绑定。
创建 API 项目, 理解 Controller 与 ControllerBase 的区别,了解 MVC 中提供的 Attribute 特性,理解 ApiController 特性的作用,路由配置,内置自动模型验证过滤器,响应符合 RFC 规范的错误消息,禁用模型自动验证,将 HTTP 错误状态代码转换为符合 RFC 规范的错误消息,禁用 HTTP 状态码转换,设置错误代码映射。
谷歌 ProtoBuf 语言规范,跨平台 gRPC 技术栈,通道配置,使用服务引用工具简化配置,配置 TLS 加密传输,异常封送,数据包大小限制,接口版本控制与向后兼容性,健康状况监测,使用反射协议动态调用服务,单元测试与功能测试,在客户端显示服务端处理进度,在浏览器中使用代理调用服务,支持分布式性能收集器,关于 Blazor 框架与 gRPC 服务的深度集成。
多方面对比 gRPC 服务与 Web API 接口技术选型,协定,协议,有效载荷,规范性,流式传输,浏览器支持,安全性和客户端代码生成,关于 gRPC的优点与缺点,理解 gRPC 服务的应用场景和技术选型,其它技术备用方案推荐。
数字证书与证书颁发机构,查看证书管理器,学习自签名证书创建工具,理解数字证书认证流程,编写 gRPC 服务,在服务端配置证书认证方式与授权条件,在客户端通道中附加数字证书,服务端获取客户端数字证书的元信息。
IdentityServer 框架是基于 ASP.NET Core 构建的 OpenID Connect 和 OAuth 2.0 框架,可与 gRPC 集成实现认证与授权,通过示例实战演练,构建认证授权服务,编写 gRPC 服务,使用客户端获取令牌并请求 gRPC 服务完成认证授权,分别配置基于角色和策略的授权机制,客户端令牌构造方式。
身份认证与授权原理,基于令牌的身份认证,获取当前服务请求的用户标识,通过订票业务示例代码,学习并实现 JWT 令牌颁发服务,配置 JWT 和 Bearer 身份认证,实现 gRPC 服务授权,客户端通过凭证获取令牌,使用令牌请求 gRPC 服务,关于 JWT 令牌的对称加密与非对称加密算法。
拦截器的工作原理与用途,横切关注点,编写示例代码实践拦截器用法,创建客户端拦截器,配置并使用客户端拦截器,创建服务端拦截器,配置并使用服务端拦截器,实现并重写拦截器相关的方法,配置全局拦截器和局部拦截器,将拦截器注册到依赖注入容器。
使用长连接通道创建客户端,将 gRPC 客户端注册到依赖注入容器,在相关服务中使用构造函数注入客户端实例,通过示例代码学习客户端与服务端通信的多种方式,最简单的一元调用方式,服务端写流客户端读流方式,客户端写流服务端读流方式,双向读写流通信方式。
配置 TLS 数字证书和端口,实现安全通信,集成依赖注入容器,从 gRPC 服务中解析 HttpContext 实例,服务端与客户端配置选项,限制收发消息大小,向客户端封送异常详情,压缩算法与级别设置,请求拦截器配置,设置 HttpClient 行为,日志工厂配置,数字证书配置,服务端与客户端日志记录配置。
理解 RPC 远程过程调用框架,学习 gRPC 技术原理,与语言无关的高性能远程过程调用框架,关于 gRPC 的技术优点和适用场景,通过编写示例实践,分别创建服务端和客户端,使用 Visual Studio 提供的模板创建并管理 gRPC 服务,定义通信协议,生成客户端代理类,在客户端调用远程 gRPC 服务方法,添加文件链接与服务连接。
变更令牌用于跟踪状态变化的目标对象,从而传播已发生更改的通知,理解 IChangeToken 接口与 ChangeToken 静态类,获取变更令牌与注册变更回调,当配置文件更改时自动加载最新配置,使用 IFileProvider 接口的 Watch 方法监视文件更改,当缓存数据项变更时自动过期,使用 CompositeChangeToken 类可同时组合多个变更令牌,实现自己的 IChangeToken 接口,自定义对象属性变更令牌。
侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件,编写简单的控制台演示程序,并学习 FileSystemWatcher 类的使用技巧,通过计算与比较文件的哈希值,解决文件系统变更事件重复执行多次的问题,读取并打印文件内容,理解重试机制中的指数退避算法。
使用微软提供的 dotnet watch 工具监控项目文件更改,当文件变更时自动触发项目编译、测试执行和持续部署,原始命令与监视命令的对应关系,学习 glob 模式匹配,自定义要监视的文件列表,从要监视的文件列表中排除指定的文件,自定义监视项目文件可实现同时监视多个项目,开源代码与内部实现原理。
环境准备与先决条件,更新项目文件,更新目标框架,删除过时的包引用,将使用的第三方 NuGet 包升级到最新版,移除 Startup 启动类中过时的内容,使用终结点方式路由,推荐微软内置 JSON 处理库,可回退至第三方 Json.NET 处理库,可配置为不带终结点 MVC 路由,使用 HostBuilder 替换 WebHostBuilder 类。
介绍 ASP.NET Core 3.0 和 3.1 中的新增功能与更改,使用 Blazor 开发基于 WebAssembly 客户端应用,关于 Blazor 的客户端与服务端寄宿方式,新增 gRPC 远程过程调用支持,可替代 WCF 技术,改进 SignalR 实时通信框架,支持断开重连事件,内置全新的 JSON 序列化库,全新的泛型主机,支持 HTTP 2.0 协议,使用终结点路由,改进IIS错误报告,优化并提升性能。
TypeScript 是 JavaScript 类型的超集,在 ASP.NET Core 中使用 TypeScript 提高编写脚本的效率,理解 TypeScript 的特点,使用 Visual Studio 将 TS 文件编译为符合 ECMAScript 标准的 JS 文件,通过几个示例认识 TypeScript 面向对象开发的高级功能,使用 TypeScript 配置文件设置编译器行为,了解 ECMAScript、JavaScript 和 TypeScript 之间的区别与联系。
使用 WebCompiler 工具将 SASS 和 LESS 编译为 CSS 文件,使用 BundlerMinifier 工具合并压缩 CSS 和 JS 文件,使用配置文件改变工具的默认行为,将构建工具与微软 MSBuild 深度集成,在 Visual Studio 生成阶段完成前端自动化、预编译、合并和压缩,在任务运行程序资源管理器中管理并跟踪任务,将任务绑定至不同的阶段,实现灵活便捷的前端自动化构建。
微软 LibMan 管理器是一个轻量型的客户端库获取工具,使用该工具可从文件系统或公共 CDN 下载并管理前端库,还可灵活选择要提的文件,并将其置于项目中的任意位置,最新 Visual Studio 已内置 LibMan 支持,支持添加、更新、卸载和还原前端库,也可与 MSBuild 深度集成,在项目的生成阶段自动还原前端库。
健康状况检查 BeatPulse 开源库学习,标准配置,跟踪器,访问认证,可视化 UI 框架,使用配置文件,了解 Prometheus 集群系统监控开源框架,在 Docker 容器中运行 UI 框架,配置 WebHook 回调钩子。在微软 ASP.NET Core 框架中集成 BeatPulse 健康状况服务实现,配置可视化界面查看监控状态。
开发自己的内存健康状况检查服务组件,内存健康状况检查服务设置选项,提供 IHealthChecksBuilder 扩展方法,运行状况检查通知发布器,实现 IHealthCheckPublisher 接口,了解 WebHook 回调钩子,发布器的启动延迟时间、执行间隔、条件筛选和超时时间设置,在依赖注入容器中注册发布器。
关于 Entity Framework Core DbContext 上下文状况探测,使用编码方式创建与删除数据库,实现 IHealthCheck 接口实现状况检查服务,使用 IHostedService 实现后台自动任务,在自动任务中变更健康检查服务的状态,了解 Kubernetes 中关于健康状况探测的配置。
运行状况检查选项设置,检查服务分组,使用 Tags 和 Lambda 表达式筛选检查服务,自定义 HTTP 状态代码映射,设置响应缓存,自定义接口内容输出,使用 BeatPulse 提供的开源库检查 SqlServer 数据库引擎的连接状态。
ASP.NET Core 提供的健康状况检查中间件和库,用于报告应用程序基础结构组件的运行状况,引用健康检查相关程序包,第三方实现 BeatPulse 开源库,实现 IHealthCheck 接口创建自定义的健康状态检查服务,在依赖注入容器中注册运行状况检查服务,运行状况检查中间件配置,监听地址与端口设置。
在 ASP.NET Core 应用中安全存储开发机密,使用命令行工具管理用户机密,启用机密存储,在 Visual Studio 中管理用户机密,在应用中读取机密配置文件,将机密配置信息映射到 POCO 实体对象,动态生成安全的数据库连接字符串。配置 Cookie 策略中间件, 监控 Cookie 变更通知事件,了解 GDPR 欧盟通用数据保护条例。
配置数据保护器,分别在 Azure 密钥保管库、分布式 Redis 缓存和 EF Core 中存储密钥,配置生成密钥的有效期,加密算法配置,计算机范围的策略配置,非依赖注入场景下的数据保护提供者,数据保护系统的扩展性,使用第三方开源库加密 ASP.NET Core 参数,学习微软数据保护示例代码。
学习 ASP.NET Core 中的数据保护方案,使用数据保护器加密与解密数据,保护器的层级结构,使用 PBKDF2 算法生成哈希密码,使用 PasswordHasher 密码哈希算法类,具有生命周期的数据保护器,使用找回丢失的数据, 短暂性数据保护器。
学习非对称加密算法,关于 RSA 算法的非对称加密与解密,推荐基于 .NET Core 平台的加密解密开源库,数字签名的基本原理,数字证书与证书颁发机构,关于 HTTPS 协议的基本原理,程序集签名,可用 MakeCert 工具创建数字证书,推荐《微软.NET程序的加密与解密》和《.NET安全揭秘》图书,微软安全系列算法体系结构图。
编码与解码,字符集与算法,关于 Unicode 字符集,理解 UTF-8 编码方式,使用 Base64 编码与解码,哈希散列摘要算法,理解 MD5 算法 和 SHA 系列算法,使用 SHA-1、SHA-224、SHA-256、SHA-384 和 SHA-512 哈希算法,学习并使用具有密钥的 HMAC 哈希算法,理解单密钥对称加密算法,学习 AES、RC2、DES、TripleDES 和 Rijndael 对称加密算法。
关于 ASP.NET Core 应用程序的安全性,客户端 IP 地址白名单访问限制,防止 URL 重定向攻击, 防止跨站脚本注入 XSS 攻击,学会使用 HTML 编码器、 JavaScript 编码器 和 URL 编码器,防止跨站点请求伪造 XSRF 或 CSRF 攻击,基于 Antiforgery 防伪标记的生成与验证配置。
理解 HTTP 协议、HTTPS 协议和 HSTS 协议,了解 SSL 与 SSL 协议,在 ASP.NET Core 中使用 RequireHttpsAttribute 将部分请求重定向到 HTTPS 请求,使用 HTTPS 重定向中间件将所有 HTTP 请求重定向到 HTTPS 请求,反向代理转接头与重定向注意事项,使用 HSTS 中间件向客户端浏览器发送基于严格传输安全性协议的 HSTS 标头,配置 HTTPS 端口与重定向状态码,关于 HSTS 预加载列表说明,配置 HSTS 中间件,证书配置。
跨域请求,跨域资源共享,理解 CORS 运行原理,简单请求与预检请求,浏览器同源策略,在 ASP.NET Core 中使用 CORS 中间件实现跨域请求,使用中间件实现跨域请求,在 MVC 中使用筛选器实现跨域请求,跨域策略详细配置,理解 JSONP 技术原理,在 ASP.NET Core 中实现 JSONP 跨域请求。
基于资源的授权方式,定义资源授权条件,实现资源授权处理程序,调用授权服务处理授权,基于角色与权限的动态授权,自定义授权筛选器,在视图中使用授权服务接口。
理解 ASP.NET Core MVC 中的授权扩展,基于认证方案的授权,授权应用程序模型提供者,授权过滤器,策略计算器,授权服务,授权策略提供者,授权处理程序上下文与工厂,授权处理程序提供者,授权计算器,理解授权策略的执行过程,编写自定义授权特性标记,实现自定义授权策略提供者,基于 Razor 页面的授权约定。
理解授权的过程与原理,在 ASP.NET Core 中使用授权组件,简单授权,基于角色的授权,基于声明的授权,基于策略的授权,授权策略与授权条件,授权机制的内部工作原理,自定义授权处理程序,多条件授权处理程序,使用 Func 委托实现授权策略,授权处理程序的返回结果约定。
理解 OAuth 2.0 与 OpenID Connect 协议的区别,在 ASP.NET Core 中使用 OAuth 处理程序进行身份认证,使用 OpenID Connect 处理程序进行身份认证,分析 OIDC 协议获取访问令牌和用户身份信息的详细流程。
理解 OpenID 认证协议,理解 OAuth 2.0 授权协议,通过不同的授权方式获取访问令牌,OpenID Connect 认证与授权协议,在 ASP.NET Core 中使用 OAuth 授权协议集成第三方登录方式,分析授权码模式获取访问令牌的业务流程。
参数化 JWT 访问令牌,基于 OSS 单点登录的开源身份验证提供程序,理解 SAML 安全断言标记语言,在 .NET Core 中生成并校验 SAML 格式的令牌,阿里云和腾讯云提供的免费联合身份认证,在 ASP.NET Core 中集成微软 WS-Federation 联合身份认证方式。
编写 JWT 令牌签发服务,在 ASP.NET Core 中使用 JwtBearer 身份认证方案验证令牌,在 APP 客户端 和 Web 客户端中申请 JWT 令牌,并使用 Bearer 认证方式,通过 JWT 令牌访问受保护数据,对称和非对称算法签名技术,生成 RSA 公钥和私钥,使用私钥签发令牌,通过公钥验证令牌,基于角色声明的授权。
基于 HTTP 协议的身份认证规范, Digest 摘要身份认证,Windows 身份认证,Kerberos 和 NTLM 协议,Bearer 身份认证,在 IIS 中配置身份认证方案,在应用程序中提供访问凭证,基于 JWT 规范的访问令牌,在 .NET Core 中生成并校验 JWT 格式的令牌。
基于 Cookie 的身份认证原理回顾,理解 HTTP 协议栈提供的通用认证框架,学习 HTTP 基本身份认证,根据微软设计规范,编写自己的认证框架,在 ASP.NET Core 中实现 HTTP 基本身份认证方案,默认常量,参数选项,身份认证处理器,提供与微软一致的扩展方法,编写可扩展的认证事件,在其它应用中使用自己开发的认证方案。
理解 ASP.NET Core 身份认证系统的核心原理,分析微软身份认证系统的源代码。使用 IdentityManager 管理 Identity 数据结构,编写自己的后台管理界面,手机号绑定与验证,2AF双重身份认证,基于 TOTP 算法的时间一次性密码,二维码生成方案。
基于 Cookie 认证的参数配置,使用 Cookie 策略中间件,订阅 Cookie 的添加与移除事件,票据的过期与缓存。ASP.NET Core 身份认证的工作原理,通过 HttpContext 的扩展方法进行登录、验证、退出、质询和拒绝,认证服务接口,认证方式提供者,认证处理程序提供者,自定义认证处理程序,并通过依赖注入扩展身份认证方案。
理解基于声明的身份认证与授权,理解身份认证中的 Claims、ClaimsIdentity 和 ClaimsPrincipal 模型,生成 TOKEN 令牌,使用中间件验证令牌,用 Cookie 方案实现登录和注销功能,在 MVC 中使用基于角色的授权方式。
短信与邮件发送器配置,理解基于 ASP.NET Core MVC 控制器的 Identity 框架,双重 2AF 身份认证,理解认证与授权流程,深入 Identity 框架配置,更改声明类型,账号锁定机制,密码安全性,登录策略,TOKEN 校验,用户名安全性和 Cookie 相关配置,基于 OAuth 2.0 协议的第三方身份验证提供程序,集成腾讯 QQ 和 微信身份认证。
认证与授权的区别,基于声明的身份认证,在 ASP.NET Core 中使用内置的 Identity 框架,使用基架快速创建身份认证系统,自定义表结构与实体关系,理解 Identity 的体系结构,扩展数据访问层,自定义身份认证系统界面。
理解HTTP缓存规范,在 ASP.NET Core 中配置响应缓存,设置缓存策略,在中间件中缓存响应,缓存部分页面,基于内存和分布式缓存的标记帮助程序,静态文件缓存配置,了解 CDN 缓存的优势。响应内容压缩中间件,配置 Gizp 和 Brotli 压缩算法,编写自定义压缩算法提供者,基于反向代理的压缩配置。
缓存的概念与优点,基于内存缓存的配置,缓存项设置与获取、过期事件订阅、绝对过期、滑动过期和缓存依赖项,分布式缓存的配置方法,扩展分布式缓存接口,基于 Redis 的分布式缓存实现,安装 Redis 服务,配置端口和密码,基于 SQL Server 的分布式缓存实现,基于内存的分布式缓存实现,了解缓存雪崩与缓存穿透。
理解反向代理转接头,关于 X-Forwarded-For、X-Forwarded-Proto 和 X-Forwarded-Host 转接头,设置可信任的代理服务器地址,负载均衡及其配置。项目生成与发布流程,排除发布文件,包含发布文件,在发布前后运行自动任务,了解持续集成与交付,如何实施 DevOps 模型。使用全新的 LibMan 客户端库管理器。
容器技术简介,学习 Docker 体系结构,开发环境搭建,入门教程推荐,创建 ASP.NET Core 应用,使用 Visual Studio 自动生成映像,通过镜映像启动容器,私有仓库与公有仓库,将映像发布到远程仓库,编写 Docker Compose 文件,使用 Docker 编排工具在 Linux 平台上快速构建基于 SQL Server on Linux 的容器和 Web 容器, 了解 Swarm 集群、使用 Kubernetes 管理集群,认识微服务。
使用 Putty 通过 SSH 公钥连接 Linux 服务器,在 CentOS 上安装 .NET Core 运行时,搭建 FTP 服务器,发布文件到服务器,安装 Apache 服务,配置服务器,转发请求代理与负载均衡配置,绑定域名,配置 SSL 证书,创建后台监控服务,配置防火墙。
使用 Putty 远程管理 Linux 服务器,在 Ubuntu 上安装 .NET Core 运行时,通过 PSCP 上传文件到服务器,安装 Nginx 服务,配置反向代理,绑定域名,配置 SSL 证书,创建后台监控服务,安装 FTP 服务,通过 FTP 方式发布应用,编写脚本,实现一键自动化发布。
在 Windows 平台上发布 ASP.NET Core 应用,托管与部署的步骤,独立部署和框架依赖方式,安装 IIS 服务器,在服务器上安装 .NET Core 运行时,配置网站,理解发布选项,配置文件系统部署,配置 Web Deploy 方式部署,配置 FTP 方式部署,一键将应用发布到微软云应用服务或虚拟机,免费获取 SSL 证书,配置 HTTPS 协议支持,在 Windows 服务中托管应用。
性能测试,负载测试,基于代码的 UI 测试,关于 Windows 和 Linux 平台上的调试器与内存转储工具,抓取服务器内存转储文件,使用 WinDbg 在本地调试程序,理解 CLR 对象的内存形态,通过转储文件分析服务器内存和 CPU 的使用情况,介绍性能计数器和性能探测器。
在 ASP.NET Core 中测试控制器逻辑,为控制器编写单元测试,单元测试中的 Fake、Stub 和 Mock 术语,使用 Moq 框架进行单元测试,轻量级集成测试,了解 Selenium、Html Agility Pack 和 AngleSharp 框架,远程调试服务器程序,源码跟踪调试配置。
认识单元测试,单元测试的最佳做法,使用 xUnit 进行单元测试,使用 MSTest 进行单元测试,使用 NUnit 进行单元测试,三种测试框架的最佳实践,单元测试管理器,使用 Live Unit Testing 实时显示测试结果,查看代码测试覆盖率。
使用 ASP.NET Core 构建 Web API 接口,控制器约定,操作返回类型,返回特定类型,同步操作,异步操作,使用 EF Core 访问 MySQL 数据库,为 Web API 提供数据,使用基于 Swagger 规范的 Swashbuckle 框架生成 Web API 帮助文档,特定格式的操作结果,内容协商机制,配置格式化器,基于 URL 格式化参数, 自定义格式化程序。
筛选器作用域与执行顺序,重写默认顺序,取消与短路筛选器,筛选器中的依赖注入,授权筛选器,资源筛选器,操作筛选器,异常筛选器,结果筛选器,在筛选器管道中使用中间件。应用程序部件,程序集加载过程,自定义功能提供程序,显示可用功能。
ASP.NET Core 中的文件上传,使用模型绑定上传小文件,使用流式处理上传大文件,控制器中的依赖注入,构造函数注入,基于 FromServices 的注入方式,配置设置注入。应用程序模型,提供程序,自定义约定。筛选器的工作原理,同步筛选器与异步筛选器,IFilterFactory 筛选器工厂和内置筛选器特性。
MVC中的控制器,关于 Action 操作定义,返回响应,传统路由,多个路由,属性路由,路由名称,合并路由,对属性路由排序,路由模板,自定义路由属性,URL生成,区域分区,自定义路由约束。
视图布局、指定布局模板、导入共享指令、标记帮助程序、自定义标记帮助程序、部分视图、部分视图的申明、引用和数据传递、视图组件复用原理和自定义视图组件。
使用 FluentValidation 进行模型验证,扩展验证框架,支持本地化错误消息提示。ASP.NET Core MVC 中的视图语法与指令,控制器指定视图,向视图传递数据,学习 Razor 语法,视图预编译设置。
模型验证简介,验证属性,验证错误消息的多语言支持,通过 ModelState.IsValid 检查模型验证结果,使用 TryValidateModel 手动验证,实现 IValidatableObject 接口自定义验证规则,继承 ValidationAttribute 实现自定义验证属性,深入客户端验证,实现 IClientModelValidator 接口向客户端提供验证元数据信息,向动态表单添加验证适配器,远程验证,使用第三方库让模型验证体验更好。
模型绑定的工作原理,基本类型和复杂类型绑定,IFormFile文件上传,[BindRequired]、[BindNever]、[FromHeader]、[FromQuery]、[FromRoute]、[FromForm]、[FromServices]、[FromBody] 和 [ModelBinder] 特性的作用,通过特性自定义模型绑定行为,自定义模型绑定,实现 IModelBinder 与 IModelBinderProvider 接口,绑定请求正文中的带格式的数据。
在 SignalR 中使用 JSON 协议和 MessagePack 协议,流式数据处理与推送,演示将超大文件通过数据流的方式推送至客户端,身份验证和授权,编写一个基于 Cookie 认证的 SignalR 服务端。
Razor 页面布局、部分视图、模板和标记帮助程序,页面跳转,自定义路由,自定义页面存放目录,页面 Filter 过滤器,基于 .NET 标准类库与 .NET Core 类库区别,基于 Razor 页面的类库,通过 IFormFile 上传文件。
理解 Razor 页面引擎,在 ASP.NET Core 中使用 Razor 页面模型,关于 @page 指令的作用,引入 PageModel 页面模型,页面目录结构,通过一个简单的增删改查示例学习 Razor 页面模型。
深入讲解 SignalR 中的 Hub 集线器,连接、用户和分组,连接与断开事件,分别向指定连接、用户和分组推送消息,在 MVC 控制器中通过 IHubContext 接口注入 Hub 集线器,在中间件中使用 Hub 集线器,使用 IUserIdProvider 接口自定义用户编号提供者,配置 CORS 跨域策略,基于 SignalR 推送技术的 JavaScript 客户端和 .NET 客户端。
HttpClient 客户端的基本用法,命名客户端,类型化客户端,在 ASP.NET Core 中集成 Refit 框架,通过 DelegatingHandler 实现处理程序中间件,集成 Polly 框架,提供全面恢复和临时故障处理方案。
实时通信方案介绍,短轮询,长轮询,服务器发送事件(Server-Sent Events) 和 WebSocket 通信方案,在 ASP.NET Core 中使用 WebSocket 技术,实时通信 SignalR 技术解决方案,集线器,使用 SignalR 技术实现一个简单的群发聊天室。
自定义语言文化提供者,使用路由数据提供语言文化,定义过滤器中间件,资源文件的命名与组织结构,区域性回退行为,通过特性依赖注入服务,Portable Object 可移植对象本地化,理解 PO 文件格式,使用 PO 文件编辑器,通过 PO 组件实现 PO 文件的本地化与多语言。
理解全球化与本地化,将内容本地化,使用工厂创建共享资源文件,视图本地化,模型验证本地化,资源文件与本地化的具体配置,本地化依赖注入,关于微软内置的语言文化提供者的具体使用方法,通过写 Cookie 的方式设置语言文化。
HTTP 是无状态的协议,深入理解 Cookie 存储机制,深入 Session 状态维护,分布式缓存 Session 状态,使用 JSON 和 Protobuf 扩展 Session 序列化方案,使用 TempData 传递数据,使用查询字符串和隐藏域传数据,使用 HttpContext.Items 在中间件之间通信,使用缓存存储和检索数据,使用依赖注入存储对象。
ASP.NET Core 中的两种服务器实现,基于 Kestrel 和 HTTP.sys 的服务器配置,WEB主机和通用主机的区别,分别使用 WebHostBuilder 和 HostBuilder 构建服务主机,服务器的基本配置。
理解 CSS 预编译,了解 LESS 和 SASS 技术,在 Visual Studio 中使用 LESS 和 SASS,使用 Gulp 编写自动化预编译任务。认识文件系统,讲解 IFileProvider 文件提供程序,使用 IFileInfo 和 IDirectoryContents 访问文件目录内容,使用字节流读取文件,使用 PhysicalFileProvider、EmbeddedFileProvider 和 CompositeFileProvider 构建文件访问程序,文件路径统配模式。
编写 Grunt 自动化任务,包管理方案,使用 Bower 管理前端包,使用 Bootstrap 构建响应式站点,针对静态文件的捆绑和缩小,使用 BrowserLink 浏览器链接,在 .NET 中调用 Node.js 模块。
在 ASP.NET Core 中使用日志框架,使用 LoggerMessage 类提高日志记录性能,处理错误异常,开发人员异常页,配置自定义异常处理页,配置状态代码页,Node.js框架简介,在 Visual Studio 中安装 Node 模块,使用 Gulp 前端构建工具,合并与压缩文件,编写前端自动化任务,使用任务运行资源管理器管理并设置任务。
将日志记录输出,使用微软内置的日志提供程序,添加日志提供程序,日志类别,日志级别,事件编号,消息模板,记录异常,日志筛选器,日志作用域,日志配置文件,使用第三方提供程序 NLog 记录日志,日志配置与智能提示,日志分卷。
基于选项的配置,通过委托配置简单选项,自选项配置,在控制器和视图中注入选项,基于名称的选项配置,创建 Entity Framework 扩展配置提供程序,将配置存储到数据库中。
系统环境变量,关于开发、测试和生产环境的配置,启动类和配置方法的约定。默认配置文件注入与读取,自定义 JSON 和 XML 配置文件,指定环境配置文件,添加内存字典配置,读取配置值与配置节的技巧。
使用 URL 重写中间件,理解重定向与重写,永久重定向与临时重定向,简单重定向与重写设置,通过配置文件加载 ApacheModRewrite 规则,加载 IISUrlRewrite 规则,自定义规则配置。
使用路由中间件,路由模板配置规则,路由约束配置,路由默认值设置,路由正则表达式,通过路由生成URL链接,通过 RouteHandler 处理默认路由,使用 RouteBuilder 生成路由表。
静态文件访问,文件服务器,文件缓存,使用 PhysicalFile 设置文件权限, 启用目录浏览,默认文档设置。路由系统介绍,路由中间件与 MVC 中间件配置,默认路由规则映射方式。
ASP.NET Core 中间件概述,使用 Run、Map 和 Use 方法配置请求管道,理解并设计自己的中间件,基于约定的中间件和基于工厂的中间件,中间件中的依赖注入与配置选项。
ASP.NET Core 应用程序启动流程,中间件的作用与实现,配置服务与管道,通过 Startup 类 和 IStartupFilter 配置请求处理管道,依赖注入与生命周期。
创建一个 ASP.NET Core WebAPI 项目,在 WebAPI 项目中使用 Entity Framework Core 进行数据访问,依赖注入 DbContext 数据上下文,连接字符串配置,数据库迁移与回滚,通过 Swashbuckle 生成 WebAPI 帮助文档。
介绍 ASP.NET Core 技术,为何使用 ASP.NET Core 技术,通过命令行创建一个简单的应用程序, 研究Page模型和MVC模型, 基于Razor的视图引擎学习,LocalDB轻量级数据库介绍,演示基于ASP.NET Core的简单应用。
介绍微软.NET框架技术的演变,.NET Core 2.0 的技术架构,新增内容和改进,包、元包和框架,命令行工具的使用,在Visual Studio 2017 创建并生成完整的.NET Core解决方案。
介绍零度微框架中存在的问题,解决方法,基于.NET Core 创建微框架解决方案,创建项目,并介绍微框架中的每个项目用途,VS中的多线程调试方法,.NET Core中的单元测试和VS中的 Live Unit Testing 功能。
跨平台 .NET Core 程序介绍,Linux简介与入门,配置.NET Core环境,在Centos中生成 .NET Core 应用程序,打包程序集,绑定域名,上传与下载,配置Nugix反向代理,如何在Centos中部署 ASP.NET Core 网站应用程序。