首页>参考读物>计算机科学与技术>软件与程序设计

ASP.NET Core 3从入门到实战
作者 : 校宝在线 肖伟宇 翁琳鼎 王斌 厉红兵 编著
出版日期 : 2020-12-23
ISBN : 978-7-111-66984-5
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 284
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

在Web应用研发领域容器编排、微服务、服务网格等先进架构已大行其道的今天,本书作为ASP.NET Core的入门教程,可以让广大开发人员在自己的技能列表里添加上这个关键项。本书从ASP.NET Core的核心组件入手,延伸到MVC、WebAPI、SignalR(实时通信应用)、Blazor(wasm应用)、机器学习等多种应用开发,全方位地讲解ASP.NET Core的应用场景、开发实践和部署发布,带领读者学习从开发到发布基于ASP.NET Core项目的全过程。
本书主要针对的是对C#语法和Web开发有一定了解、期望使用C#语言开发Web项目的初学者,也可以是具有ASP.NET MVC开发经验、希望通过ASP.NET Core提升跨平台和容器化开发能力的开发者。

图书特色

校宝在线董事长&CEO                        张以弛
微软MVP、华为云MVP、腾讯云TVP             张善友
博客园创始人                              杜  勇
微软MVP、《PyTorch机器学习从入门到实战》作者  项  斌联合
推荐



涵盖WebAPI、实时通信、WebAssembly、AI工程化等多种场景
基于长期支持版.NET Core 3.1
深入剖析核心组件的设计理念

图书前言

  从2013年Docker应用容器开源开始,持续发展至今,容器编排、微服务、服务网格等先进架构已在Web应用研发领域盛行。而在.NET Core诞生之前,.NET开发平台仅支持Windows系统,虽然可以通过开源项目Mono实现跨平台,但是支持度不够,应用也不广泛。
  随着微软的商业策略向云计算方向倾斜,尤其是容器云的发展,微软逐步对.NET开放,将新的.NET定义为开源的、跨平台的开发平台,而为了避免命名歧义,将其命名为.NET Core。现今,主流的编程语言都会提供Web开发框架。ASP.NET Core是.NET Core平台当前最优秀的Web开发框架,是基于多年的框架设计经验进行全新设计的成果,因为它针对Docker和Kubernetes环境进行了优化,所以具有高性能和低内存占用的特点。另外,.NET Core框架基于组件化的设计理念,让开发者可以根据需要进行组装,以应对不同的应用场景和需求。
  本书从ASP.NET Core的核心组件入手,延伸到MVC、Web API、SignalR(实时通信应用)、Blazor(wasm应用)、机器学习等多种应用,全方位地讲解ASP.NET Core的应用场景、开发实践、部署和发布,带领读者学习从开发到发布基于ASP.NET Core的项目的全过程。作为ASP.NET Core的入门教程,本书将引导读者开启容器化微服务架构的开发之旅。阅读本书不需要有丰富的Web开发经验,但需要有一定的编程基础,特别是要掌握C#语言。读者学完本书之后,能够对ASP.NET Core框架的应用有一定的了解,知道其内部的设计思路以及如何通过框架组件设计各类业务来解决相应的问题。
  本书的代码开源在GitHub上,具体地址是https://github.com/xiaobaoonline/aspnetcore-in-action。代码基于ASP.NET Core 3.1编写而成,建议读者在Visual Studio 2019集成开发环境中运行。由于编者水平有限,书中难免存在疏漏,恳请读者批评指正。另外,本书资源可以登录机械工业出版社华章分社的网站(www.hzbook.com)下载,方法是:搜索到本书,然后在页面上的“资源下载”模块下载即可。如果下载有问题,请发送电子邮件至booksaga@126.com。
  读者可以在https://github.com/xiaobaoonline/aspnetcore-in-action/issues处提出意见或进行反馈。让我们在学习的道路上共同进步!
  在写作本书的过程中我们得到了很多人的鼓励和支持。感谢校宝在线上上下下的鼎力支持,特别是公司董事长兼CEO张以弛的大力支持,让我们在工作之余有足够的时间投入到写作中。感谢家人的鼓励和支持,没有他们,这本书是不可能完成的。
 
  编 者
  2020年11月9日

上架指导

计算机\程序设计

封底文字

校宝在线的教培SaaS系统基于ASP.NET?Core构建并运行在Kubernetes之上,ASP.NET?Core的性能表现非常突出,为我们节省了接近70%的服务器资源。本书结合架构团队的应用实战经验,着重剖析了ASP.NET?Core组件化设计模式和按需集成的理念,是入门服务端开发和微服务架构的上好之选。
                                          —— 校宝在线董事长&CEO 张以弛

