新書推薦:
《
一个经济杀手的自白 第3版
》
售價:HK$
110.9
《
8秒按压告别疼痛
》
售價:HK$
87.4
《
津巴多时间心理学:挣脱束缚、改写命运的6种时间观
》
售價:HK$
77.3
《
大英博物馆东南亚简史
》
售價:HK$
177.0
《
纯粹·我只要少许
》
售價:HK$
80.6
《
投机苦旅:一位投机客的凤凰涅槃
》
售價:HK$
88.5
《
重返马赛渔场:社会规范与私人治理的局限
》
售價:HK$
69.4
《
日子慢慢向前,事事慢慢如愿
》
售價:HK$
55.8
|
編輯推薦: |
《ASP.NET Core 3高级编程(第8版)》针对ASP.NET Core 3做了全面更新,是你学习ASP.NET Core应用开发的理想选择。
专业开发人员想为ASP.NET Core平台生成更简洁的应用程序,本书就是为这些人员量身定做的。这个新版本介绍ASP.NET Core 3,深入研究构建全新的、可扩展的Web应用程序所需的工具和技术,讲述MVC 3、Razor Pages、Blazor Server和Blazor WebAssembly等新功能,演示如何在实践中运用它们。
Adam Freeman沿用了前几版中流行的格式和风格,解释如何更大限度地利用ASP.NET Core 3。层层剖析,向读者介绍中间件组件、内置服务、请求模型绑定等。接着介绍较复杂的主题和高级功能,包括端点路由和依赖注入。
本书是为想将ASP.NET Core 3的全新功能合并到项目的专业人士撰写的。本书可用作
ASP.NET Core的完备参考资料,了解一些微软Web开发背景知识的初学者也将极大地从本书中获益。
|
內容簡介: |
本书内容
● 介绍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
|
內容試閱:
|
译 者 序
ASP.NET Core是一款由微软创建的,用于构建Web应用、API、微服务的Web框架。它使用常见的模式,如MVC(Model-View-Controller)、依赖注入和一个由中间件构成的请求处理管道。ASP.NET Core是重新设计的ASP.NET 4.x,更改了体系结构,形成了更精简的模块化框架。
ASP.NET Core运行在微软的.NET运行时库上,有几种语言(C#、Visual Basic和F#)可用来编写ASP.NET Core程序。C#是常见的选择,可在Windows、macOS和Linux上构建并运行 ASP.NET Core应用。
为什么要用ASP.NET Core开发应用程序?现存的Web框架选项已经很多了,如Node/Express、Spring、Ruby on Rails、Django、Laravel等,数不胜数。ASP.NET Core具有如下优点。
● 快速:因为.NET Core是编译运行的,执行速度远高于解释执行的语言,如JavaScript或Ruby,ASP.NET Core也已为多线程和异步任务做了专门优化。与使用 Node.js 写的代码相比,执行速度高出5~10倍是很正常的。
● 生态:在NuGet(.NET的包管理系统,如NPM、RubyGems或Maven)中有成千上万的软件包。有现成的包可用来完成JSON反序列化、数据库连接、PDF生成等。
● 安全:通过ASP.NET Core,开发者可轻松配置和管理应用的安全性。ASP.NET Core的功能包括管理身份验证、授权、数据保护、HTTPS强制、应用机密、请求防伪保护及CORS管理。 通过这些安全功能,可生成安全可靠的ASP.NET Core应用。
● 跨平台:能在Windows、macOS和Linux上开发和运行。
● 开源:出现问题时,可阅读其源代码,来获取解决问题的方法。
《ASP.NET Core 3高级编程(第8版)》深入浅出地介绍ASP.NET Core基础及实战等方面的知识,共分4个部分。第Ⅰ部分介绍ASP.NET Core。除了设置开发环境和创建个应用程序外,还介绍对ASP.NET Core开发重要的C#特性和如何使用ASP.NET Core开发工具。第Ⅱ部分描述ASP.NET Core平台的主要特性,解释如何处理HTTP请求,如何创建和使用中间件组件,如何创建路由,如何定义和使用服务,以及如何与Entity Framework Core一起工作。第Ⅲ部分解释如何创建不同类型的应用程序,包括RESTful Web服务以及使用控制器和Razor Pages的HTML应用程序。第Ⅳ部分解释如何使用Blazor服务器创建应用程序,如何使用实验性的Blazor WebAssembly,以及如何使用ASP.NET Core验证用户身份和授予访问权限。
《ASP.NET Core 3高级编程(第8版)》对于任何一名C#开发者来说都是一本宝贵的指导书。书中所涉及的对于代码设计的实用建议是非常宝贵的。高效率的.NET开发者需要对他所选择的语言有很深的理解。《ASP.NET Core 3高级编程(第8版)》作者以令人惊叹的能力,把极其复杂的问题拆解为可消化的、易理解的一个个小问题,进行合理探讨,以一定的洞察力将知识传授给读者,并教给读者如何书写实践性强、干净简单且更容易理解的代码。无论是C#新手还是资深开发者,都能通过阅读《ASP.NET Core 3高级编程(第8版)》而有所收获。
《ASP.NET Core 3高级编程(第8版)》文字简洁明快、流畅,既适合初学者及具有.NET基础的开发者阅读,还可作为大中专院校计算机、通信、电子信息、自动化等相关专业的教材;也可供软件项目管理人员、开发团队成员学习参考。
这里要感谢清华大学出版社的编辑,他们为《ASP.NET Core 3高级编程(第8版)》的翻译投入了巨大热情并付出了很多心血。没有他们的帮助和鼓励,《ASP.NET Core 3高级编程(第8版)》不可能顺利付梓。
对于这本经典之作,译者本着“诚惶诚恐”的态度,在翻译过程中力求“信、达、雅”,但鉴于译者水平有限,失误在所难免,如果你有任何意见和建议,欢迎指正。
|
|