书籍详情

ASP.NET Core 3高级编程(第8版)

ASP.NET Core 3高级编程(第8版)

作者:[英] 亚当·弗里曼(Adam Freeman)著 杜静芬 程凤娟译

出版社:清华大学出版社

出版时间:2021-07-01

ISBN:9787302582717

定价:¥268.00

购买这本书可以去
内容简介
  本书内容● 介绍ASP.NET Core技能集,为你使用整个ASP.NET Core平台打下坚实基础● 在开发环境中应用ASP.NET Core 3功能,介绍丰富的可重用模板● 查看如何创建RESTful Web服务、Web应用程序和客户端应用程序● 运用现有知识高效地启动和运行新的编程模型
作者简介
  Adam Freeman是一位经验丰富的IT专业人士,曾在多家公司担任高级职位,后担任一家全球银行的首席技术官和首席运营官。现在退休了,他把时间花在写作和长跑上。
目录
第I部分  介绍ASP.NET Core
第1章  ASP.NET Core上下文   3
1.1  了解ASP.NET Core   3
1.1.1  理解应用程序框架   3
1.1.2  理解实用程序框架   5
1.1.3  了解ASP.NET Core平台   5
1.2  理解本书   5
1.2.1  需要什么软件来完成示例?   6
1.2.2  需要什么平台来完成示例?   6
1.2.3  源代码下载   6
1.2.4  如果在执行这些示例时遇到问题,怎么办?   6
1.2.5  如果发现书中有错误,怎么办?   6
1.2.6  本书包含的内容   6
1.2.7  本书未包含的内容   7
1.2.8  如何联系作者?   7
1.2.9  如果你真的喜欢本书?   8
1.2.10  如果本书让人生气,想要抱怨该怎么办?   8
1.3  小结   8
第2章  入门   9
2.1  选择代码编辑器   9
2.1.1  安装Visual Studio   10
2.1.2  安装Visual Studio Code   12
2.2  创建ASP.NET Core项目   16
2.2.1  用Visual Studio打开项目   16
2.2.2  用Visual Studio Code打开项目   17
2.3  运行ASP.NET Core应用程序   18
2.3.1  理解端点   20
2.3.2  了解路由   21
2.3.3  理解HTML渲染   22
2.3.4  内容综述   26
2.4  小结   26
第3章  个ASP.NET Core应用程序   27
3.1  设置场景   27
3.2  创建项目   27
3.2.1  添加数据模型   29
3.2.2  创建第二个操作和视图   29
3.2.3  连接操作方法   31
3.2.4  构建表单   32
3.2.5  接收表单数据   34
3.2.6  添加Thanks视图   36
3.2.7  显示响应   37
3.2.8  添加验证   39
3.2.9  内容的样式化   44
3.3  小结   49
第4章  使用开发工具   51
4.1  创建ASP.NET Core项目   51
4.1.1  使用命令行创建项目   52
4.1.2  使用Visual Studio创建项目   54
4.2  向项目中添加代码和内容   57
4.3  构建和运行项目   59
4.3.1  使用命令行构建和运行项目   60
4.3.2  使用Visual Studio Code构建和运行项目   60
4.3.3  使用Visual Studio构建和运行项目   60
4.4  管理包   61
4.4.1管理NuGet包   61
4.4.2  管理工具包   62
4.4.3  管理客户端包   63
4.4.4  使用Visual Studio管理包   64
4.4.5  使用Visual Studio管理客户端包   65
4.5  调试项目   65
4.6  小结   66
第5章  C#的基本特点   67
5.1  准备工作   67
5.1.1  打开项目   68
5.1.2  启用MVC框架   68
5.1.3  创建应用程序组件   69
5.1.4  选择HTTP端口   70
5.1.5  运行示例应用程序   71
5.2  使用null条件运算符   71
5.2.1  链接null条件运算符   72
5.2.2  结合条件运算符和合并运算符   74
5.3  使用自动实现的属性   76
5.3.1  使用自动实现的属性初始化器   77
5.3.2  创建自动实现的只读属性   77
5.4  使用字符串插值   79
5.5  使用对象和集合初始化器   80
5.6  模式匹配   82
5.7  使用扩展方法   84
5.7.1  将扩展方法应用到接口   86
5.7.2  创建过滤扩展方法   88
5.8  使用lambda表达式   89
5.8.1  定义函数   91
5.8.2  使用lambda表达式方法和属性   94
5.9  使用类型推断和匿名类型   96
5.10  在接口中使用默认实现   98
5.11  使用异步方法   101
5.11.1  直接处理任务   101
5.11.2  应用async和await关键字   102
5.11.3  使用异步枚举   104
5.12  获取名称   107
5.13  小结   109
第6章  测试ASP.NET Core应用程序   111
6.1  准备工作   112
6.1.1  打开项目   112
6.1.2  选择HTTP端口   112
6.1.3  启用MVC框架   113
6.1.4 创建应用程序组件   113
6.1.5  运行示例应用程序   115
6.2  创建单元测试项目   115
6.3  编写和运行单元测试   116
6.3.1  使用Visual Studio Test Explorer运行测试   118
6.3.2  使用Visual Studio Code运行测试   119
6.3.3  从命令行运行测试   119
6.3.4  纠正单元测试   120
6.3.5  为单元测试隔离组件   121
6.3.6  使用模拟包   126
6.3.7  创建模拟对象   126
6.4  小结   128
第7章  SportsStore:一个真正的应用程序   129
7.1  创建项目   130
7.1.1  创建单元测试项目   130
7.1.2  创建应用程序项目文件夹   130
7.1.3  打开项目   131
7.1.4  准备应用程序服务和请求管道   132
7.1.5  配置Razor视图引擎   133
7.1.6  创建控制器和视图   134
7.1.7  启动数据模型   135
7.1.8  检查和运行应用程序   135
7.2  向应用程序添加数据   136
7.2.1  安装Entity Framework Core包   136
7.2.2  定义连接字符串   136
7.2.3  创建数据库上下文类   137
7.2.4  配置Entity Framework Core   138
7.2.5  创建存储库   139
7.2.6  创建数据库迁移   141
7.2.7  创建种子数据   142
7.3  显示产品列表   145
7.3.1  准备控制器   145
7.3.2  更新视图   147
7.3.3  运行应用程序   148
7.4  添加分页   148
7.4.1  显示页面的链接   150
7.4.2  改善URL   158
7.5  内容的样式化   160
7.5.1  安装Bootstrap包   161
7.5.2  应用Bootstrap风格   161
7.5.3  创建部分视图   164
7.6  小结   165
第8章  SportsStore:导航和购物车   167
8.1  添加导航控件   167
8.1.1  筛选产品列表   167
8.1.2  优化URL方案   172
8.1.3  构建一个类别导航菜单   176
8.1.4  更正页数   183
8.2  构建购物车   186
8.2.1  配置Razor Pages   186
8.2.2  创建Razor Pages   189
8.2.3  创建Add To Cart按钮   189
8.2.4  启用会话   191
8.2.5  实现购物车功能   193
8.3  小结   203
第9章  SportsStore:完成购物车   205
9.1  使用服务改进Cart模型   205
9.1.1  创建支持存储的Cart类   205
9.1.2  注册服务   207
9.1.3  简化购物车Razor Pages   209
9.2  完成购物车的功能   211
9.2.1  从购物车中删除商品   211
9.2.2  添加购物车摘要小部件   214
9.3  提交订单   217
9.3.1  创建模型类   217
9.3.2  添加付款过程   218
9.3.3  创建控制器和视图   218
9.3.4  实现订单处理   221
9.3.5  完成订单控制器   224
9.3.6  显示验证错误   227
9.3.7  显示摘要页面   229
9.4  小结   230
第10章  SportsStore:管理   231
10.1  准备Blazor服务器   231
10.1.1  创建导入文件   233
10.1.2  创建Startup Razor Pages   233
10.1.3  创建路由和布局组件   234
10.1.4  创建Razor组件   235
10.1.5  检查Blazor的设置   235
10.2  管理订单   236
10.2.1  增强模型   236
10.2.2  向管理员显示订单   238
10.3  添加目录管理   241
10.3.1  扩展存储库   241
10.3.2  将验证属性应用到数据模型   242
10.3.3  创建列表组件   243
10.3.4  创建细节组件   245
10.3.5  创建编辑器组件   246
10.3.6  删除产品   249
10.4  小结   251
第11章  SportsStore:安全与部署   253
11.1  确保管理功能的安全   253
11.1.1  创建身份数据库   253
11.1.2  添加常规的管理特性   259
11.1.3  应用基本授权策略   260
11.1.4  创建账户控制器和视图   262
11.1.5  测试安全策略   266
11.2  准备进行部署   266
11.2.1  配置错误的处理   266
11.2.2  创建生产配置设置   268
11.2.3  创建Docker映像   268
11.2.4  运行容器化应用程序   271
11.3  小结   272
第II部分  ASP.NET Core平台
第12章  了解ASP.NET Core平台   275
12.1  准备工作   276
12.2  了解ASP.NET Core平台   277
12.2.1  理解中间件和请求管道   277
12.2.2  了解服务   277
12.3  了解ASP.NET Core项目   278
12.3.1  理解入口点   279
12.3.2  理解Startup类   280
12.3.3  理解项目文件   281
12.4  创建自定义中间件   283
12.4.1  使用类定义中间件   286
12.4.2  理解返回管道路径   289
12.4.3  请求管道短路   290
12.4.4  创建管道分支   292
12.4.5  创建终端中间件   294
12.5  配置中间件   297
12.6  小结   301
第13章  使用URL路由   303
13.1  准备工作   304
13.1.1  理解URL路由   307
13.1.2  添加路由中间件、定义端点   307
13.1.3  理解URL模式   310
13.1.4  在URL模式中使用段变量   311
13.1.5  从路由中生成URL   315
13.2  管理URL的匹配   319
13.2.1  从一个URL段匹配多个值   319
13.2.2  为段变量使用默认值   320
13.2.3  在URL模式中使用可选段   321
13.2.4  使用catchall段变量   323
13.2.5  约束段的匹配   324
13.2.6  定义回退路由   327
13.3  高级路由功能   328
13.3.1  创建自定义约束   328
13.3.2  避免模棱两可的路由异常   330
13.3.3  访问中间件组件中的端点   332
13.4  小结   334
第14章  使用依赖注入   335
14.1  为本章做准备   336
14.1.1  创建中间件组件和端点   337
14.1.2  配置请求管道   338
14.2  理解服务位置和紧密耦合   339
14.2.1  理解服务位置问题   340
14.2.2  理解紧密耦合组件的问题   342
14.3  使用依赖注入   344
14.3.1  在中间件类中使用服务   346
14.3.2  在端点中使用服务   347
14.4  使用服务生命周期   352
14.4.1  创建临时服务   353
14.4.2  避免临时服务重用陷阱   354
14.4.3  使用有作用域的服务   357
14.5  其他依赖注入特性   363
14.5.1  创建依赖关系链   363
14.5.2  访问ConfigureServices方法中的服务   365
14.5.3  使用服务工厂函数   366
14.5.4  创建具有多个实现的服务   367
14.5.5  在服务中使用未绑定类型   370
14.6  小结   372
第15章  使用平台特性(第1部分)   373
15.1  准备工作   374
15.2  使用配置服务   375
15.2.1  理解特定于环境的配置文件   376
15.2.2  访问配置设置   377
15.2.3  在服务中使用配置数据   378
15.2.4  理解启动设置文件   381
15.2.5  确定启动类中的环境   387
15.2.6  存储用户的秘密   388
15.3  使用日志服务   392
15.3.1  生成日志消息   392
15.3.2  配置小日志级别   395
15.4  使用静态内容和客户端包   397
15.4.1  添加静态内容中间件   397
15.4.2  使用客户端包   401
15.5  小结   404
第16章  使用平台特性(第2部分)   405
16.1  准备工作   405
16.2  使用cookie   406
16.2.1  启用cookie consent检查   409
16.2.2  管理cookie consent   411
16.3  使用会话   413
16.3.1  配置会话服务和中间件   413
16.3.2  使用会话数据   415
16.4  使用HTTPS连接   417
16.4.1  启用HTTP连接   417
16.4.2  检测HTTPS请求   419
16.4.3  执行HTTPS请求   420
16.4.4  启用HTTP严格传输安全性   422
16.5  处理异常和错误   425
16.5.1  返回HTML错误响应   427
16.5.2  富集状态码响应   429
16.6  使用Host头过滤请求   431
16.7  小结   433
第17章  处理数据   435
17.1  准备工作   436
17.2  缓存数据   438
17.2.1  缓存数据值   440
17.2.2  使用共享和持久的数据缓存   443
17.3  缓存响应   447
17.4  使用Entity Framework Core   449
17.4.1  安装Entity Framework Core   450
17.4.2  创建数据模型   451
17.4.3  配置数据库服务   452
17.4.4  创建和应用数据库迁移   453
17.4.5  播种数据库   454
17.4.6  在端点中使用数据   457
17.5  小结   460
第III部分  ASP.NET Core应用程序
第18章  创建示例项目   463
18.1  创建项目   463
18.2  添加数据模型   464
18.2.1  向项目中添加NuGet包   464
18.2.2  创建数据模型   464
18.2.3  准备种子数据   466
18.2.4  配置Entity Framework Core服务和中间件   467
18.2.5  创建和应用迁移   469
18.3  添加CSS框架   469
18.4  配置请求管道   470
18.5  运行示例应用程序   472
18.6  小结   472
第19章  创建RESTful Web服务   473
19.1  准备工作   474
19.2  理解RESTful Web服务   474
19.2.1  理解请求URL和方法   474
19.2.2  理解JSON   475
19.3  使用自定义端点创建Web服务   475
19.4  使用控制器创建Web服务   478
19.4.1  启用MVC框架   479
19.4.2  创建控制器   480
19.5  改进Web服务   489
19.5.1  使用异步操作   490
19.5.2  防止过度绑定   491
19.5.3  使用操作的结果   493
19.5.4  验证数据   499
19.5.5  应用API控制器属性   501
19.5.6  忽略Null属性   502
19.6  小结   505
第20章  高级Web服务特性   507
20.1  准备工作   507
20.1.1  删除数据库   508
20.1.2  运行示例应用程序   508
20.2  处理相关数据   509
20.3  支持HTTP Patch方法   512
20.3.1  理解JSON Patch   512
20.3.2  安装和配置JSON Patch包   513
20.3.3  定义操作方法   514
20.4  理解内容的格式化   515
20.4.1  理解默认的内容策略   515
20.4.2  理解内容协商   517
20.4.3  指定操作结果格式   521
20.4.4  在URL中请求格式   522
20.4.5  限制操作方法接收的格式   524
20.5  记录和探索Web服务   525
20.5.1  解决操作冲突   526
20.5.2  安装和配置Swashbuckle包   527
20.5.3  微调API描述   529
20.6  小结   533
第21章  使用控制器和视图
           (第1部分)   535
