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