1.针对.NET Core 3.1讲解; 2.提供完整源代码下载且代码可复用; 3.本书附送免费视频资源,供读者配合图书学习; 4.本书针对一个完整项目行发,而不是只有零散的代码段; 5.案例丰富、实用,采用了流行框架中的设计模式及实用技术; 6.具有完整的权限功能,统一处理拦截异常、错误页面及日志信息。 经过几年的发展,ASP.NET Core 已趋于稳定,社区生态比较完善。在技术日新月异的今天,我们需要不断学习,并在学习中不断成长。本书由浅深地讲解 ASP.NET Core,如果你想通过学习 ASP.NET Core 来获得更多的机会,那么我推荐本书,在学习 ASP.NET Core 的过程中它可以给予我们启发和帮助。 ——微软MVP 李志强 (晓晨master) ASP.NET Core已成为微软跨平台发的利器。本书基于ASP.NET Core 3.1版本,由浅深地介绍了如何从头始构建ASP.NET Core应用,内容详实,通俗易懂,非常适合.NET发者学习参考。 —— 微软MVP 闫晓迪 我一直认为微软官方文档是门学习*好的资料,但在阅读了梁桐铭的书稿后,我认为他写的这本书更加适合ASP.NET Core初学者参考阅读,从对.NET的历史回顾到对ASP.NET Core各组件由浅深的讲解,都是他学习心得的真心传授。 ——深圳市友浩达科技有限公司 CEO、微软MVP 张善友 即便ASP.NET Core从2016年首发到现在已经过去4年,但其在发者市场中的占比仍然不高。一方面是因为ASP.NET Core技术的主要阵地其实依然是以企业信息化为主的传统企业级应用层面,考虑到成本等综合因素,这些企业无法适时地更新自己的技术;另一方面是因为培养能够熟练驾驭ASP.NET Core技术的年轻发者的速度,赶不上企业飞速发展的需要。即便官方文档很齐全,但系统教程的缺乏,使发者或企业无法从ASP.NET Core的社区资源中受益。这本书有望成为初级和中级ASP.NET Core发者的精神食粮。根据作者介绍的详细步骤,发者能够快速成长为合格的新一代ASP.NET Core发者。本书作者是ASP.NET Core技术的先行者,早年在领域驱动设计等诸多社区贡献了大量学习资源,也在网上设了ASP.NET Core在线课程,而这本书也是他过去若干年经验积累的结晶。 ——深圳敢为软件研发负责人、长沙.NET技术社区组织者 邹溪源 作者在本书的课程管理系统中融了他积累多年的 ASP.NET Core 实践经验,以此为主线层层深,对 ASP.NET Core 的各项重要功能行了充分的讲解和演示。同时,书中还加了对部分框架源码的分析解读,能更好地帮助我们掌握程序的编写技巧。相信无论你是初学者,还是具有一定基础的发者,本书都是一本可以让你全面学习 ASP.NET Core,并且快速运用到实践中的佳作! ——盛派网络创始人、微软 RD / MVP 苏震巍
售 价:¥
纸质售价:¥109.80购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
版权
内容提要
推荐序
前言
资源与支持
第一部分
第1章 编程语言和 .NET的关系
1.1 编程语言
1.2 编程语言中的C#、F#和VB.NET
1.3 C#与.NET
1.4 小结
第2章 .NET平台
2.1 回顾.NET发展历史
2.1.1 .NET Framework
2.1.2 .NET Framework与Java
2.1.3 .NET的跨平台之路
2.2 Mono神奇的跨平台解决方案
2.3 .NET Standard
2.4 .NET Core
2.4.1 .NET Core的特点
2.4.2 .NET Core 3.1
2.5 .NET Core与其他平台
2.5.1 .NET Core与.NET Framework
2.5.2 .NET Core与Mono
2.5.3 .NET Core与ASP .NET Core
2.6 ASP .NET的发展历程
2.7 ASP.NET Core的未来发展
2.8 小结
第3章 .NET 5的统一整合方案
3.1 进化中的.NET
3.2 .NET 5 (.NET Core vNext)
3.3 .NET Core实现真正的统一开发平台
3.4 小结
第4章 创建ASP.NET Core项目
4.1 ASP.NET Core
4.2 ASP.NET Core的特性
ASP.NET Core中新增的功能
4.3 配置计算机的开发环境
4.3.1 下载并安装Visual Studio 2019
4.3.2 下载并安装.NET Core SDK
4.4 创建ASP.NET Core Web程序
4.5 内置的ASP.NET Core模板说明
4.6 小结
第5章 ASP.NET Core项目启动流程
5.1 ASP.NET Core项目文件
5.2 ASP.NET Core项目的入口
5.3 ASP.NET Core中的进程内与进程外托管模型
5.3.1 进程内托管
5.3.2 Kestrel
5.3.3 CLI
5.4 ASP.NET Core进程外托管
进程外托管
5.5 探讨几个问题
5.6 小结
第6章 ASP.NET Core中的配置文件
6.1 启动配置信息
6.2 通过GUI来设置launchSettings文件
6.3 ASP.NET Core appsettings.json文件
6.3.1 访问配置信息
6.3.2 appsettings.json
6.3.3 用户机密
6.3.4 环境变量
6.3.5 命令行参数
6.4 ASP.NET Core IConfiguration服务与依赖注入
6.5 小结
第7章 ASP.NET Core中的中间件及其工作原理
7.1 中间件
7.2 中间件在ASP.NET Core中的工作原理
7.3 配置ASP.NET Core请求处理管道
7.4 Configure()代码解析
7.4.1 中间件掌握测试
7.4.2 中间件传递
7.4.3 实践中间件的工作流程
7.5 小结
第8章 ASP.NET Core中的静态文件中间件
8.1 添加静态文件中间件
8.2 支持默认文件
8.3 自定义默认文件
8.4 UseFileServer中间件
8.5 小结
第9章 ASP.NET Core开发人员异常页面
9.1 UseDeveloperExceptionPage中间件
9.2 自定义UseDeveloperExceptionPage中间件
9.3 UseDeveloperExceptionPage中间件如何工作
9.4 ASP.NET Core中的环境变量配置
9.5 配置ASPNETCORE_ENVIRONMENT变量
访问ASPNETCORE_ENVIRONMENT变量值
9.6 IWebHostEnvironment服务中的常用方法
9.7 小结
第二部分
第10章 详解ASP.NET Core MVC的设计模式
10.1 什么是MVC
10.1.1 MVC如何工作
10.1.2 Model
10.1.3 View
10.1.4 Controller
10.2 在ASP.NET Core中安装MVC
10.2.1 在ASP.NET Core中配置MVC
10.2.2 添加HomeController
10.3 AddMvc()和AddMvcCore()的源代码解析
10.4 小结
第11章 依赖注入与Student模型
11.1 依赖注入
11.2 详细了解ASP.NET Core中的依赖注入
11.3 使用依赖注入注册服务
11.4 小结
第12章 从Controller传递内容协商数据到View
12.1 Controller请求及相应流程说明
12.1.1 从Controller中返回JSON数据
12.1.2 安装Fiddler
12.2 在Controller中实现内容协商
从控制器中返回协商内容
12.3 从Controller返回View
12.3.1 MVC中的View
12.3.2 视图文件夹结构
12.3.3 视图发现
12.3.4 View()重载方法
12.4 自定义视图发现
12.4.1 指定视图文件路径
12.4.2 相对视图文件路径
12.4.3 其他View()重载方法
12.5 从Controller传递数据到View
12.5.1 数据从Controller传递到View的方法
12.5.2 使用ViewData将数据从Controller传递到View
12.5.3 使用ViewBag将数据从Controller传递到View
12.5.4 ViewData和ViewBag的对比
12.5.5 在ASP.NET Core MVC中创建一个强类型视图
12.6 小结
第13章 完善MVC框架内容
13.1 为什么需要在ASP.NET Core MVC中使用ViewModel
13.1.1 ViewModel示例
13.1.2 在Controller中使用ViewModel
13.1.3 在视图中使用ViewModel
13.2 在ASP.NET Core MVC中实现List视图
13.2.1 修改IStudentRepository中的代码
13.2.2 修改MockStudentRepository中的代码
13.2.3 修改HomeController中的代码
13.2.4 视图Index.cshtml中代码的变化
13.3 为什么需要布局视图
13.3.1 ASP.NET Core MVC中的布局视图
13.3.2 创建布局视图
13.3.3 使用布局视图
13.4 布局页面中的节点
13.4.1 布局页面示例
13.4.2 渲染节点
13.4.3 使布局部分可选
13.4.4 节点的使用
13.5 什么是_ViewStart.cshtml文件
13.5.1 ASP.NET Core MVC中的_ViewStart.cshtml文件
13.5.2 _ViewStart.cshtml文件支持分层
13.5.3 逻辑判断调用布局视图
13.5.4 修改视图
13.6 ASP.NET Core MVC中的_ViewImports.cshtml文件
13.7 小结
第14章 ASP.NET Core MVC中的路由
14.1 ASP.NET Core MVC中的默认路由
14.2 UseMvcWithDefaultRoute()方法中的代码
了解默认路由
14.3 ASP.NET Core MVC中的属性路由
14.3.1 属性路由示例
14.3.2 属性路由参数
14.3.3 属性路由可选参数
14.3.4 控制器和操作方法名称
14.3.5 属性路由支持多层
14.3.6 在属性路由中自定义路由
14.3.7 常规路由与属性路由对比
14.4 ASP.NET Core中新增的路由中间件
14.4.1 路由中间件UseRouting
14.4.2 路由中间件UseEndpoints
14.5 LibMan轻量级包管理器
14.5.1 使用LibMan安装Bootstrap
14.5.2 libman.json文件
14.5.3 清理和还原客户端库
14.5.4 卸载或更新客户端库
14.5.5 libman.json文件说明
14.5.6 在网站中自定义CSS样式表
14.6 在ASP.NET Core应用程序中使用Bootstrap
14.6.1 Details.cshtml视图优化
14.6.2 Index.cshtml视图优化
14.7 小结
第15章 ASP.NET Core中的TagHelper
15.1 导入内置TagHelper
15.1.1 使用TagHelper生成Link链接
15.1.2 TagHelper中的Link标签
15.2 为什么要使用TagHelper
使用TagHelper的优势
15.3 Image TagHelper
15.3.1 浏览器缓存
15.3.2 禁用浏览器缓存
15.3.3 HTTP状态码中的200与302
15.3.4 ASP.NET Core中的Image TagHelper
15.3.5 验证Image TagHelper
15.4 ASP.NET Core中的Environment TagHelper
15.4.1 设置应用程序环境的名称
15.4.2 如果CDN “挂了”怎么办
15.5 使用Bootstrap给项目添加导航菜单
布局页面_Layout.cshtml的代码
15.6 Form TagHelpers提交学生信息
15.6.1 场景描述
15.6.2 Form TagHelper
15.6.3 Input TagHelper
15.6.4 Label TagHelper
15.6.5 Select TagHelper
15.6.6 Create.cshtml中基本的HTML代码
15.6.7 Bootstrap优化后的Create.cshtml的代码
15.7 小结
第16章 ASP.NET Core中的模型绑定与模型验证
16.1 ASP.NET Core中模型绑定的简单例子
另外一个模型绑定示例
16.2 在IStudentRepository接口中添加Add() 方法
16.2.1 在MockStudentRepository类中实现Add() 方法
16.2.2 HttpGet与HttpPost
16.2.3 运行结果
16.3 ASP.NET Core中的模型验证
16.3.1 模型验证示例
16.3.2 ModelState.IsValid属性验证
16.3.3 在视图中显示模型验证错误
16.3.4 自定义模型验证错误消息
16.3.5 ASP.NET Core内置模型验证属性
16.3.6 显示属性
16.3.7 使用多个模型验证属性
16.3.8 自定义模型验证错误的颜色
16.4 ASP.NET Core中的Select选择器验证
16.4.1 HTML页面中的选择列表
16.4.2 使选择列表成为必填
16.4.3 让选择列表成为真正的必需验证
16.5 深入了解依赖注入3种服务的不同
16.5.1 IStudentRepository接口
16.5.2 Student类
16.5.3 MockStudentRepository仓储服务
16.5.4 HomeController
16.5.5 创建学生信息
16.5.6 完善_ViewImports.cshtml
16.6 验证依赖注入服务
16.6.1 AddSingleton()方法
16.6.2 AddScoped()方法
16.6.3 AddTransient()方法
16.6.4 Scoped服务、Transient服务与Singleton服务
16.7 小结
第17章 EntityFramework Core数据访问与仓储模式
17.1 为什么要使用ORM
17.1.1 EF Core Code First模式
17.1.2 EF Core Database First模式
17.1.3 EF Core所支持的数据库
17.2 单层Web应用和多层Web应用的区别
17.2.1 单层Web应用
17.2.2 多层Web应用程序——三层架构
17.2.3 多层Web应用程序——领域驱动设计架构
17.3 Microsoft.AspNetCore.App包
17.4 安装Entity Framework Core
17.4.1 在类库项目中安装NuGet包
17.4.2 Entity Framework Core中的DbContext
17.4.3 在应用程序中使用DbContext
17.4.4 Entity Framework Core中的DbSet
17.5 在Entity Framework Core中使用SQL Server
17.5.1 AddDbContext()和AddDbContextPool()方法之间的区别
17.5.2 UseSqlServer()扩展方法
17.5.3 ASP.NET Core中的数据库连接字符串
17.6 ASP.NET Core中的仓储模式
17.6.1 仓储模式简介
17.6.2 仓储模式中的接口
17.6.3 修改IStudentRepository接口
17.6.4 仓储模式中的内存实现
17.6.5 Repository模式——SQL Server数据库实现
17.6.6 选择合适的仓储实现模式
17.6.7 仓储模式的优点
17.7 Entity Framework Core迁移功能
17.7.1 EF Core中的迁移
17.7.2 常用的Entity Framework Core迁移命令
17.7.3 在Entity Framework Core中创建迁移
17.7.4 在Entity Framework Core中更新数据库
17.7.5 Entity Framework Core中的种子数据
17.7.6 如何启用种子数据
17.7.7 更改现有的数据库种子数据
17.7.8 DbContext类保持“干净”
17.8 在ASP.NET Core中同步领域模型与数据库架构
17.8.1 给学生增加头像字段
17.8.2 Migrations文件夹中的文件说明
17.8.3 _EFMigrationsHistory表的使用
17.8.4 如何删除已应用的迁移记录
17.8.5 删除已应用于数据库的迁移
17.9 小结
第18章 学生头像上传与信息修改
18.1 修改Student模型类
18.1.1 视图模型——StudentCreateViewModel
18.1.2 更新Create视图中的代码
18.1.3 更新Create()操作方法的代码
18.1.4 学生详情视图页面代码
18.1.5 学生列表视图页面代码
18.2 在ASP.NET Core MVC中完成上传多个文件
18.2.1 StudentCreateViewModel文件
18.2.2 更新Create视图的代码
18.2.3 修改Create()操作方法
18.3 ASP.NET Core中的学生编辑视图
18.3.1 导航到编辑视图
18.3.2 编辑视图模型
18.3.3 Edit() 操作方法
18.3.4 编辑视图页面
18.3.5 完成HttpPost的Edit()操作方法
18.4 枚举的扩展方法实现
18.5 小结
第19章 404错误页与异常拦截
19.1 HTTP状态码中的4××和5××
19.1.1 ASP.NET Core中的404错误
19.1.2 404错误信息的视图代码
19.2 统一处理ASP.NET Core中的404错误
19.2.1 404错误的类型
19.2.2 ASP.NET Core中的404错误示例
19.3 处理失败的HTTP状态码
19.3.1 UseStatusCodePages中间件
19.3.2 UseStatusCodePagesWithRedirects中间件
19.3.3 添加ErrorController
19.3.4 添加NotFound视图
19.4 UseStatusCodePagesWithRedirects与UseStatusCodePagesWithReExecute
19.4.1 UseStatusCodePagesWithRedirects中间件说明
19.4.2 UseStatusCodePagesWithRedirects请求处理流程
19.4.3 使用UseStatusCodePagesWithReExecute请求处理流程
19.5 ASP.NET Core中的全局异常处理
19.5.1 ASP.NET Core中的UseDeveloperExceptionPage中间件
19.5.2 ASP.NET Core中的非开发环境异常信息
19.5.3 ASP.NET Core中的异常处理
19.5.4 调整Edit()方法中的错误视图
19.6 小结
第20章 ASP.NET Core中的日志记录
20.1 ASP.NET Core中的默认日志
运行ASP.NET Core应用程序
20.2 ASP.NET Core中的日志记录提供程序
20.2.1 ASP.NET Core内置日志记录提供程序
20.2.2 ASP.NET Core的第三方日志记录提供程序
20.2.3 ASP.NET Core中默认的日志记录提供程序
20.2.4 appsettings.json文件中的LogLevel
20.3 在ASP.NET Core中实现记录异常信息
20.3.1 Error和NotFound视图修改
20.3.2 在ASP.NET Core中记录异常信息
20.3.3 在ASP.NET Core中使用NLog记录信息到文件中
20.3.4 在ASP.NET Core中使用NLog
20.4 在ASP.NET Core中LogLevel配置及过滤日志信息
20.4.1 日志等级LogLevel枚举
20.4.2 ILogger方法
20.4.3 在ASP.NET Core中使用日志过滤
20.4.4 按日志类别(Log Category)和日志记录提供程序进行日志筛选
20.4.5 特定环境变量中appsettings.json文件的LogLevel配置
20.5 小结
第三部分
第21章 从零开始学ASP.NET Core Identity框架
21.1 ASP.NET Core Identity介绍
添加ASP.NET Core Identity服务
21.2 使用ASP.NET Core Identity注册新用户
21.2.1 RegisterViewModel视图模型
21.2.2 账户控制器
21.2.3 注册视图中的代码
21.2.4 添加注册按钮
21.3 UserManager和SignInManager服务
21.3.1 ASP.NET Core Identity中对密码复杂度的处理
21.3.2 ASP.NET Core Identity密码默认设置
21.3.3 覆盖ASP.NET Core身份中的密码默认设置
21.3.4 修改中文提示的错误信息
21.4 登录状态及注销功能的实现
21.5 ASP.NET Core Identity中的登录功能实现
21.5.1 LoginViewModel登录视图模型
21.5.2 登录视图的代码
21.5.3 AccountController中的Login()操作方法
21.5.4 会话Cookie与持久性Cookie
21.6 小结
第22章 授权与验证的关系
22.1 ASP.NET Core中的Authorize属性
22.1.1 Authorize属性示例
22.1.2 ASP.NET Core中的AllowAnonymous属性
22.1.3 全局应用Authorize属性
22.2 登录后重定向到指定URL
22.2.1 ASP.NET Core中的ReturnUrl
22.2.2 ReturnUrl查询字符串示例
22.2.3 登录后重定向到ReturnUrl
22.3 开放式重定向攻击
22.3.1 什么是开放式重定向漏洞
22.3.2 开放式重定向漏洞示例
22.4 ASP.NET Core中的客户端验证
22.4.1 服务器端验证示例
22.4.2 客户端验证
22.4.3 什么是客户端隐式验证
22.4.4 客户端验证如何在ASP.NET Core中工作
22.4.5 隐式验证在ASP.NET Core中失效
22.5 在ASP.NET Core中进行远程验证
22.5.1 远程验证示例
22.5.2 ASP.NET Core远程属性
22.5.3 ASP.NET Core Ajax失效
22.6 ASP.NET Core中的自定义验证属性
22.6.1 自定义验证属性示例
22.6.2 在ASP.NET Core中使用自定义验证属性
22.7 小结
第23章 角色管理与用户扩展
23.1 扩展IdentityUser类
23.1.1 修改AppDbContext中的参数
23.1.2 生成新迁移记录向AspNetUsers表中添加字段
23.1.3 在AspNetUsers表中保存自定义数据
23.1.4 AccountController类中Register()操作方法的修改
23.1.5 AllowAnonymous匿名属性的使用
23.2 ASP.NET Core中的角色管理
23.2.1 ASP.NET Core中的RoleManager
23.2.2 在AdminController中添加创建新角色的代码
23.2.3 创建角色视图模型
23.2.4 创建角色视图
23.3 在ASP.NET Core中显示所有角色列表
角色列表视图代码
23.4 编辑ASP.NET Core中的角色
23.4.1 编辑角色视图模型
23.4.2 编辑角色操作方法
23.4.3 编辑角色视图
23.5 角色管理中的用户关联关系
23.5.1 Identity中的AspNetUserRoles数据库表关联关系
23.5.2 EditUsersInRole的HttpGet操作方法
23.5.3 EditUsersInRole的HttpPost操作方法
23.5.4 EditUsersInRole视图
23.6 小结
第24章 角色授权与用户管理
24.1 基于角色的授权
24.1.1 授权属性的多个实例
24.1.2 基于角色授权的控制器操作方法
24.2 添加授权中间件UseAuthorization
24.3 在菜单栏上显示或隐藏管理
根据登录的用户角色显示或隐藏导航菜单
24.4 ASP.NET Core Identity中的拒绝访问功能
24.4.1 AccessDenied()操作方法
24.4.2 AccessDenied视图代码
24.5 获取Identity中的用户列表
24.5.1 UserManager服务的用户访问
24.5.2 ASP.NET Core列表用户视图
24.5.3 管理导航菜单
24.5.4 修改Register()方法
24.5.5 下拉菜单功能失效
24.6 编辑Identity中的用户
24.6.1 编辑用户视图
24.6.2 EditUser()的操作方法
24.6.3 EditUser视图文件
24.7 NotFound视图异常
统一404错误视图
24.8 Identity中删除的用户功能
24.8.1 使用GET请求删除数据
24.8.2 使用POST请求删除数据
24.8.3 DeleteUser()方法
24.9 ASP.NET Core中的确认删除功能
24.9.1 浏览器确认对话框
24.9.2 是和否删除按钮
24.9.3 将confirmDelete()方法添加到视图中
24.10 删除ASP.NET CoreIdentity中的角色
24.11 小结
第25章 EF Core中的数据完整性约束
25.1 EF Core中的数据完整性约束
AspNetUsers与AspNetRoles的关联关系
25.2 优化生产环境中的自定义错误视图
25.2.1 ErrorController类
25.2.2 优化Error.cshtml
25.3 小结
第26章 ASP.NET Core中的声明授权
26.1 Identity中的用户角色
26.1.1 视图模型
26.1.2 ManageUserRoles()方法
26.1.3 ManageUserRoles视图文件
26.2 启用MARS与模型绑定失效
26.2.1 为什么不使用foreach
26.2.2 for循环与foreach循环的异同点
26.3 声明授权
26.3.1 ClaimsStore与UserClaimsViewModel类
26.3.2 ManageUserClaims()操作方法
26.3.3 ManageUserClaims视图文件
26.4 小结
第27章 RBAC与CABC
27.1 RBAC
27.2 CBAC
27.3 角色与策略的结合
27.4 在MVC视图中进行角色与声明授权
27.5 AccessDenied视图的路由配置修改
27.6 策略授权中的ClaimType和ClaimValue
27.7 使用委托创建自定义策略授权
27.7.1 自定义复杂授权需求
27.7.2 自定义授权需求和处理程序
27.7.3 自定义需求的授权处理程序示例
27.7.4 多个自定义授权处理程序
27.8 小结
第28章 Identity的账户中心的设计
28.1 第三方登录身份提供商
28.1.1 第三方登录身份提供商如何在ASP.NET Core中工作
28.1.2 创建Azure OAuth凭据——客户端ID和客户端密钥
28.1.3 在ASP.NET Core中启用Microsoft身份验证
28.1.4 集成GitHub身份验证登录
28.2 用户机密
28.3 验证账户信息安全
28.3.1 验证电子邮箱的好处
28.3.2 阻止登录未验证的用户登录
28.3.3 电子邮箱确认令牌
28.3.4 第三方登录的电子邮箱确认令牌
28.3.5 激活用户邮箱
28.4 忘记密码功能
28.5 重置密码功能
28.6 小结
第29章 解析部分ASP.NET Core Identity源代码
29.1 解析ASP.NET Core Identity中Token的生成与验证
在ASP.NET Core中自定义令牌有效期
29.2 自定义令牌类型及令牌有效期
29.3 ASP.NET Core中Data Protection的加密和解密示例
29.4 在ASP.NET Core中添加更改密码功能
29.5 为第三方账户添加密码
29.6 ASP.NET Core中的账户锁定
29.7 小结
第四部分
第30章 架构
30.1 架构简介
30.2 学校管理系统架构设计
30.3 EntityFramework Core中的实体关系
30.4 当前架构
30.5 小结
第31章 仓储模式的最佳实践
31.1 泛型仓储的实现
31.2 异步编码与同步编码
31.3 IRepository接口的设计实现
31.4 RepositoryBase仓储代码的实现
31.5 小结
第32章 重构学生管理功能
32.1 修改HomeController中的代码
32.2 学生列表排序功能
32.3 模糊查询
32.4 一个简单分页的实现
32.5 小结
第33章 课程列表与分组统计功能
33.1 泛型分页
33.2 迁移数据信息
33.3 课程列表
33.4 分部视图
33.5 学生统计信息
33.6 Razor条件运行时编译
33.7 小结
第34章 复杂数据类型及自动依赖注入
34.1 创建相关实体信息
34.1.1 修改Course实体信息
34.1.2 创建学院与调整学生课程信息
34.2 更新数据库上下文及初始化内容
添加种子数据
34.3 服务之间的自动注册
NetCore.AutoRegisterDi服务
34.4 小结
第35章 课程与教师的CRUD
35.1 EF Core中预加载的使用
35.2 较为复杂的预加载的使用
35.3 编辑课程功能
35.3.1 编辑课程信息
35.3.2 课程信息的详情页
35.3.3 删除课程信息
35.4 编辑教师功能
35.4.1 添加教师信息
35.4.2 删除教师信息
35.5 优化目录结构
35.6 小结
第36章 处理并发冲突
36.1 并发冲突
36.1.1 悲观并发(悲观锁)
36.1.2 乐观并发(乐观锁)
36.2 添加Department的相关类
36.2.1 添加DepartmentsService
36.2.2 学院列表功能
36.2.3 添加详情视图
36.2.4 编辑学院信息功能
36.3 EF Core中的并发控制
测试并发异常
36.4 小结
第37章 EF Core中的继承与原生SQL语句使用
37.1 继承
37.1.1 实现TPH继承
37.1.2 执行数据库迁移
37.2 执行原生SQL语句
37.2.1 DbSet.FromSqlRaw的使用
37.2.2 Database.ExecuteSqlComma的使用
37.2.3 执行原生SQL语句实现更新
37.3 小结
第38章 EF Core中的数据加载与关系映射
38.1 EF Core中的数据加载
38.1.1 显式加载
38.1.2 延迟加载
38.1.3 3种加载形式的性能区别
38.2 Fluent API与数据注释
38.3 Entity Framework Core中的Code First关系映射约定
38.3.1 一对一关联关系
38.3.2 一对多关联关系
38.3.3 多对多关联关系
38.4 小结
第五部分
第39章 ASP.NET Core中的Web API
39.1 IoT与RESTful服务
RESTful的服务约束
39.2 添加Web API服务
39.3 安装Postman并调试Web API服务
39.3.1 测试POST请求
39.3.2 测试GET请求
39.3.3 测试PutTodoItem()方法
39.3.4 测试DeleteTodoItem()方法
39.3.5 404和400异常
39.4 图形可视化的Web API帮助页
39.4.1 Swagger/OpenAPI
39.4.2 Swashbuckle.AspNetCore入门
39.4.3 添加并配置Swagger中间件
39.4.4 获取swagger.json失败
39.4.5 调试Swagger UI
39.4.6 调用SwaggerGen API
39.5 小结
第40章 实践多层架构体系
40.1 领域驱动设计的分层结构
40.2 重构MockSchoolManagement项目
40.2.1 添加所需类库
40.2.2 添加依赖引用关系
40.3 迁移各类库
40.3.1 各个项目文件中的引用
40.3.2 类库效果图
40.3.3 多程序集的依赖注入
40.3.4 重新生成迁移记录及生成SQL脚本
40.4 小结
第41章 部署与发布
41.1 部署至IIS
41.1.1 IIS的安装和配置
41.1.2 安装ASP.NET Core托管模块
41.1.3 启用Web Deploy
41.1.4 创建IIS站点
41.1.5 使用Visual Studio将ASP.NET Core发布到IIS站点
41.2 部署至Ubuntu
41.2.1 Ubuntu中安装.NET Core
41.2.2 安装Nginx
41.2.3 编译与发布
41.3 在Docker中调试运行ASP.NET Core
41.3.1 安装Docker
41.3.2 添加Dockerfile文件
41.4 云原生Azure Web App
41.5 小结
第42章 ASP.NET Core 2.2到ASP. NET Core 3.1的迁移指南
42.1 升级至ASP.NET Core 3.1
42.1.1 修改项目启动
42.1.2 修改Startup
42.2 迁移升级后的看法
42.3 Visual Studio 2019插件推荐
42.4 小结
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