现在越来越多的企业使用ASP.NET?Core来构建系统,其组件化、高性能、跨平台的特性受到企业和开发者的青睐。本书深入浅出地介绍了ASP.NET?Core的核心组件以及如何构建不同类型的应用,特别是基于WebAssembly技术的Blazor框架和基于ML.NET的AI工程化,非常适合初学者作为入门参考。
                                 —— 微软MVP、华为云MVP、腾讯云TVP 张善友

ASP.NET?Core作为微软发起的开源项目,汇聚了大量优秀开发者的经验和智慧,其核心组件的设计模式和实现思路非常值得学习,建议读者精读其源码,领悟其中的精妙设计。本书在讲解如何应用ASP.NET?Core核心组件的同时,剖析了其背后的设计思路。这些组件不仅仅可以在ASP.NET?Core框架中使用,在其他类型的.NET应用程序中也依然适用。
                                                —— 博客园创始人  杜 勇

ASP.NET?Core诞生于云原生时代,非常适合基于现代化的云基础设施来构建服务,其聚焦于服务端开发并提供了Web?API、实时通信和富客户端等多种场景的支持,在AI应用集成方面更是与ML.NET无缝结合,实现了AI模型的服务化部署。本书不仅针对这些应用场景进行了讲解,还介绍了多种服务部署方式,可使读者对ASP.NET?Core有全面的认识。
                       —— 微软MVP、《PyTorch机器学习从入门到实战》作者 项 斌

图书目录

前言
第1章 为什么选择ASP.NET Core 1
  1.1 什么是.NET 1
  1.2 ASP.NET Core的特点 3
  1.3 读者能从本书学到什么 4
第2章 ASP.NET Core开发工具安装 6
  2.1 .NET Core SDK安装 6
2.1.1 获取.NET Core SDK 6
2.1.2 安装.NET Core SDK 7
  2.2 Visual Studio Code安装 7
2.2.1 获取Visual Studio Code 8
2.2.2 安装Visual Studio Code 8
2.2.3 更新Visual Studio Code 10
  2.3 Visual Studio 2019安装 10
2.3.1 确保计算机可以安装Visual Studio 10
2.3.2 获取 Visual Studio 11
2.3.3 安装Visual Studio安装程序 11
2.3.4 启动安装程序 12
第3章 ASP.NET Core核心组件详解 13
  3.1 框架总述 13
  3.2 依赖注入 14
3.2.1 什么是依赖注入 14
3.2.2 依赖注入组件 15
3.2.3 服务描述类ServiceDescriptor 16
3.2.4 IServiceCollection与服务注册 18
3.2.5 通过IServiceProvider获取服务实例 20
3.2.6 作用域与生命周期 22
3.2.7 IDisposable与生命周期 25
3.2.8 扩展接口IServiceProviderFactory 25
3.2.9 在Controller中获取服务 28
  3.3 配置组件 29
3.3.1 配置组件的构造过程 29
3.3.2 内存配置提供程序 32
3.3.3 命令行配置提供程序 32
3.3.4 环境变量配置提供程序 34
3.3.5 文件配置提供程序 35
3.3.6 Key-per-file配置提供程序 37
3.3.7 使用IConfiguration读取配置 38
3.3.8 使用强类型接收配置 40
  3.4 选项组件 42
3.4.1 选项的注入与使用 42
3.4.2 使用命名选项 44
3.4.3 验证选项 46
3.4.4 选项后期配置 47
  3.5 中间件 48
3.5.1 注册中间件 49
3.5.2 常用的内置中间件 51
  3.6 路由与终结点 52
3.6.1 注册终结点 53
3.6.2 路由模板 54
3.6.3 特性路由 55
3.6.4 路由约束 56
3.6.5 生成链接 57
第4章 基于MVC设计模式的Web应用 59
  4.1 创建第一个ASP.NET Core MVC项目 59
  4.2 什么是MVC模式 63
  4.3 视图 64
4.3.1 使用视图的好处 65
4.3.2 创建视图 66
4.3.3 利用控制器指定视图 66
4.3.4 视图发现 67
4.3.5 向视图传递数据 68
4.3.6 动态视图 72
  4.4 部分视图 73
4.4.1 何时使用部分视图 73
4.4.2 声明部分视图 73
4.4.3 引用部分视图 74
4.4.4 呈现部分视图 75
4.4.5 通过部分视图访问数据 76
  4.5 控制器 78
4.5.1 什么是控制器 78
4.5.2 Action 79
4.5.3 横切关注点 80
  4.6 路由 80
