ASP.NET Core 3全栈Web开发(第3版) 使用.NET Core 3.1 和 Angular 9
第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.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
查看完整
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、Ter…
查看完整
查看完整
主要内容
● 使用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实现身份验证和授权。
查看完整
● 使用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实现身份验证和授权。
查看完整
第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
第10章 身份验证和授权 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
第11章 渐进式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
第12章 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
^ 收 起
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
第10章 身份验证和授权 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
第11章 渐进式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
第12章 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
^ 收 起
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上成为畅销图书,在全球范围内销售了数万本。
^ 收 起
^ 收 起
主要内容
● 使用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应用,并探索服务工作线程。
^ 收 起
● 使用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应用,并探索服务工作线程。
^ 收 起
比价列表
1人想要
公众号、微信群
缺书网
微信公众号
微信公众号
扫码进群
实时获取购书优惠
实时获取购书优惠