4.7 用户推荐指数
科技
类型
9.0
豆瓣评分
可以朗读
语音朗读
444千字
字数
2022-07-01
发行日期
展开全部
主编推荐语
本书讲解.NET平台下的异步编程、LINQ、依赖注入、配置系统、日志等相关技术的原理与应用。
内容简介
本书结合作者的实践经验介绍REST、前后端分离等编程理念在ASP.NET Core中的实现,同时讲解使用ASP.NET Core进行Web API开发。此外,还介绍领域驱动设计(DDD)的理念,并且通过来自项目开发一线的案例讲解DDD理念在项目中的技术落地方案。
本书通过真实的英语学习网站的项目案例讲解ASP.NET Core技术在项目中的应用。
目录
- 版权信息
- 内容提要
- 推荐序一
- 推荐序二
- 推荐序三
- 自序
- 前言
- 第1章 .NET Core入门
- 1.1 .NET Core概述
- 1.1.1 .NET平台的昨天
- 1.1.2 为什么要跨平台
- 1.1.3 .NET Core是.NET Framework的升级版吗
- 1.1.4 .NET Framework中哪些技术不被支持
- 1.1.5 .NET Standard是什么
- 1.1.6 项目应该使用.NET Core开发吗
- 1.2 .NET Core开发环境的搭建
- 1.2.1 用什么开发工具开发.NET Core
- 1.2.2 .NET Core项目结构的创新
- 1.3 本章小结
- 第2章 .NET Core重难点知识
- 2.1 C#的新语法
- 2.1.1 顶级语句
- 2.1.2 全局using指令
- 2.1.3 using声明
- 2.1.4 文件范围的命名空间声明
- 2.1.5 可为空的引用类型
- 2.1.6 记录类型
- 2.2 异步编程
- 2.2.1 为什么要用异步编程
- 2.2.2 轻松上手await、async
- 2.2.3 如何编写异步方法
- 2.2.4 async、await原理揭秘
- 2.2.5 async背后的线程切换
- 2.2.6 异步方法不等于多线程
- 2.2.7 为什么有的异步方法没有async
- 2.2.8 异步编程的几个重要问题
- 2.3 LINQ
- 2.3.1 Lambda表达式
- 2.3.2 常用集合类的扩展方法
- 2.3.3 LINQ的另一种写法
- 2.4 本章小结
- 第3章 .NET Core核心基础组件
- 3.1 依赖注入
- 3.1.1 什么是控制反转、服务定位器和依赖注入
- 3.1.2 .NET Core依赖注入的基本使用
- 3.1.3 依赖注入的魅力所在
- 3.2 配置系统
- 3.2.1 配置系统的基本使用
- 3.2.2 使用选项方式读取配置
- 3.2.3 从命令行读取配置
- 3.2.4 从环境变量读取配置
- 3.2.5 其他配置提供程序
- 3.2.6 案例:开发自己的配置提供程序
- 3.2.7 多配置源问题
- 3.3 日志
- 3.3.1 .NET Core日志基本使用
- 3.3.2 文件日志提供程序NLog
- 3.3.3 集中式日志
- 3.4 本章小结
- 第4章 Entity Framework Core基础
- 4.1 EF Core概述
- 4.1.1 什么是ORM
- 4.1.2 EF Core性能怎么样
- 4.2 EF Core入门
- 4.2.1 该选择什么数据库
- 4.2.2 EF Core环境搭建
- 4.2.3 插入数据
- 4.2.4 查询数据
- 4.2.5 修改和删除数据
- 4.3 EF Core的实体类配置
- 4.3.1 约定大于配置
- 4.3.2 Data Annotation
- 4.3.3 Fluent API
- 4.3.4 Fluent API基本配置
- 4.3.5 Fluent API究竟流畅在哪里
- 4.3.6 主键类型的选择并不简单
- 4.4 数据库迁移
- 4.4.1 数据库迁移原理
- 4.4.2 其他数据库迁移命令
- 4.4.3 反向工程(慎用)
- 4.5 查看EF Core生成的SQL语句
- 4.5.1 使用简单日志查看SQL语句
- 4.5.2 探秘EF Core生成SQL语句的不同
- 4.6 关系配置
- 4.6.1 一对多
- 4.6.2 关联数据的获取
- 4.6.3 实体类对象的关联追踪
- 4.6.4 关系的外键属性的设置
- 4.6.5 单向导航属性
- 4.6.6 关系配置在哪个实体类中
- 4.6.7 一对一
- 4.6.8 多对多
- 4.6.9 基于关系的复杂查询
- 4.7 本章小结
- 第5章 EF Core高级技术
- 5.1 EF Core原理揭秘
- 5.1.1 EF Core有哪些做不到的事情
- 5.1.2 既生IEnumerable,何生IQueryable
- 5.1.3 IQueryable的延迟执行
- 5.1.4 IQueryable的复用
- 5.1.5 EF Core分页查询
- 5.1.6 IQueryable的底层运行
- 5.1.7 EF Core中的异步方法
- 5.1.8 如何执行原生SQL语句
- 5.1.9 怎么知道实体类变化了
- 5.2 EF Core的性能优化利器
- 5.2.1 EF Core优化之AsNoTracking
- 5.2.2 实体类状态跟踪的妙用
- 5.2.3 Find和FindAsync方法
- 5.2.4 EF Core中高效地删除、更新数据
- 5.2.5 全局查询筛选器
- 5.2.6 悲观并发控制
- 5.2.7 乐观并发控制
- 5.3 表达式树
- 5.3.1 什么是表达式树
- 5.3.2 Expression和Func的区别
- 5.3.3 可视化查看表达式树
- 5.3.4 通过代码查看表达式树
- 5.3.5 通过代码动态构建表达式树
- 5.3.6 让动态构建表达式树更简单
- 5.3.7 让构建“动态”起来
- 5.3.8 不用Emit实现Select的动态化
- 5.3.9 避免动态构建表达式树
- 5.4 本章小结
- 第6章 ASP.NET Core Web API基础
- 6.1 ASP.NET Core MVC项目
- 6.1.1 ASP.NET Core MVC项目的搭建
- 6.1.2 编写第一个MVC程序
- 6.1.3 .NET Core的新工具:热重载
- 6.2 使用ASP.NET Core开发Web API
- 6.2.1 Web API项目的搭建
- 6.2.2 Post、Put等操作方法
- 6.3 Restful:想说爱你不容易
- 6.3.1 什么是Restful
- 6.3.2 Restful的优缺点
- 6.3.3 Restful中如何传递参数
- 6.3.4 返回错误码:200派与4xx派的“对决”
- 6.3.5 Restful实现指南
- 6.4 ASP.NET Core Web API各种技术及选择
- 6.4.1 控制器父类用哪个
- 6.4.2 操作方法的异步、返回值、状态码
- 6.4.3 操作方法的参数从哪里来
- 6.5 ASP.NET Core Web API案例
- 6.5.1 开发Web API
- 6.5.2 什么是前后端分离
- 6.5.3 搭建前端开发环境
- 6.5.4 如何实现前后端分离开发
- 6.6 本章小结
- 第7章 ASP.NET Core基础组件
- 7.1 ASP.NET Core中的依赖注入
- 7.1.1 对象注入的代码写到哪里
- 7.1.2 低使用频率服务的另类注入方式
- 7.1.3 案例:开发模块化的服务注册框架
- 7.2 配置系统与ASP.NET Core的集成
- 7.2.1 默认添加的配置提供者
- 7.2.2 ASP.NET Core的多环境设置
- 7.2.3 用“用户机密”来避免机密信息的泄露
- 7.2.4 案例:配置系统综合
- 7.3 EF Core与ASP.NET Core的集成
- 7.3.1 分层项目中EF Core的用法
- 7.3.2 使用“上下文池”时要谨慎
- 7.3.3 案例:批量注册上下文
- 7.4 性能优化“万金油”:缓存
- 7.4.1 什么是缓存
- 7.4.2 客户端响应缓存
- 7.4.3 服务器端响应缓存
- 7.4.4 内存缓存
- 7.4.5 缓存穿透问题的规避
- 7.4.6 缓存雪崩问题的规避
- 7.4.7 缓存数据混乱的规避
- 7.4.8 案例:封装内存缓存操作的帮助类
- 7.4.9 分布式缓存
- 7.4.10 案例:封装分布式缓存操作的帮助类
- 7.4.11 缓存方式的选择
- 7.5 筛选器
- 7.5.1 异常筛选器
- 7.5.2 操作筛选器基础
- 7.5.3 案例:自动启用事务的操作筛选器
- 7.5.4 案例:开发请求限流器
- 7.6 中间件
- 7.6.1 什么是中间件
- 7.6.2 中间件的3个概念
- 7.6.3 简单演示中间件
- 7.6.4 案例:自己动手模仿Web API框架
- 7.6.5 调整内置中间件的顺序,结果大不同
- 7.6.6 案例:Markdown转换器中间件
- 7.6.7 筛选器与中间件的区别
- 7.7 本章小结
- 第8章 ASP.NET Core高级组件
- 8.1 Authentication与Authorization
- 8.1.1 标识框架
- 8.1.2 实现密码的重置
- 8.1.3 代替Session(会话)的JWT
- 8.1.4 JWT的基本使用
- 8.1.5 ASP.NET Core对于JWT的封装
- 8.1.6 [Authorize]的注意事项
- 8.1.7 让Swagger中调试带验证的请求更简单
- 8.1.8 解决JWT无法提前撤回的难题
- 8.1.9 总结
- 8.2 利用托管服务执行后台代码
- 8.2.1 托管服务的基本使用
- 8.2.2 托管服务中使用依赖注入的陷阱
- 8.2.3 案例:数据的定时导出
- 8.3 请求数据的校验
- 8.3.1 .NET Core内置数据校验的不足
- 8.3.2 FluentValidation的基本使用
- 8.3.3 FluentValidation中注入服务
- 8.4 SignalR服务器端消息推送
- 8.4.1 SignalR基本使用
- 8.4.2 协议协商
- 8.4.3 SignalR分布式部署
- 8.4.4 SignalR身份认证
- 8.4.5 针对部分客户端的消息推送
- 8.4.6 在外部向集线器推送消息
- 8.4.7 案例:导入英汉词典到数据库并显示进度
- 8.4.8 SignalR实践指南
- 8.5 ASP.NET Core系统的部署
- 8.5.1 ASP.NET Core网站的发布
- 8.5.2 网站部署需要注意的几个问题
- 8.5.3 如何构建一个安全的系统
- 8.6 本章小结
- 第9章 DDD实战
- 9.1 架构设计的术与道
- 9.1.1 架构设计之怪现状
- 9.1.2 架构是进化而来的
- 9.2 DDD的基本概念
- 9.2.1 什么是微服务
- 9.2.2 微服务架构的误区
- 9.2.3 DDD为什么难学
- 9.2.4 领域与领域模型
- 9.2.5 通用语言与界限上下文
- 9.2.6 实体类与值对象
- 9.2.7 聚合与聚合根
- 9.2.8 领域服务与应用服务
- 9.2.9 领域事件与集成事件
- 9.3 DDD的技术落地
- 9.3.1 贫血模型与充血模型
- 9.3.2 EF Core对实体类属性操作的秘密
- 9.3.3 EF Core中实现充血模型
- 9.3.4 EF Core中实现值对象
- 9.3.5 案例:构建表达式树,简化值对象的比较
- 9.3.6 千万不要面向数据库建模
- 9.3.7 聚合在.NET中的实现
- 9.3.8 用MediatR实现领域事件
- 9.3.9 EF Core中发布领域事件的合适时机
- 9.3.10 RabbitMQ的基本使用
- 9.3.11 案例:简化集成事件的框架
- 9.3.12 案例:Zack.EventBus源代码讲解
- 9.3.13 整洁架构(洋葱架构)
- 9.4 DDD案例实战:用户管理及登录
- 9.4.1 实现整洁架构项目分层
- 9.4.2 领域模型的实现
- 9.4.3 领域服务的实现
- 9.4.4 基础设施的实现
- 9.4.5 工作单元的实现
- 9.4.6 应用服务层的实现
- 9.5 本章小结
- 第10章 项目案例:英语学习网站
- 10.1 需求说明及项目演示
- 10.1.1 网站需求说明
- 10.1.2 网站结构说明
- 10.1.3 项目结构说明
- 10.1.4 项目运行环境搭建
- 10.1.5 主要功能演示
- 10.2 文件服务的开发
- 10.2.1 开发文件服务的领域层
- 10.2.2 开发文件服务的基础设施层
- 10.3 认证服务的开发
- 10.3.1 开发认证服务的领域层
- 10.3.2 开发认证服务的基础设施层
- 10.3.3 开发认证服务的应用服务层
- 10.4 英语听力服务的开发
- 10.4.1 开发英语听力服务的领域层
- 10.4.2 开发英语听力服务的后台应用服务层
- 10.4.3 开发英语听力服务的前台应用服务层
- 10.5 转码服务的开发
- 10.5.1 开发转码服务的领域层
- 10.5.2 开发转码服务的基础设施层
- 10.5.3 开发转码服务的应用服务层
- 10.6 搜索服务的实现
- 10.7 性能优化的原则
- 10.8 项目总结
- 10.9 本章小结
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。