热门搜索: 中考 高考 考试 开卷17
服务电话 024-23945002/96192
 

深入浅出 ASP.NET Core

编号:
wx1202126241
销售价:
¥119.54
(市场价: ¥139.00)
赠送积分:
120
数量:
   
商品介绍

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 苏震巍

本书是一本系统地介绍ASP.NET Core、Entity Framework Core以及ASP.NET Core Identity框架技术的入门图书,旨在帮助读者循序渐进地了解和掌握ASP.NET Core。本书使用ASP.NET Core从零开始搭建一个实际的项目。从基本的控制台应用程序开始,介绍ASP.NET Core基本的启动流程,涵盖ASP.NET Core框架中各个技术的实际应用。同时,本书也会介绍一些ASP.NET Core的不错概念。在本书中,我们会开发一个学校管理系统,其中包含清晰的操作步骤和大量的实际代码,以帮助读者学以致用,将ASP.NET Core的知识运用到实际的项目开发当中,很后我们会将开发的项目部署到生产环境中。通过阅读本书,读者将掌握使用ASP.NET Core开发Web应用程序的方法,并能够在对新项目进行技术选型时做出战略决策。
本书适合有一定C# 编程经验和HTML、JavaScript基础,并对ASP.NET Core感兴趣的读者阅读,也可以作为高等院校相关专业的教学用书和培训学校的教材。

梁桐铭,微软很有价值专家、Microsoft AI Open Hack教练、Microsoft Tech Summit 2018讲师,52ABP开源框架作者。2015年开始在靠前推广ASP.NET Boilerplate Project开源框架。拥有多年开发经验与技术团队管理经验,熟悉互联网及电商业。负责过多个大型项目的开发和管理,擅长应用系统项目的规划设计、及企业解决方案的设计。