21.1  准备工作   536
21.1.1  删除数据库   537
21.1.2  运行示例应用程序   537
21.2  开始使用视图   538
21.2.1  配置应用程序   538
21.2.2  创建HTML控制器   539
21.2.3  创建Razor视图   542
21.2.4  通过名称选择视图   544
21.3  使用Razor视图   548
21.4  理解Razor语法   556
21.4.1  理解指令   556
21.4.2  理解内容表达式   557
21.4.3  设置元素内容   557
21.4.4  设置特性值   558
21.4.5  使用条件表达式   559
21.4.6  枚举序列   563
21.4.7  使用Razor代码块   565
21.5  小结   566
第22章  使用控制器和视图(第2部分)   567
22.1  准备工作   567
22.1.1  删除数据库   569
22.1.2  运行示例应用程序   569
22.2  使用ViewBag   570
22.3  使用临时数据   572
22.4  使用布局   574
22.4.1  使用ViewBag配置布局   576
22.4.2  使用ViewStart文件   578
22.4.3  覆盖默认布局   579
22.4.4  使用布局节   583
22.5  使用分部视图   590
22.5.1  启用分部视图   590
22.5.2  创建分部视图   590
22.5.3  应用分部视图   591
22.6  理解内容编码   594
22.6.1  理解HTML编码   594
22.6.2  理解JSON编码   596
22.7  小结   597
第23章  使用Razor Pages   599
23.1  准备工作   600
23.2  理解Razor Pages   601
23.2.1  配置Razor Pages   601
23.2.2  创建Razor Pages   603
23.3  理解Razor Pages的路由   607
23.3.1  在Razor Pages中指定路由模式   609
23.3.2  为Razor Pages添加路由   610
23.4  理解页面模型类   612
23.4.1  使用代码隐藏类文件   613
23.4.2  理解Razor Pages的操作结果   615
23.4.3  处理多个HTTP方法   619
23.4.4  选择处理程序方法   621
23.5  理解Razor Pages视图   623
23.5.1  为Razor Pages创建布局   623
23.5.2  在Razor Pages中使用分部视图   625
23.5.3  创建没有页面模型的Razor Pages   627
23.6  小结   628
第24章  使用视图组件   629
24.1  准备工作   629
24.1.1  删除数据库   632
24.1.2  运行示例应用程序   632
24.2  理解视图组件   633
24.3  创建和使用视图组件   633
24.4  理解视图组件的结果   637
24.4.1  返回一个分部视图   638
24.4.2  返回HTML片段   641
24.5  获取上下文数据   643
24.5.1  使用实参提供父视图的上下文   645
24.5.2  创建异步视图组件   648
24.6  创建视图组件类   649
24.7  小结   655
第25章  使用标签助手   657
25.1  准备工作   658
25.1.1  删除数据库   660
25.1.2  运行示例应用程序   660
25.2  创建标签助手   660
25.2.1  定义标签助手类   661
25.2.2  注册标签助手   663
25.2.3  使用标签助手   664
25.2.4  缩小标签助手的范围   665
25.2.5  扩展标签助手的范围   666
25.3  高级标签助手功能   668
25.3.1  创建快捷元素   668
25.3.2  以编程方式创建元素   671
25.3.3  追加、附加内容和元素   672
25.3.4  获取视图上下文数据   675
25.3.5  使用模型表达式   678
25.3.6  标签助手之间的协调   682
25.3.7  抑制输出元素   684
25.4  使用标签助手组件   686
25.4.1  创建标签助手组件   686
25.4.2  展开标签助手的元素选择   688
25.5  小结   690
第26章  使用内置的标签助手   691
26.1  准备工作   691
26.1.1  添加图像文件   693
26.1.2  安装客户端包   694
26.1.3  删除数据库   694
26.1.4  运行示例应用程序   694
26.2  启用内置的标签助手   695
26.3  改变锚元素   695
26.4  使用JavaScript和CSS标签助手   699
26.4.1  管理JavaScript文件   699
26.4.2  管理CSS样式表   706
26.5  处理图像元素   709
26.6  使用数据缓存   710
26.6.1  设置缓存到期时间   712
26.6.2  设置固定的过期点   713
26.6.3  设置后使用的有效期   713
26.6.4  使用缓存的变化   714
26.7  使用宿主环境标签助手   715
26.8  小结   716
第27章  使用表单标签助手   717
27.1  准备工作   717
27.1.1  删除数据库   719
27.1.2  运行示例应用程序   719
27.2  理解表单处理模式   720
27.2.1  创建控制器来处理表单   721
27.2.2  创建Razor Pages来处理表单   723
27.3  使用标签助手改进HTML表单   725
27.3.1  使用表单元素   725
27.3.2  改变表单按钮   727
27.4  处理input元素   728
27.4.1  转换input元素的类型属性   730
27.4.2  格式化input元素值   732
27.4.3  在input元素中显示相关数据的值   735
27.5  使用label元素   739
27.6  使用select和option元素   741
27.7  处理文本区域   745
27.8  使用防伪功能   746
27.8.1  在控制器中启用防伪功能   747
27.8.2  在Razor Pages中启用防伪功能   749
27.8.3  使用JavaScript客户端防伪令牌   750
27.9  小结   753
第28章  使用模型绑定   755
28.1  准备工作   756
28.1.1  删除数据库   757
28.1.2  运行示例应用程序   757
28.2  理解模型绑定   757
28.3  绑定简单数据类型   759
28.3.1  绑定Razor Pages中的简单数据类型   760
28.3.2  理解默认绑定值   762
28.4  绑定复杂类型   764
28.4.1  绑定到属性   766
28.4.2  绑定嵌套的复杂类型   768
28.4.3  选择性的绑定属性   772
28.5  绑定到数组和集合   775
28.5.1  绑定到数组   775
28.5.2  绑定到简单集合   778
28.5.3  绑定到字典   780
28.5.4  绑定到复杂类型的集合   781
28.6  指定模型绑定源   784
28.6.1  选择属性的绑定源   786
28.6.2  使用标头进行模型绑定   787
28.6.3  使用请求体作为绑定源   788
28.7  手动模式绑定   789
28.8  小结   791
第29章  使用模型验证   793
第39章  应用ASP.NET Core Identity   1109
39.1  验证用户的身份   1111
39.1.1  创建登录特性   1111
39.1.2  检查ASP.NET Core Identity cookie   1113
39.1.3  创建退出页面   1114
39.1.4  测试身份验证特性   1115
39.1.5  启用身份验证中间件   1116
39.2  对授权端点的访问   1118
39.2.1  应用授权属性   1118
39.2.2  启用授权中间件   1119
39.2.3  创建被拒绝访问的端点   1120
39.2.4  创建种子数据   1120
39.2.5  测试身份验证序列   1123
39.3  授权访问Blazor应用程序   1124
39.3.1  在Blazor组件中执行授权   1125
39.3.2  向授权用户显示内容   1127
39.4  对Web服务进行身份验证和授权   1129
39.4.1  构建简单的JavaScript客户端   1132
39.4.2  限制对Web服务的访问   1134
39.4.3  使用cookie验证   1135
39.4.4  使用令牌认证   1138
39.4.5  创建令牌   1139
39.4.6  用令牌验证   1141
39.4.7  使用令牌限制访问   1144
39.4.8  使用令牌请求数据   1145
39.5  小结   1147
猜您喜欢

读书导航