4.6.1 自定义路由 81
4.6.2 混合路由 82
4.6.3 动态路由 82
  4.7 区域 85
  4.8 筛选器 89
4.8.1 筛选器的工作原理 90
4.8.2 实现 91
  4.9 模型绑定器 95
4.9.1 什么是模型绑定 95
4.9.2 目标 96
4.9.3 源 97
4.9.4 不存在模型属性的源 98
4.9.5 类型转换错误 99
4.9.6 复杂类型 99
4.9.7 集合 101
4.9.8 字典 102
4.9.9 模型绑定路由数据和URL字符串参数的全局行为 102
4.9.10 特殊数据类型 103
4.9.11 输入格式化程序 103
4.9.12 从模型绑定中排除指定类型 105
4.9.13 手动模型绑定 106
第5章 基于ASP.NET Core的Web API 107
  5.1 创建ASP.NET Core的Web API项目 107
  5.2 带有Swagger的Web API帮助页 111
5.2.1 Swashbuckle.AspNetCore 111
5.2.2 Swagger规范 112
5.2.3 Swagger UI 113
  5.3 ASP.NET Core Web API中控制器的返回类型 114
5.3.1 特定类型 114
5.3.2 IActionResult 类型 115
5.3.3 ActionResult 类型 117
  5.4 Web API约定 118
5.4.1 应用Web API约定 119
5.4.2 创建Web API约定 120
第6章 ASP.NET Core中的数据库访问 122
  6.1 Entity Framework Core 122
  6.2 安装并运行MySQL 123
6.2.1 启动MySQL 125
6.2.2 创建数据库 125
  6.3 数据库访问 126
6.3.1 添加数据库上下文 126
6.3.2 创建控制器 127
  6.4 .NET Core Dapper 128
第7章 安全与身份认证 129
  7.1 身份认证 129
7.1.1 身份认证处理程序 130
7.1.2 身份认证方案 130
7.1.3 身份认证服务 130
7.1.4 身份认证中间件 131
7.1.5 添加基于策略的身份认证方案 132
7.1.6 用户信息模型 133
7.1.7 添加自定义身份认证处理程序 133
  7.2 授权 135
7.2.1 简单授权 135
7.2.2 基于角色的授权 136
7.2.3 基于策略的授权 137
7.2.4 授权中间件 137
7.2.5 授权处理程序 138
7.2.6 自定义授权处理程序 139
  7.3 集成IdentityServer4 139
  7.4 数据保护 141
7.4.1 数据保护入门 142
7.4.2 用户机密管理 143
7.4.3 小结 143
  7.5 强制HTTPS 143
7.5.1 RequireHttpsAttribute 144
7.5.2 HTTPS重定向中间件 144
7.5.3 HTTP严格传输安全协议 145
  7.6 防跨站请求伪造 145
7.6.1 什么是跨站请求伪造 146
7.6.2 同步令牌模式 146
  7.7 防开放重定向攻击 147
  7.8 防跨站脚本 148
7.8.1 防范跨站脚本攻击 149
7.8.2 使用Razor的HTML编码 149
7.8.3 使用Razor的JavaScript编码 149
7.8.4 小结 150
  7.9 跨域请求 150
7.9.1 跨域资源共享 150
7.9.2 启用CORS中间件 150
7.9.3 配置需要CORS的资源路径 152
7.9.4 小结 152
第8章 基于SignalR开发实时通信应用 153
  8.1 基于SignalR的实时通信 153
8.1.1 数据交互传输 153
8.1.2 Hub中心 154
  8.2 服务端实现 155
8.2.1 创建和使用Hub 155
8.2.2 启用SignalR 155
8.2.3 上下文对象Context 156
8.2.4 Clients对象 156
8.2.5 向客户端发送消息 157
8.2.6 处理连接事件 158
8.2.7 用户和组 158
8.2.8 服务的可扩展实现 159
  8.3 客户端实现 160
8.3.1 创建connection对象 160
8.3.2 使用on添加客户端方法 160
8.3.3 使用start开始连接服务端 160
8.3.4 使用invoke调用服务端方法 161
8.3.5 自动连接 161
8.3.6 手动重连 163
第9章 基于Blazor的Web客户端技术 164
  9.1 Blazor的应用模型 165
  9.2 创建项目 166
  9.3 页面路由 169
  9.4 数据绑定 171
  9.5 组件 172
9.5.1 模板化组件 172
9.5.2 组件库 174
  9.6 状态管理 176
第10章 日志与监控 181
  10.1 日志组件 181
