《ASP.NET Core3全栈Web开发(使用.NET Core3.1和Angular9第3版.NET开发经典名著)》((意)瓦莱里奥·德·桑克蒂斯|责编:王军//韩宏志|译者:赵利通//崔战友)-图书推荐
编辑推荐语
"为了学习全栈Web开发,你需要掌握前端和后端开发知识。本书呈现ASP.NET Core 3.1和Angular 9令人惊叹的功能,从项目设置一直讲到项目部署,帮你有效提高编程技能。本书开篇介绍如何使用.NET Core框架和Web API控制器,在后端实现API调用和服务器端路由。此后讨论如何使用Entity Framework Core来构建数据模型,并使用本地SQL Server实例或基于云的数据存储(如Microsoft Azure)来配置它。本书还指导你使用Angular响应式表单来处理用户输入,并使用前端和后端验证器来获得*佳效果。之后将探讨xUnit.net(用于.NET Core)、Jasmine和Karma(用于Angular)的**调试和单元测试功能。*后,你将使用ASP.NET Core Identity系统和新版IdentityServer实现不同的身份验证和授权技术,并使用IIS、Kestrel和Nginx将应用程序部署到Windows和Linux服务器上。学完本书后,你将掌握必要的开发技能,能用ASP.NET Core和Angular创建高效的Web应用程序。"
内容提要
"主要内容● 使用ASP.NET Core实现Web API接口,并通过Angular和RxJS Observable来使用接口。● 使用Entity Framework Core的代码优先方法和迁移支持来创建数据模型。● 使用本地实例或Azure中的云数据存储来建立和配置SQL数据库服务器。● 使用Visual Studio 2019执行C#和JavaScript调试。● 使用xUnit、Jasmine和Karma执行TDD和BDD单元测试。● 使用ASP.NET Identity、IdentityServer4和Angular API实现身份验证和授权。● 构建渐进式Web应用,并探索服务工作线程。"
作者简介
"Valerio De Sanctis是一名掌握丰富技能的IT专业人员,在使用ASP.NET、PHP和Java进行编程、Web开发和项目管理方面具有超过15年的经验。他在多家金融和保险公司担任过高级职务,近来在一家业界领先的售后服务和IT服务公司担任首席技术官、首席安全官和首席运营官,这家公司为多个顶尖的人寿和非人寿保险集团提供服务。在职业生涯中,Valerio帮助许多私企实现和维护基于.NET的解决方案,与许多IT行业的专家携手工作,并领导过多个前端、后端和UX开发团队。他为多个知名的客户和合作伙伴设计了许多企业级Web应用程序项目的架构,并监管这些项目的开发。这些客户包括London Stock Exchange Group、Zurich Insurance Group、Allianz、Generali、Harmonie Mutuelle、Honda Motor、FCA Group、Luxottica、ANSA、Saipem、ENI、Enel、Terna、Banzai Media、Virgilio.it、Repubblica.it和Corriere.it。他是Stack Exchange网络上的活跃成员,在StackOverflow、ServerFault和SuperUser社区中提供关于.NET、JavaScript、HTML5和Web主题的建议和提示。他的大部分项目和代码示例在GitHub、BitBucket、NPM、CocoaPods、JQuery Plugin Registry和WordPress Plugin Repository中以开源许可提供。他还是Microsoft开发技术MVP,这是一个年度颁发的奖项,用来表彰全球范围内积极与用户和Microsoft分享高质量的实用专家技能的卓越技术社区领袖。自2014年以来,他在www.ryadel.com上运营一个面向IT并关注Web的博客,提供业界新闻、评审、代码示例和指导,旨在帮助全球的开发人员和技术爱好者。他撰写了多本关于Web开发的图书,许多都在Amazon上成为畅销图书,在全球范围内销售了数万本。"
目录
目录
第1章 准备工作 1
1.1 技术需求 1
1.2 两个框架,一个目标 2
1.2.1 ASP.NET Core的变革 2
1.2.2 Angular有哪些新变化? 5
1.2.3 选择.NET Core和Angular的理由 11
1.3 全栈方法 12
1.4 SPA、NWA和PWA 12
1.4.1 单页面应用程序 13
1.4.2 原生Web应用程序 13
1.4.3 渐进式Web应用程序 13
1.4.4 产品负责人的期望 15
1.5 SPA项目示例 16
1.6 准备工作空间 16
1.6.1 免责声明 17
1.6.2 创建项目 18
1.7 小结 22
1.8 **主题 22
第2章 探索项目 23
2.1 技术需求 23
2.2 解决方案概述 23
2.3 .NET Core后端 24
2.3.1 Razor页面 24
2.3.2 控制器 25
2.3.3 配置文件 26
2.4 Angular前端 32
2.4.1 工作空间 32
2.4.2 /ClientApp/src/文件夹 38
2.4.3 测试应用 40
2.5 开始工作 44
2.5.1 静态文件缓存 44
2.5.2 清理客户端应用 48
2.6 小结 53
2.7 **主题 53
第3章 前端与后端的交互 55
3.1 技术需求 55
3.2 .NET Core健康检查简介 55
3.2.1 添加HealthCheck中间件 56
3.2.2 添加网际控制报文协议检查 57
3.2.3 改进ICMPHealthCheck类 59
3.3 Angular中的健康检查 64
3.3.1 创建Angular组件 64
3.3.2 将组件添加到Angular应用 73
3.4 小结 75
3.5 **主题 75
第4章 使用Entity Framework Core 创建数据模型 77
4.1 技术需求 77
4.2 WorldCities Web应用 78
4.3 数据源 80
4.4 数据模型 81
4.4.1 Entity Framework Core简介 81
4.4.2 安装Entity Framework Core 82
4.4.3 SQL Server数据提供者 83
4.4.4 数据建模方法 84
4.5 创建实体 88
4.5.1 定义实体 88
4.5.2 定义关系 92
4.6 获取SQL Server 94
4.6.1 安装SQL Server 2019 95
4.6.2 在Azure上创建数据库 97
4.6.3 配置数据库 102
4.7 使用代码优先方法创建数据库 104
4.7.1 设置DbContext 105
4.7.2 数据库初始化策略 106
4.7.3 *新appsettings.json文件 106
4.7.4 创建数据库 107
4.7.5 添加初始迁移 107
4.8 填充数据库 111
4.9 实体控制器 117
4.9.1 CitiesController 117
4.9.2 CountriesController 120
4.10 小结 120
4.11 **主题 121
第5章 获取和显示数据 123
5.1 技术需求 123
5.2 获取数据 123
5.2.1 请求和响应 123
5.2.2 一个长列表 125
5.3 使用Angular Material提供数据 129
5.3.1 MatTableModule 131
5.3.2 MatPaginatorModule 134
5.3.3 MatSortModule 144
5.3.4 添加过滤功能 156
5.4 *新**/地区 165
5.4.1 .NET Core 165
5.4.2 Angular 168
5.5 小结 173
5.6 **主题 174
第6章 表单和数据验证 175
6.1 技术需求 175
6.2 探索Angular表单 176
6.2.1 Angular中的表单 176
6.2.2 使用表单的理由 177
6.2.3 模板驱动的表单 178
6.2.4 模型驱动的/响应式表单 179
6.3 构建**个响应式表单 181
6.3.1 ReactiveFormsModule 181
6.3.2 CityEditComponent 182
6.3.3 添加导航链接 187
6.4 添加一个新城市 190
6.4.1 扩展CityEditComponent 190
6.4.2 添加Create a new City按钮 193
6.4.3 HTML select 195
6.4.4 Angular Material select(MatSelectModule) 199
6.5 理解数据验证 201
6.5.1 模板驱动的验证 202
6.5.2 模型驱动的验证 203
6.5.3 服务器端验证 207
6.6 FormBuilder简介 213
6.6.1 创建CountryEditComponent 213
6.6.2 测试CountryEditComponent 223
6.7 小结 226
6.8 **主题 226
第7章 代码调整和数据服务 227
7.1 技术需求 227
7.2 优化和调整 227
7.2.1 模板改进 228
7.2.2 类继承 229
7.3 Bug修复和改进 232
7.3.1 验证lat和lon 232
7.3.2 添加城市个数 235
7.3.3 DTO类——真的应该使用它们吗? 240
7.3.4 添加**/地区名称 244
7.4 数据服务 247
7.4.1 对比XMLHttpRequest与fetch(和HttpClient) 248
7.4.2 构建数据服务 251
7.5 小结 267
7.6 **主题 267
第8章 后端和前端调试 269
8.1 技术需求 269
8.2 后端调试 269
8.2.1 Windows还是Linux? 270
8.2.2 基础知识 270
8.2.3 条件断点 270
8.2.4 Output窗口 273
8.2.5 调试EF Core 274
8.3 前端调试 280
8.3.1 Visual Studio中的JavaScript调试 280
8.3.2 浏览器开发者工具 282
8.3.3 调试Angular表单 284
8.3.4 客户端调试 289
8.4 小结 290
8.5 **主题 290
第9章 ASP.NET Core和Angular单元测试 291
9.1 技术需求 291
9.2 .NET Core单元测试 292
9.2.1 创建WorldCities.Tests项目 292
9.2.2 **个测试 294
9.2.3 测试驱动的开发 300
9.2.4 行为驱动的开发 301
9.3 Angular单元测试 302
9.3.1 一般概念 303
9.3.2 **个Angular测试套件 304
9.4 小结 313
9.5 **主题 314
**0章 身份验证和授权 315
10.1 技术需求 315
10.2 是否进行身份验证和授权 316
10.2.1 身份验证 316
10.2.2 授权 318
10.2.3 专有与第三方 318
10.3 使用.NET Core进行专有身份验证和授权 319
10.3.1 ASP.NET Core Identity Model 320
10.3.2 设置ASP.NET Core Identity 321
10.4 *新数据库 337
10.4.1 添加身份迁移 337
10.4.2 应用迁移 337
10.4.3 对数据执行seed操作 339
10.5 身份验证方法 341
10.5.1 会话 341
10.5.2 令牌 342
10.5.3 签名 343
10.5.4 双因子 343
10.5.5 结论 343
10.6 在Angular中实现身份验证 343
10.6.1 创建AuthSample项目 344
10.6.2 探索Angular授权API 346
10.7 在WorldCities应用中实现授权API 359
10.7.1 导入前端授权API 359
10.7.2 调整后端代码 361
10.7.3 测试登录和注册 364
10.8 小结 365
10.9 **主题 365
**1章 渐进式Web应用 367
11.1 技术需求 367
11.2 PWA的特征 367
11.2.1 安全源 368
11.2.2 离线加载和Web应用清单 369
11.3 实现PWA需求 370
11.3.1 手动安装 370
11.3.2 自动安装 377
11.4 处理离线状态 379
11.4.1 选项1:窗口的isonline/isoffline事件 379
11.4.2 选项2:Navigator.onLine属性 379
11.4.3 选项3:ng-connection-service npm包 380
11.4.4 跨请求资源共享 384
11.5 测试PWA能力 385
11.5.1 使用Visual Studio和IIS Express 385
11.5.2 其他测试方法 390
11.6 小结 391
11.7 **主题 392
**2章 Windows和Linux部署 393
12.1 技术需求 393
12.2 为生产环境做好准备 393
12.2.1 .NET Core部署提示 394
12.2.2 Angular部署提示 399
12.3 Windows部署 402
12.3.1 在MS Azure上创建一个Windows Server VM 402
12.3.2 配置VM 406
12.3.3 发布和部署HealthCheck应用 408
12.3.4 配置IIS 410
12.3.5 测试HealthCheck Web应用 414
12.4 Linux部署 415
12.4.1 在MS Azure中创建一个Linux CentOS VM 416
12.4.2 配置Linux VM 417
12.4.3 调整WorldCities应用 421
12.4.4 发布和部署WorldCities应用 423
12.4.5 配置Kestrel和Nginx 425
12.4.6 测试WorldCities应用 430
12.5 小结 432
12.6 **主题 433
卖贝商城 推荐:《ASP.NET Core3全栈Web开发(使用.NET Core3.1和Angular9第3版.NET开发经典名著)》((意)瓦莱里奥·德·桑克蒂斯|责编:王军//韩宏志|译者:赵利通//崔战友)