目录
【章名目录】
第 *章 .NET Core入门 *
第 2章 .NET Core重难点知识 *4
第3章 .NET Core核心基础组件 53
第4章 Entity Framework Core基础 75
第5章 EF Core*级技术 **6
第6章 ASP.NET Core Web API基础 *55
第7章 ASP.NET Core基础组件 *83
第8章 ASP.NET Core*级组件 243
第9章 DDD实战 298
第 *0章 项目案例:英语学习网站 359
【详细目录】
第 *章 .NET Core入门 *
*.* .NET Core概述 *
*.*.* .NET平台的昨天 *
*.*.2 为什么要跨平台 2
*.*.3 .NET Core 是.NET Framework的*级版吗 2
*.*.4 .NET Framework中哪些技术*被支持 4
*.*.5 .NET Standard是什么 6
*.*.6 项目应该使用.NET Core开发吗 *0
*.2 .NET Core 开发环境的搭建 *0
*.2.* 用什么开发工具开发.NET Core **
*.2.2 .NET Core项目结构的*新 **
*.3 本章小结 *3
第 2章 .NET Core重难点知识 *4
2.* C#的新语法 *4
2.*.* *级语句 *4
2.*.2 *局using指令 *5
2.*.3 using声明 *6
2.*.4 文件范围的命名空间声明 *7
2.*.5 可为空的引用类型 *8
2.*.6 记录类型 20
2.2 异步编程 23
2.2.* 为什么要用异步编程 24
2.2.2 轻松上手await、async 25
2.2.3 如何编写异步方法 27
2.2.4 async、await原理揭秘 28
2.2.5 async背后的线程切换 33
2.2.6 异步方法*等于多线程 34
2.2.7 为什么有的异步方法没有async 36
2.2.8 异步编程的几个重要问题 39
2.3 LINQ 40
2.3.* Lambda表达式 4*
2.3.2 常用集合类的扩展方法 43
2.3.3 LINQ的另*种写法 5*
2.4 本章小结 52
第3章 .NET Core核心基础组件 53
3.* 依赖注入 53
3.*.* 什么是控制反转、服务定位器和依赖注入 53
3.*.2 .NET Core依赖注入的基本使用 55
3.*.3 依赖注入魅力所在 57
3.2 配置系统 60
3.2.* 配置系统的基本使用 60
3.2.2 使用选项方式读取配置 6*
3.2.3 从命令行读取配置 65
3.2.4 从环境变量读取配置 66
3.2.5 其他配置提供程序 66
3.2.6 案例:开发自己的配置提供程序 67
3.2.7 多配置源问题 69
3.3 日志 70
3.3.* .NET Core日志基本使用 7*
3.3.2 文件日志提供程序NLog 72
3.3.3 集中式日志 73
3.4 本章小结 74
第4章 Entity Framework Core基础 75
4.* EF Core概述 75
4.*.* 什么是ORM 75
4.*.2 EF Core性能怎么样 76
4.2 EF Core入门 76
4.2.* 该选择什么数据库 76
4.2.2 EF Core环境搭建 77
4.2.3 插入数据 8*
4.2.4 查询数据 82
4.2.5 修改和删除数据 83
4.3 EF Core的实体类配置 84
4.3.* 约定大于配置 84
4.3.2 Data Annotation 85
4.3.3 Fluent API 85
4.3.4 Fluent API基本配置 86
4.3.5 Fluent API究*流畅在哪里 88
4.3.6 主键类型的选择并*简单 89
4.4 数据库迁移 92
4.4.* 数据库迁移原理 92
4.4.2 其他数据库迁移命令 95
4.4.3 反向工程(慎用) 95
4.5 查看EF Core生成的SQL语句 96
4.5.* 使用简单日志查看SQL语句 96
4.5.2 探秘EF Core生成SQL语句的*同 97
4.6 关系配置 *00
4.6.* *对多 *00
4.6.2 关联数据的获取 *03
4.6.3 实体类对象的关联追踪 *04
4.6.4 关系的外键属性的设置 *05
4.6.5 单向导航属性 *06
4.6.6 关系配置在哪个实体类中 *08
4.6.7 *对* *09
4.6.8 多对多 ***
4.6.9 基于关系的复杂查询 **4
4.7 本章小结 **5
第5章 EF Core*级技术 **6
5.* EF Core原理揭秘 **6
5.*.* EF Core有哪些做*到的事情 **6
5.*.2 既生IEnumerable,何生IQueryable **7
5.*.3 IQueryable的延迟执行 **9
5.*.4 IQueryable的复用 *22
5.*.5 EF Core分页查询 *22
5.*.6 IQueryable的底层运行 *24
5.*.7 EF Core中的异步方法 *26
5.*.8 如何执行原生SQL语句 *27
5.*.9 怎么知道实体类变化了 *29
5.2 EF Core的性能*化利器 *3*
5.2.* EF Core*化之AsNoTracking *3*
5.2.2 实体类状态跟踪的妙用 *32
5.2.3 Find和FindAsync方法 *34
5.2.4 EF Core中*效地删除、更新数据 *34
5.2.5 *局查询筛选器 *35
5.2.6 悲观并发控制 *36
5.2.7 乐观并发控制 *38
5.3 表达式树 *42
5.3.* 什么是表达式树 *42
5.3.2 Expression和Func的区别 *42
5.3.3 可视化查看表达式树 *43
5.3.4 通过代码查看表达式树 *45
5.3.5 通过代码动态构建表达式树 *46
5.3.6 让动态构建表达式树更简单 *48
5.3.7 让构建“动态”起来 *49
5.3.8 *用Emit实现Select的动态化 *52
5.3.9 避*动态构建表达式树 *53
5.4 本章小结 *54
第6章 ASP.NET Core Web API基础 *55
6.* ASP.NET Core MVC项目 *55
6.*.* ASP.NET Core MVC项目的搭建 *55
6.*.2 编写第 *个MVC程序 *57
6.*.3 .NET Core的新工具:热重载 *58
6.2 使用ASP.NET Core开发Web API *59
6.2.* Web API项目的搭建 *59
6.2.2 Post、Put等操作方法 *6*
6.3 Restful:想说爱你*容易 *63
6.3.* 什么是Restful *63
6.3.2 Restful的*缺点 *65
6.3.3 Restful中如何传递参数 *67
6.3.4 返回错误码:200派与4xx派的“对决” *67
6.3.5 Restful实现指南 *70
6.4 ASP.NET Core Web API各种技术及选择 *7*
6.4.* 控制器父类用哪个 *7*
6.4.2 操作方法的异步、返回值、状态码 *7*
6.4.3 操作方法的参数从哪里来 *73
6.5 ASP.NET Core Web API案例 *76
6.5.* 开发Web API *76
6.5.2 什么是前后端分离 *77
6.5.3 搭建前端开发环境 *78
6.5.4 如何实现前后端分离开发 *79
6.6 本章小结 *82
第7章 ASP.NET Core基础组件 *83
7.* ASP.NET Core中的依赖注入 *83
7.*.* 对象注入的代码写到哪里 *83
7.*.2 低使用频率服务的另类注入方式 *85
7.*.3 案例:开发模块化的服务注册框架 *85
7.2 配置系统与ASP.NET Core的集成 *88
7.2.* 默认添加的配置提供者 *88
7.2.2 ASP.NET Core的多环境设置 *88
7.2.3 用“用户机密”来避*机密信息的泄露 *90
7.2.4 案例:配置系统综合 *9*
7.3 EF Core与ASP.NET Core的集成 *93
7.3.* 分层项目中EF Core的用法 *93
7.3.2 使用“上下文池”时要谨慎 *97
7.3.3 案例:批量注册上下文 *97
7.4 性能*化“万金油”:缓存 *98
7.4.* 什么是缓存 *98
7.4.2 客户端响应缓存 200
7.4.3 服务器端响应缓存 202
7.4.4 内存缓存 204
7.4.5 缓存穿透问题的规避 2**
7.4.6 缓存雪崩问题的规避 2*2
7.4.7 缓存数据混乱的规避 2*3
7.4.8 案例:封装内存缓存操作的帮助类 2*3
7.4.9 分布式缓存 2*5
7.4.*0 案例:封装分布式缓存操作 的帮助类 2*9
7.4.** 缓存方式的选择 22*
7.5 筛选器 22*
7.5.* 异常筛选器 222
7.5.2 操作筛选器基础 224
7.5.3 案例:自动启用事务的操作筛选器 226
7.5.4 案例:开发请求限流器 228
7.6 中间件 229
7.6.* 什么是中间件 229
7.6.2 中间件的3个概念 230
7.6.3 简单演示中间件 23*
7.6.4 案例:自己动手模仿Web API框架 235
7.6.5 调整内置中间件的顺序,结果大*同 237
7.6.6 案例:Markdown转换器中间件 238
7.6.7 筛选器与中间件的区别 24*
7.7 本章小结 242
第8章 ASP.NET Core*级组件 243
8.* Authentication与Authorization 243
8.*.* 标识框架 244
8.*.2 实现密码的重置 250
8.*.3 代替Session(会话)的JWT 25*
8.*.4 JWT的基本使用 253
8.*.5 ASP.NET Core对于JWT的封装 257
8.*.6 [Authorize]的注意事项 259
8.*.7 让Swagger中调试带验证的请求更简单 260
8.*.8 解决JWT*法提前撤回的难题 26*
8.*.9 总结 265
8.2 利用托管服务执行后台代码 265
8.2.* 托管服务的基本使用 265
8.2.2 托管服务中使用依赖注入的陷阱 267
8.2.3 案例:数据的定时导出 267
8.3 请求数据的校验 269
8.3.* .NET Core内置数据校验的*足 269
8.3.2 FluentValidation的基本使用 270
8.3.3 FluentValidation中注入服务 27*
8.4 SignalR服务器端消息推送 272
8.4.* SignalR基本使用 273
8.4.2 协议协商 276
8.4.3 SignalR分布式*署 279
8.4.4 SignalR身份认证 280
8.4.5 针对*分客户端的消息推送 283
8.4.6 在外*向集线器推送消息 286
8.4.7 案例:导入英汉词典到数据库并显示进度 288
8.4.8 SignalR实践指南 29*
8.5 ASP.NET Core系统的*署 29*
8.5.* ASP.NET Core网站的发布 292
8.5.2 网站*署需要注意的几个问题 293
8.5.3 如何构建*个*的系统 296
8.6 本章小结 297
第9章 DDD实战 298
9.* 架构设计的术与道 298
9.*.* 架构设计之怪现状 298
9.*.2 架构是进化而来的 299
9.2 DDD的基本概念 300
9.2.* 什么是微服务 300
9.2.2 微服务架构的误区 30*
9.2.3 DDD为什么难学 302
9.2.4 *域与*域模型 304
9.2.5 通用语言与界限上下文 305
9.2.6 实体类与值对象 306
9.2.7 聚合与聚合根 307
9.2.8 *域服务与应用服务 308
9.2.9 *域事件与集成事件 308
9.3 DDD的技术落地 3**
9.3.* 贫血模型与充血模型 3**
9.3.2 EF Core对实体类属性操作的秘密 3*5
9.3.3 EF Core中实现充血模型 3*7
9.3.4 EF Core中实现值对象 32*
9.3.5 案例:构建表达式树,简化值对象的比较 325
9.3.6 **要面向数据库建模 326
9.3.7 聚合在.NET中的实现 326
9.3.8 用MediatR实现*域事件 327
9.3.9 EF Core中发布*域事件的合适时机 329
9.3.*0 RabbitMQ的基本使用 335
9.3.** 案例:简化集成事件的框架 338
9.3.*2 案例:Zack.EventBus源代码 讲解 342
9.3.*3 整洁架构(洋葱架构) 343
9.4 DDD案例实战:用户管理及登录 344
9.4.* 实现整洁架构项目分层 344
9.4.2 *域模型的实现 346
9.4.3 *域服务的实现 349
9.4.4 基础设施的实现 352
9.4.5 工作单元的实现 354
9.4.6 应用服务层的实现 356
9.5 本章小结 358
第 *0章 项目案例:英语学习网站 359
*0.* 需求说明及项目演示 359
*0.*.* 网站需求说明 359
*0.*.2 网站结构说明 360
*0.*.3 项目结构说明 36*
*0.*.4 项目运行环境搭建 362
*0.*.5 主要功能演示 364
*0.2 文件服务的开发 367
*0.2.* 开发文件服务的*域层 367
*0.2.2 开发文件服务的基础 设施层 369
*0.3 认证服务的开发 37*
*0.3.* 开发认证服务的*域层 37*
*0.3.2 开发认证服务的基础 设施层 373
*0.3.3 开发认证服务的应用服务层 373
*0.4 英语听力服务的开发 375
*0.4.* 开发英语听力服务的*域层 375
*0.4.2 开发英语听力服务的后台 应用服务层 38*
*0.4.3 开发英语听力服务的前台 应用服务层 385
*0.5 转码服务的开发 387
*0.5.* 开发转码服务的*域层 387
*0.5.2 开发转码服务的基础设施层 389
*0.5.3 开发转码服务的应用服务层 390
*0.6 搜索服务的实现 392
*0.7 性能*化的原则 394
*0.8 项目总结 395
*0.9 本章小结 396
作者介绍
杨中科: .NET方向微软MVP,拥有约30万粉丝以及近*8年的IT行业软件开发工作经验,擅长软件架构设计与底层框架研究,具有应用.NET、Java、Python、C等的丰富经验,编写的技术文章和录制的视频教程深入浅出、通俗易懂、备受好评;同时,出版了多**秀的软件开发技术图书。