第 一部分
第  1章 编程语言和 .NET的关系  2
1.1  编程语言  2
1.2  编程语言中的C#、 F#和VB.NET  2
1.3  C#与.NET  3
1.4  小结  3
第  2章 .NET平台  4
2.1  回顾.NET发展历史  4
2.1.1  .NET Framework  4
2.1.2  .NET Framework与Java  5
2.1.3  .NET的跨平台之路  5
2.2  Mono神奇的跨平台解决方案  6
2.3  .NET Standard  6
2.4  .NET Core  7
2.4.1  .NET Core的特点  7
2.4.2  .NET Core 3.1  8
2.5  .NET Core与其他平台  8
2.5.1  .NET Core与.NET Framework  8
2.5.2  .NET Core与Mono  8
2.5.3  .NET Core与ASP .NET Core  8
2.6  ASP .NET的发展历程  9
2.7  ASP.NET Core的未来发展  9
2.8  小结  10
第3章  .NET 5的统一整合方案  11
3.1  进化中的.NET  11
3.2  .NET 5 (.NET Core vNext)  12
3.3  .NET Core实现真正的统一开发平台  13
3.4  小结  14
第4章  创建ASP.NET Core项目  15
4.1  ASP.NET Core  15
4.2  ASP.NET Core的特性  15
4.3  配置计算机的开发环境  17
4.3.1  下载并安装Visual Studio 2019  17
4.3.2  下载并安装.NET Core SDK  18
4.4  创建ASP.NET Core Web程序  18
4.5  内置的ASP.NET Core模板说明  20
4.6  小结  21
第5章  ASP.NET Core项目启动流程  23
5.1  ASP.NET Core项目文件  23
5.2  ASP.NET Core项目的入口  25
5.3  ASP.NET Core中的进程内与进程外托管模型  26
5.3.1  进程内托管  27
5.3.2  Kestrel  28
5.3.3  CLI  28
5.4  ASP.NET Core进程外托管  29
5.5  探讨几个问题  30
5.6  小结  31
第6章  ASP.NET Core中的配置文件  33
6.1  启动配置信息  33
6.2  通过GUI来设置launchSettings文件  35
6.3  ASP.NET Core appsettings.json文件  36
6.3.1  访问配置信息  37
6.3.2  appsettings.json  39
6.3.3  用户机密  39
6.3.4  环境变量  41
6.3.5  命令行参数  41
6.4  ASP.NET Core IConfiguration服务与依赖注入  42
6.5  小结  44
第7章  ASP.NET Core中的中间件及其工作原理  45
7.1  中间件  45
7.2  中间件在ASP.NET Core中的工作原理  47
7.3  配置ASP.NET Core请求处理管道  48
7.4  Configure()代码解析  49
7.4.1  中间件掌握测试  49
7.4.2  中间件传递  50
7.4.3  实践中间件的工作流程  50
7.5  小结  52
第8章  ASP.NET Core中的静态文件中间件  54
8.1  添加静态文件中间件  54
8.2  支持默认文件  55
8.3  自定义默认文件  56
8.4  UseFileServer中间件  56
8.5  小结  57
第9章  ASP.NET Core开发人员异常页面  58
9.1  UseDeveloperExceptionPage中间件  58
9.2  自定义UseDeveloperExceptionPage中间件  60
9.3  UseDeveloperExceptionPage中间件如何工作  60
9.4  ASP.NET Core中的环境变量配置  61
9.5  配置ASPNETCORE_ENVIRONMENT变量  62
9.6  IWebHostEnvironment服务中的常用方法  64
9.7  小结  65
第二部分
第  10章 详解ASP.NET Core MVC的设计模式  68
10.1  什么是MVC  68
10.1.1  MVC如何工作  69
10.1.2  Model  70
10.1.3  View  71
10.1.4  Controller  71
10.2  在ASP.NET Core中安装MVC  73
10.2.1  在ASP.NET Core中配置MVC  73
10.2.2  添加HomeController  74
10.3  AddMvc()和AddMvcCore()的源代码解析  75
10.4  小结  77
第  11章 依赖注入与Student模型  78
11.1  依赖注入  78
11.2  详细了解ASP.NET Core中的依赖注入  80
11.3  使用依赖注入注册服务  81
11.4  小结  83
第  12章 从Controller传递内容协商数据到View  84
12.1  Controller请求及相应流程说明  84
12.1.1  从Controller中返回JSON数据  85
12.1.2  安装Fiddler  86
12.2  在Controller中实现内容协商  86
12.3  从Controller返回View  89
12.3.1  MVC中的View  89
12.3.2  视图文件夹结构  90
12.3.3  视图发现  90
12.3.4  View()重载方法  93
12.4  自定义视图发现  93
12.4.1  指定视图文件路径  93
12.4.2  相对视图文件路径  94
12.4.3  其他View()重载方法  94
12.5  从Controller传递数据到View  95
12.5.1  数据从Controller传递到View的方法  95
12.5.2  使用ViewData将数据从Controller传递到View  95
12.5.3  使用ViewBag将数据从Controller传递到View  97
12.5.4  ViewData和ViewBag的对比  98
12.5.5  在ASP.NET Core MVC中创建一个强类型视图  98
12.6  小结  100
第  13章 完善MVC框架内容  102
13.1  为什么需要在ASP.NET Core MVC中使用ViewModel  102
13.1.1  ViewModel示例  103
13.1.2  在Controller中使用ViewModel  103
13.1.3  在视图中使用ViewModel  104
13.2  在ASP.NET Core MVC中实现List视图  104
13.2.1  修改IStudentRepository中的代码  105
13.2.2  修改MockStudentRepository中的代码  105
13.2.3  修改HomeController中的代码  106
13.2.4  视图Index.cshtml中代码的变化  106
13.3  为什么需要布局视图  107
13.3.1  ASP.NET Core MVC中的布局视图  108
13.3.2  创建布局视图  109
13.3.3  使用布局视图  109
13.4  布局页面中的节点  110
13.4.1  布局页面示例  110
13.4.2  渲染节点  111
13.4.3  使布局部分可选  111
13.4.4  节点的使用  112
13.5  什么是_ViewStart.cshtml文件  113
13.5.1  ASP.NET Core MVC中的_ViewStart.cshtml文件  113
13.5.2  _ViewStart.cshtml文件支持分层  113
13.5.3  逻辑判断调用布局视图  114
13.5.4  修改视图  114
13.6  ASP.NET Core MVC中的_ViewImports.cshtml文件  116
13.7  小结  117
第  14章 ASP.NET Core MVC中的路由  118
14.1  ASP.NET Core MVC中的默认路由  119
14.2  UseMvcWithDefaultRoute()方法中的代码  120
14.3  ASP.NET Core MVC中的属性路由  122
14.3.1  属性路由示例  123
14.3.2  属性路由参数  123
14.3.3  属性路由可选参数  124
14.3.4  控制器和操作方法名称  125
14.3.5  属性路由支持多层  125
14.3.6  在属性路由中自定义路由  128
14.3.7  常规路由与属性路由对比  129
14.4  ASP.NET Core中新增的路由中间件  129
14.4.1  路由中间件UseRouting  130
14.4.2  路由中间件UseEndpoints  131
14.5  LibMan轻量级包管理器  133
14.5.1  使用LibMan安装Bootstrap  133
14.5.2  libman.json文件  134
14.5.3  清理和还原客户端库  134
14.5.4  卸载或更新客户端库  134
14.5.5  libman.json文件说明  135
14.5.6  在网站中自定义CSS样式表  136
14.6  在ASP.NET Core应用程序中使用Bootstrap  136
14.6.1  Details.cshtml视图优化  137
14.6.2  Index.cshtml视图优化  137
14.7  小结  139
第  15章 ASP.NET Core中的TagHelper  140
15.1  导入内置TagHelper  140
15.1.1  使用TagHelper生成Link链接  140
15.1.2  TagHelper中的Link标签  141
15.2  为什么要使用TagHelper  141
15.3  Image TagHelper  144
15.3.1  浏览器缓存  145
15.3.2  禁用浏览器缓存  145
15.3.3  HTTP状态码中的200与302  146
15.3.4  ASP.NET Core中的Image TagHelper  146
15.3.5  验证Image TagHelper  147
15.4  ASP.NET Core中的Environment TagHelper  148
15.4.1  设置应用程序环境的名称  148
15.4.2  如果CDN “挂了”怎么办  149
15.5  使用Bootstrap给项目添加导航菜单  150
15.6  Form TagHelpers提交学生信息  153
15.6.1  场景描述  153
15.6.2  Form TagHelper  154
15.6.3  Input TagHelper  154
15.6.4  Label TagHelper  155
15.6.5  Select TagHelper  155
15.6.6  Create.cshtml中基本的HTML代码  156
15.6.7  Bootstrap优化后的Create.cshtml的代码  158
15.7  小结  159
第  16章 ASP.NET Core中的模型绑定与模型验证  160
16.1  ASP.NET Core中模型绑定的简单例子  160
16.2  在IStudentRepository接口中添加Add() 方法  162
16.2.1  在MockStudentRepository类中实现Add() 方法  163
16.2.2  HttpGet与HttpPost  163
16.2.3  运行结果  165
16.3  ASP.NET Core中的模型验证  166
16.3.1  模型验证示例  166
16.3.2  ModelState.IsValid属性验证  168
16.3.3  在视图中显示模型验证错误  168
16.3.4  自定义模型验证错误消息  169
16.3.5  ASP.NET Core内置模型验证属性  169
16.3.6  显示属性  169
16.3.7  使用多个模型验证属性  170
16.3.8  自定义模型验证错误的颜色  170
16.4  ASP.NET Core中的Select选择器验证  171
16.4.1  HTML页面中的选择列表  171
16.4.2  使选择列表成为必填  172
16.4.3  让选择列表成为真正的必需验证  173
16.5  深入了解依赖注入3种服务的不同  174
16.5.1  IStudentRepository接口  174
16.5.2  Student类  175
16.5.3  MockStudentRepository仓储服务  175
16.5.4  HomeController  176
16.5.5  创建学生信息  177
16.5.6  完善_ViewImports.cshtml  178
16.6  验证依赖注入服务  179
16.6.1  AddSingleton()方法  179
16.6.2  AddScoped()方法  180
16.6.3  AddTransient()方法  181
16.6.4  Scoped服务、 Transient服务与Singleton服务  181
16.7  小结  182
第  17章 EntityFramework Core数据访问与仓储模式  183
17.1  为什么要使用ORM  183
17.1.1  EF Core Code First模式  184
17.1.2  EF Core Database First模式  185
17.1.3  EF Core所支持的数据库  185
17.2  单层Web应用和多层Web应用的区别  186
17.2.1  单层Web应用  186
17.2.2  多层Web应用程序——三层架构  187
17.2.3  多层Web应用程序——领域驱动设计架构  188
17.3  Microsoft.AspNetCore.App包  190
17.4  安装Entity Framework Core  192
17.4.1  在类库项目中安装NuGet包  193
17.4.2  Entity Framework Core中的DbContext  194
17.4.3  在应用程序中使用DbContext  194
17.4.4  Entity Framework Core中的DbSet  195
17.5  在Entity Framework Core中使用SQL Server  195
17.5.1  AddDbContext()和AddDbContextPool()方法之间的区别  196
17.5.2  UseSqlServer()扩展方法  196
17.5.3  ASP.NET Core中的数据库连接字符串  196
17.6  ASP.NET Core中的仓储模式  197
17.6.1  仓储模式简介  197
17.6.2  仓储模式中的接口  198
17.6.3  修改IStudentRepository接口  198
17.6.4  仓储模式中的内存实现  199
17.6.5  Repository模式——SQL Server数据库实现  201
17.6.6  选择合适的仓储实现模式  202
17.6.7  仓储模式的优点  203
17.7  Entity Framework Core迁移功能  203
17.7.1  EF Core中的迁移  204
17.7.2  常用的Entity Framework Core迁移命令  205
17.7.3  在Entity Framework Core中创建迁移  205
17.7.4  在Entity Framework Core中更新数据库  206
17.7.5  Entity Framework Core中的种子数据  207
17.7.6  如何启用种子数据  207
17.7.7  更改现有的数据库种子数据  209
17.7.8  DbContext类保持“干净”  210
17.8  在ASP.NET Core中同步领域模型与数据库架构  211
17.8.1  给学生增加头像字段  211
17.8.2  Migrations文件夹中的文件说明  212
17.8.3  _EFMigrationsHistory表的使用  212
17.8.4  如何删除已应用的迁移记录  212
17.8.5  删除已应用于数据库的迁移  213
17.9  小结  213
第  18章 学生头像上传与信息修改  214
18.1  修改Student模型类  215
18.1.1  视图模型——StudentCreateViewModel  215
18.1.2  更新Create视图中的代码  216
18.1.3  更新Create()操作方法的代码  219
18.1.4  学生详情视图页面代码  220
18.1.5  学生列表视图页面代码  221
18.2  在ASP.NET Core MVC中完成上传多个文件  222
18.2.1  StudentCreateViewModel文件  223
18.2.2  更新Create视图的代码  223
18.2.3  修改Create()操作方法  226
18.3  ASP.NET Core中的学生编辑视图  228
18.3.1  导航到编辑视图  228
18.3.2  编辑视图模型  229
18.3.3  Edit() 操作方法  230
18.3.4  编辑视图页面  230
18.3.5  完成HttpPost的Edit()操作方法  232
18.4  枚举的扩展方法实现  235
18.5  小结  237
第  19章 404错误页与异常拦截  238
19.1  HTTP状态码中的4××和5××  238
19.1.1  ASP.NET Core中的404错误  239
19.1.2  404错误信息的视图代码  239
19.2  统一处理ASP.NET Core中的404错误  240
19.2.1  404错误的类型  241
19.2.2  ASP.NET Core中的404错误示例  241
19.3  处理失败的HTTP状态码  242
19.3.1  UseStatusCodePages中间件  242
19.3.2  UseStatusCodePagesWithRedirects中间件  243
19.3.3  添加ErrorController  244
19.3.4  添加NotFound视图  245
19.4  UseStatusCodePagesWithRedirects与UseStatusCodePagesWithReExecute  245
19.4.1  UseStatusCodePagesWithRedirects中间件说明  246
19.4.2  UseStatusCodePagesWithRedirects请求处理流程  246
19.4.3  使用UseStatusCodePagesWithReExecute请求处理流程  247
19.5  ASP.NET Core中的全局异常处理  249
19.5.1  ASP.NET Core中的UseDeveloperExceptionPage中间件  249
19.5.2  ASP.NET Core中的非开发环境异常信息  250
19.5.3  ASP.NET Core中的异常处理  251
19.5.4  调整Edit()方法中的错误视图  253
19.6  小结  255
第  20章 ASP.NET Core中的日志记录  256
20.1  ASP.NET Core中的默认日志  256
20.2  ASP.NET Core中的日志记录提供程序  257
20.2.1  ASP.NET Core内置日志记录提供程序  257
20.2.2  ASP.NET Core的第三方日志记录提供程序  258
20.2.3  ASP.NET Core中默认的日志记录提供程序  258
20.2.4  appsettings.json文件中的LogLevel  259
20.3  在ASP.NET Core中实现记录异常信息  261
20.3.1  Error和NotFound视图修改  262
20.3.2  在ASP.NET Core中记录异常信息  263
20.3.3  在ASP.NET Core中使用NLog记录信息到文件中  267
20.3.4  在ASP.NET Core中使用NLog  267
20.4  在ASP.NET Core中LogLevel配置及过滤日志信息  270
20.4.1  日志等级LogLevel枚举  270
20.4.2  ILogger方法  271
20.4.3  在ASP.NET Core中使用日志过滤  272
20.4.4  按日志类别(Log Category)和日志记录提供程序进行日志筛选  275
20.4.5  特定环境变量中appsettings.json文件的LogLevel配置  277
20.5  小结  277
第三部分
第  21章 从零开始学ASP.NET Core Identity框架  280
21.1  ASP.NET Core Identity介绍  280
21.2  使用ASP.NET Core Identity注册新用户  283
21.2.1  RegisterViewModel视图模型  284
21.2.2  账户控制器  284
21.2.3  注册视图中的代码  285
21.2.4  添加注册按钮  286
21.3  UserManager和SignInManager服务  286
21.3.1  ASP.NET Core Identity中对密码复杂度的处理  288
21.3.2  ASP.NET Core Identity密码默认设置  289
21.3.3  覆盖ASP.NET Core身份中的密码默认设置  290
21.3.4  修改中文提示的错误信息  291
21.4  登录状态及注销功能的实现  294
21.5  ASP.NET Core Identity中的登录功能实现  295
21.5.1  LoginViewModel登录视图模型  295
21.5.2  登录视图的代码  296
21.5.3  AccountController中的Login()操作方法  297
21.5.4  会话Cookie与持久性Cookie  298
21.6  小结  299
第  22章 授权与验证的关系  300
22.1  ASP.NET Core中的Authorize属性  300
22.1.1  Authorize属性示例  300
22.1.2  ASP.NET Core中的AllowAnonymous属性  301
22.1.3  全局应用Authorize属性  302
22.2  登录后重定向到指定URL  303
22.2.1  ASP.NET Core中的ReturnUrl  303
22.2.2  ReturnUrl查询字符串示例  303
22.2.3  登录后重定向到ReturnUrl  304
22.3  开放式重定向攻击  305
22.3.1  什么是开放式重定向漏洞  305
22.3.2  开放式重定向漏洞示例  305
22.4  ASP.NET Core中的客户端验证  307
22.4.1  服务器端验证示例  307
22.4.2  客户端验证  308
22.4.3  什么是客户端隐式验证  310
22.4.4  客户端验证如何在ASP.NET Core中工作  311
22.4.5  隐式验证在ASP.NET Core中失效  312
22.5  在ASP.NET Core中进行远程验证  312
22.5.1  远程验证示例  313
22.5.2  ASP.NET Core远程属性  314
22.5.3  ASP.NET Core Ajax失效  315
22.6  ASP.NET Core中的自定义验证属性  315
22.6.1  自定义验证属性示例  315
22.6.2  在ASP.NET Core中使用自定义验证属性  316
22.7  小结  317
第  23章 角色管理与用户扩展  318
23.1  扩展IdentityUser类  319
23.1.1  修改AppDbContext中的参数  321
23.1.2  生成新迁移记录向AspNetUsers表中添加字段  321
23.1.3  在AspNetUsers表中保存自定义数据  322
23.1.4  AccountController类中Register()操作方法的修改  323
23.1.5  AllowAnonymous匿名属性的使用  324
23.2  ASP.NET Core中的角色管理  324
23.2.1  ASP.NET Core中的RoleManager  324
23.2.2  在AdminController中添加创建新角色的代码  325
23.2.3  创建角色视图模型  326
23.2.4  创建角色视图  326
23.3  在ASP.NET Core中显示所有角色列表  328
23.4  编辑ASP.NET Core中的角色  331
23.4.1  编辑角色视图模型  332
23.4.2  编辑角色操作方法  333
23.4.3  编辑角色视图  335
23.5  角色管理中的用户关联关系  338
23.5.1  Identity中的AspNetUserRoles数据库表关联关系  339
23.5.2  EditUsersInRole的HttpGet操作方法  339
23.5.3  EditUsersInRole的HttpPost操作方法  340
23.5.4  EditUsersInRole视图  341
23.6  小结  343
第  24章 角色授权与用户管理  344
24.1  基于角色的授权  344
24.1.1  授权属性的多个实例  345
24.1.2  基于角色授权的控制器操作方法  345
24.2  添加授权中间件UseAuthorization  346
24.3  在菜单栏上显示或隐藏管理  347
24.4  ASP.NET Core Identity中的拒绝访问功能  348
24.4.1  AccessDenied()操作方法  348
24.4.2  AccessDenied视图代码  349
24.5  获取Identity中的用户列表  349
24.5.1  UserManager服务的用户访问  350
24.5.2  ASP.NET Core列表用户视图  351
24.5.3  管理导航菜单  353
24.5.4  修改Register()方法  354
24.5.5  下拉菜单功能失效  355
24.6  编辑Identity中的用户  355
24.6.1  编辑用户视图  355
24.6.2  EditUser()的操作方法  356
24.6.3  EditUser视图文件  358
24.7  NotFound视图异常  360
24.8  Identity中删除的用户功能  362
24.8.1  使用GET请求删除数据  362
24.8.2  使用POST请求删除数据  362
24.8.3  DeleteUser()方法  363
24.9  ASP.NET Core中的确认删除功能  364
24.9.1  浏览器确认对话框  364
24.9.2  是和否删除按钮  364
24.9.3  将confirmDelete()方法添加到视图中  366
24.10  删除ASP.NET CoreIdentity中的角色  367
24.11  小结  369
第  25章 EF Core中的数据完整性约束  370
25.1  EF Core中的数据完整性约束  370
25.2  优化生产环境中的自定义错误视图  374
25.2.1  ErrorController类  376
25.2.2  优化Error.cshtml  376
25.3  小结  378
第  26章 ASP.NET Core中的声明授权  379
26.1  Identity中的用户角色  379
26.1.1  视图模型  380
26.1.2  ManageUserRoles()方法  380
26.1.3  ManageUserRoles视图文件  382
26.2  启用MARS与模型绑定失效  383
26.2.1  为什么不使用foreach  384
26.2.2  for循环与foreach循环的异同点  387
26.3  声明授权  388
26.3.1  ClaimsStore与UserClaimsViewModel类  388
26.3.2  ManageUserClaims()操作方法  389
26.3.3  ManageUserClaims视图文件  391
26.4  小结  393
第  27章 RBAC与CABC  394
27.1  RBAC  394
27.2  CBAC  395
27.3  角色与策略的结合  396
27.4  在MVC视图中进行角色与声明授权  397
27.5  AccessDenied视图的路由配置修改  399
27.6  策略授权中的ClaimType和ClaimValue  402
27.7  使用委托创建自定义策略授权  404
27.7.1  自定义复杂授权需求  406
27.7.2  自定义授权需求和处理程序  407
27.7.3  自定义需求的授权处理程序示例  408
27.7.4  多个自定义授权处理程序  411
27.8  小结  413
第  28章 Identity的账户中心的设计  414
28.1  第三方登录身份提供商  414
28.1.1  第三方登录身份提供商如何在ASP.NET Core中工作  415
28.1.2  创建Azure OAuth凭据--——客户端ID和客户端密钥  416
28.1.3  在ASP.NET Core中启用Microsoft身份验证  418
28.1.4  集成GitHub身份验证登录  425
28.2  用户机密  429
28.3  验证账户信息安全  430
28.3.1  验证电子邮箱的好处  431
28.3.2  阻止登录未验证的用户登录  431
28.3.3  电子邮箱确认令牌  435
28.3.4  第三方登录的电子邮箱确认令牌  439
28.3.5  激活用户邮箱  442
28.4  忘记密码功能  444
28.5  重置密码功能  446
28.6  小结  449
第  29章 解析部分ASP.NET Core Identity源代码  450
29.1  解析ASP.NET Core Identity中Token的生成与验证  450
29.2  自定义令牌类型及令牌有效期  454
29.3  ASP.NET Core中Data Protection的加密和解密示例  456
29.4  在ASP.NET Core中添加更改密码功能  461
29.5  为第三方账户添加密码  464
29.6  ASP.NET Core中的账户锁定  468
29.7  小结  472
第四部分
第30章  架构  474
30.1  架构简介  474
30.2  学校管理系统架构设计  475
30.3  EntityFramework Core中的实体关系  476
30.4  当前架构  480
30.5  小结  481
第31章  仓储模式的最佳实践  482
31.1  泛型仓储的实现  482
31.2  异步编码与同步编码  483
31.3  IRepository接口的设计实现  484
31.4  RepositoryBase仓储代码的实现  489
31.5  小结  495
第32章  重构学生管理功能  496
32.1  修改HomeController中的代码  496
32.2  学生列表排序功能  505
32.3  模糊查询  507
32.4  一个简单分页的实现  509
32.5  小结  514
第33章  课程列表与分组统计功能  515
33.1  泛型分页  515
33.2  迁移数据信息  521
33.3  课程列表  526
33.4  分部视图  530
33.5  学生统计信息  532
33.6  Razor条件运行时编译  534
33.7  小结  535
第34章  复杂数据类型及自动依赖注入  536
34.1  创建相关实体信息  537
34.1.1  修改Course实体信息  538
34.1.2  创建学院与调整学生课程信息  539
34.2  更新数据库上下文及初始化内容  542
34.3  服务之间的自动注册  552
34.4  小结  555
第35章  课程与教师的CRUD  556
35.1  EF Core中预加载的使用  556
35.2  较为复杂的预加载的使用  558
35.3  编辑课程功能  569
35.3.1  编辑课程信息  572
35.3.2  课程信息的详情页  575
35.3.3  删除课程信息  577
35.4  编辑教师功能  578
35.4.1  添加教师信息  583
35.4.2  删除教师信息  586
35.5  优化目录结构  587
35.6  小结  588
第36章  处理并发冲突  589
36.1  并发冲突  589
36.1.1  悲观并发(悲观锁)  590
36.1.2  乐观并发(乐观锁)  591
36.2  添加Department的相关类  591
36.2.1  添加DepartmentsService  592
36.2.2  学院列表功能  593
36.2.3  添加详情视图  597
36.2.4  编辑学院信息功能  602
36.3  EF Core中的并发控制  605
36.4  小结  609
第37章  EF Core中的继承与原生SQL语句使用  610
37.1  继承  610
37.1.1  实现TPH继承  611
37.1.2  执行数据库迁移  613
37.2  执行原生SQL语句  614
37.2.1  DbSet.FromSqlRaw的使用  614
37.2.2  Database.ExecuteSqlComma的使用  615
37.2.3  执行原生SQL语句实现更新  616
37.3  小结  619
第38章  EF Core 中的数据加载与关系映射  620
38.1  EF Core中的数据加载  620
38.1.1  显式加载  620
38.1.2  延迟加载  621
38.1.3  3种加载形式的性能区别  623
38.2  Fluent API与数据注释  624
38.3  Entity Framework Core中的Code First关系映射约定  625
38.3.1  一对一关联关系  626
38.3.2  一对多关联关系  627
38.3.3  多对多关联关系  631
38.4  小结  632
第五部分
第39章  ASP.NET Core中的Web API  634
39.1  IoT与RESTful服务  634
39.2  添加Web API服务  635
39.3  安装Postman并调试Web API服务  639
39.3.1  测试POST请求  639
39.3.2  测试GET请求  640
39.3.3  测试PutTodoItem()方法  642
39.3.4  测试DeleteTodoItem()方法  644
39.3.5  404和400异常  644
39.4  图形可视化的Web API帮助页  646
39.4.1  Swagger/OpenAPI  646
39.4.2  Swashbuckle.AspNetCore入门  646
39.4.3  添加并配置Swagger中间件  647
39.4.4  获取swagger.json失败  648
39.4.5  调试Swagger UI  650
39.4.6  调用SwaggerGen API  654
39.5  小结  657
第40章  实践多层架构体系  658
40.1  领域驱动设计的分层结构  658
40.2  重构MockSchoolManagement项目  659
40.2.1  添加所需类库  661
40.2.2  添加依赖引用关系  662
40.3  迁移各类库  663
40.3.1  各个项目文件中的引用  664
40.3.2  类库效果图  665
40.3.3  多程序集的依赖注入  667
40.3.4  重新生成迁移记录及生成SQL脚本  668
40.4  小结  669
第41章  部署与发布  670
41.1  部署至IIS  670
41.1.1  IIS的安装和配置  670
41.1.2  安装ASP.NET Core托管模块  672
41.1.3  启用Web Deploy  672
41.1.4  创建IIS站点  675
41.1.5  使用Visual Studio将ASP.NET Core发布到IIS站点  676
41.2  部署至Ubuntu  678
41.2.1  Ubuntu中安装.NET Core  679
41.2.2  安装Nginx  679
41.2.3  编译与发布  680
41.3  在Docker中调试运行ASP.NET Core  682
41.3.1  安装Docker  682
41.3.2  添加Dockerfile文件  683
41.4  云原生Azure Web App  685
41.5  小结  689
第42章  ASP.NET Core 2.2到ASP. NET Core 3.1的迁移指南  690
42.1  升级至ASP.NET Core 3.1  690
42.1.1  修改项目启动  692
42.1.2  修改Startup  693
42.2  迁移升级后的看法  693
42.3  Visual Studio 2019插件推荐  694
42.4  小结  696

商品参数
基本信息
出版社 人民邮电出版社
ISBN 9787115541093
条码 9787115541093
编者 梁桐铭
译者 --
出版年月 2020-09-01 00:00:00.0
开本 16开
装帧 平装
页数 696
字数 1036
版次 1
印次 1
纸张
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]