10.1.1 日志类别 183
10.1.2 日志级别 184
10.1.3 日志对象与依赖注入 185
10.1.4 事件ID 186
10.1.5 使用日志模板 187
10.1.6 日志作用域 188
10.1.7 筛选日志输出 192
  10.2 健康检查组件 193
10.2.1 注册健康检查 194
10.2.2 配置健康检查终结点 196
10.2.3 自定义健康检查项 198
10.2.4 检查结果发布器 199
第11章 远程调用 201
  11.1 使用HttpClient调用远程API 201
11.1.1 构造HttpClient 201
11.1.2 发出请求 203
11.1.3 设置代理 204
11.1.4 处理Cookie 204
  11.2 使用HttpClientFactory机制管理HttpClient 205
11.2.1 注册并使用HttpClientFactory 205
11.2.2 使用命名客户端 207
11.2.3 使用类型化客户端 208
11.2.4 使用ConfigureHttpClient 209
11.2.5 使用ConfigurePrimaryHttpMessageHandler 210
11.2.6 理解生命周期 211
11.2.7 HTTP请求管道 212
11.2.8 使用ConfigureHttpMessageHandlerBuilder 213
11.2.9 关于请求日志 214
  11.3 使用gRPC实现高性能远程调用 215
11.3.1 定义接口描述 216
11.3.2 配置服务端 217
11.3.3 配置客户端 219
11.3.4 使用dotnet-grpc命令行工具管理 .proto 文件引用 220
第12章 部署ASP.NET Core应用 222
  12.1 部署到IIS中 222
12.1.1 概述 222
12.1.2 下载和安装ASP.NET Core模块 223
12.1.3 部署到IIS 站点 224
  12.2 部署为Windows Service 227
12.2.1 配置应用 227
12.2.2 安装和运行服务 228
  12.3 部署到Linux中 228
12.3.1 安装.NET运行时 228
12.3.2 部署应用 229
12.3.3 反向代理 230
  12.4 部署到Docker中 231
12.4.1 Docker简介 231
12.4.2 Docker术语 231
12.4.3 生成和制作Dockerfile 232
12.4.4 生成镜像 233
12.4.5 部署镜像 234
  12.5 高可用架构 234
12.5.1 概述 234
12.5.2 应用本身的高可用保障 235
第13章 ASP.NET Core高级内容 236
  13.1 文件提供程序 236
13.1.1 访问本地物理文件系统 237
13.1.2 监视文件的变化 237
  13.2 请求功能接口 238
  13.3 URL重写 239
13.3.1 重写规则 239
13.3.2 IRule接口 241
13.3.3 小结 242
  13.4 缓存 242
13.4.1 缓存标记帮助程序 242
13.4.2 内存缓存和分布式缓存 243
第14章 结合ML.NET实现机器学习应用 245
  14.1 机器学习简介 245
14.1.1 什么是机器学习 245
14.1.2 机器学习的作用 246
14.1.3 机器学习的分类 247
14.1.4 机器学习的典型步骤 247
  14.2 ML.NET 简介 248
  14.3 ML.NET特色功能 249
  14.4 ML.NET开发环境搭建 252
14.4.1 安装ML.NET库 252
14.4.2 安装Microsoft.ML.TimeSeries与Microsoft.ML.AutoML 253
14.4.3 安装ML.NET模型生成器 254
14.4.4 安装ML.NET命令行接口工具 254
  14.5 ML.NET快速上手 255
14.5.1 构建模型阶段 256
14.5.2 使用模型阶段 256
  14.6 ML.NET与ONNX实践 259
14.6.1 准备事项 260
14.6.2 创建控制台应用程序 260
14.6.3 准备数据和预训练的模型 260
14.6.4 定义输入和输出数据结构 261
14.6.5 定义评分预测类 261
14.6.6 使用模型进行分析和输出 266
第15章 更多的学习途径 270
  15.1 .NET Core的学习途径 270
  15.2 其他需要关注的技术 271

教学资源推荐
作者: 秦维佳 侯春光 孟艳红 伞宏力
作者: [美]德洛莉丝 M. 埃特尔(Delores M. Etter) 著
参考读物推荐
作者: [澳]马尔斯·吉尔达德(Mars Geldard) 乔纳森·曼宁(Jonathon Manning) 帕里斯·巴特菲尔德-艾迪生(Paris Buttfield-Addison) 蒂姆·纽金特(Tim Nugent) 著
作者: (美)Zigurd Mednieks, Laird Dornin, G. Blake Meike, Masumi Nakamura 著
作者: 吴津津 田睿 李云 刘昊 著
作者: (美)Calvin Austin, Monica Pawlan