计算机
类型
可以朗读
语音朗读
686千字
字数
2020-08-01
发行日期
展开全部
主编推荐语
系统学习ASP.NET Core技术,实操搭建学校管理系统。
内容简介
本书是一本系统性介绍 ASP.NET Core 、Entity Framework Core 以及 ASP.NET Core Identity 框架技术的入门图书,旨在帮助读者循序渐进地了解和掌握 .NET Core。本书会使用 ASP.NET Core 从零开始搭建一个实际的项目。从基本的控制台应用程序开始作为起点,介绍ASP.NET Core 基本的启动流程,涵盖 ASP.NET Core 框架中各个技术的实际应用。同时,本书也会介绍一些 ASP.NET Core 的高级概念。在本书中,我们会开发一个学校管理系统,其中包含清晰的操作步骤和大量的实际代码,以帮助读者学以致用,将 .NET Core 的知识运用到实际的项目开发当中,最后我们会将开发的项目部署到生产环境中。通过阅读本书,读者将掌握使用 ASP.NET Core 开发 Web 应用程序的方法,并能够在新项目的技术选型时做出战略决策。
目录
- 版权信息
- 版权
- 内容提要
- 推荐序
- 序
- 前言
- 资源与支持
- 第一部分
- 第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 小结
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。