精通ASP.NET Core MVC 第7版

精通ASP.NET Core MVC 第7版
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (Adam Freeman)
2021-06
版次: 1
ISBN: 9787115559616
定价: 169.90
装帧: 其他
开本: 其他
纸张: 胶版纸
页数: 694页
字数: 1.437千字
3人买过
  • 本书详细解释ASP.NET Core MVC的架构、功能和应用,深入阐述构建现代可扩展的Web应用程序的工具、技术和方法,揭示如何为.NET Core平台创建轻型的移动端应用程序。本书主要内容包括MVC模式、C#基本特性、Razor、Visual Studio、MVC应用程序的单元测试、实际应用程序的创建、URL路由、高级路由特性、控制器、依赖注入、过滤器、API控制器、视图、视图组件、标签助手、模型绑定、模型验证、ASP.NET Core Identity、模型约定和操作约束等。
      本书适合.NET开发人员和 Web开发人员阅读,也可供计算机相关专业的师生阅读。 Adam Freeman 是一位经验丰富的IT 专家,曾在一系列公司担任高级职务,后的职务是一家全球性银行的首席技术官(Chief Technology Officer,CTO)和首席运营官(Chief Operating Officer, COO)。退休以后,他喜欢写作和长跑。 译者简介 郝冠军,微软有价值专家,《ASP.NET 本质论》作者。超过 20 年开发经验,拥有从前端到后端丰富的开发经验,有多个项目的架构设计、系统开发和实施落经验地,对软件开发有着深刻理解。 孙臻,现在中国海洋大学就职,长期从事ASP.NET及相关开发,曾参与录制“MSDN Webcast:Windows Phone 8 ”开发快速入门系列课程,现专注于ASP.NET Core及UWP 开发。 闫晓迪,微软有价值专家,现任新西兰某公司高级开发工程师。10余年软件开发经验,涉及Web、桌面、移动、云等多种平台和技术。 张?U易,毕业于桂林电子科技大学,获信息与通信工程硕士学位,新一代人工智能产业联盟隐私保护组主要会员,就职于海信数字多媒体国家重点实验室。主要从事人工智能领域中知识图谱、自然语言处理、隐私保护等方向的相关工作。著有SCI两篇,拥有专利十余篇,参与了IEEEP2807等大量知识图谱、隐私保护相关的国际、国家标准工作。 目  录

    第 一部分 ASP.NET Core MVC

    第 1章 ASP.NET Core MVC背景 2

    1.1 ASP.NET Core MVC的历史 2

    1.1.1 ASP.NET Web Forms 2

    1.1.2 起初的MVC框架 3

    1.2 ASP.NET Core 3

    1.2.1 ASP.NET Core MVC 2的新特性 4

    1.2.2 ASP.NET Core MVC的主要优点 4

    1.3 预备知识 6

    1.4 本书的结构 6

    1.5 如何获取本书的示例代码 6

    1.6 联系作者 6

    1.7 小结 7

    第 2章 首个MVC应用程序 8

    2.1 安装Visual Studio 8

    2.2 安装.NET Core 2.0 SDK 9

    2.3 创建新的ASP.NET Core MVC项目 9

    2.3.1 添加控制器 11

    2.3.2 理解路由 13

    2.4 渲染页面 14

    2.4.1 创建并渲染视图 14

    2.4.2 添加动态输出 16

    2.5 创建一个简单的数据录入程序 17

    2.5.1 设置场景 17

    2.5.2 设计数据模型 18

    2.5.3 创建第二个操作和强类型视图 18

    2.5.4 链接操作方法 19

    2.5.5 建立表单 20

    2.5.6 接收表单数据 21

    2.5.7 显示响应 25

    2.5.8 添加验证 27

    2.5.9 设置内容样式 31

    2.6 小结 35

    第3章 MVC模式、项目与约定 36

    3.1 MVC简史 36

    3.2 MVC模式 36

    3.2.1 模型 36

    3.2.2 控制器 37

    3.2.3 视图 37

    3.2.4 MVC的ASP.NET实现 37

    3.3 MVC与其他模式的比较 38

    3.3.1 “智能UI”模式 38

    3.3.2 理解模型-视图架构 39

    3.3.3 经典的3层架构 39

    3.3.4 MVC的多样性 40

    3.4 ASP.NET Core MVC项目 40

    3.4.1 创建项目 41

    3.4.2 关于MVC的约定 43

    3.5 小结 44

    第4章 C#基本特性 45

    4.1 准备示例项目 45

    4.1.1 启用ASP.NET Core MVC 46

    4.1.2 创建MVC应用程序组件 47

    4.2 运用null条件运算符 48

    4.2.1 null条件运算符的连接运算 49

    4.2.2 联合使用null条件运算符和

     null合并运算符 50

    4.3 使用自动实现属性 51

    4.3.1 初始化自动实现属性 51

    4.3.2 创建只读的自动实现属性 52

    4.4 使用字符串插值 53

    4.5 使用对象和集合初始化器 54

    4.6 模式匹配 56

    4.7 使用扩展方法 58

    4.7.1 将扩展方法应用于接口 59

    4.7.2 创建过滤扩展方法 60

    4.8 使用Lambda表达式 61

    4.8.1 定义函数 63

    4.8.2 使用Lambda表达式实现方法和

     属性 65

    4.9 使用类型推断和匿名类型 66

    4.10 使用异步方法 68

    4.10.1 直接使用任务 69

    4.10.2 使用async和await关键字 70

    4.11 获取名称 71

    4.12 小结 72

    第5章 使用Razor 73

    5.1 准备示例项目 73

    5.1.1 定义模型 74

    5.1.2 创建控制器 74

    5.1.3 创建视图 75

    5.2 使用模型对象 75

    5.3 使用布局 78

    5.3.1 创建布局 78

    5.3.2 使用布局 80

    5.3.3 应用视图启动文件 80

    5.4 使用Razor表达式 81

    5.4.1 插入数据 82

    5.4.2 设置属性值 83

    5.4.3 使用条件语句 84

    5.4.4 枚举数组和集合 85

    5.5 小结 86

    第6章 使用Visual Studio 87

    6.1 准备示例项目 87

    6.1.1 创建模型 87

    6.1.2 创建控制器和视图 88

    6.2 管理软件包 89

    6.2.1 NuGet 89

    6.2.2 Bower 91

    6.3 迭代开发 93

    6.3.1 修改Razor视图 93

    6.3.2 对C#类进行更改 94

    6.3.3 使用浏览器链接 99

    6.4 部署JavaScript和CSS 102

    6.4.1 启用静态内容传递 102

    6.4.2 为项目添加静态内容 103

    6.4.3 更新视图 104

    6.4.4 MVC应用程序中的打包和

     缩小 105

    6.5 小结 108

    第7章 对MVC应用程序进行

     单元测试 109

    7.1 准备示例项目 109

    7.1.1 启用内置的标签助手 109

    7.1.2 为控制器添加操作方法 110

    7.1.3 创建数据输入表单 110

    7.1.4 更新Index视图 111

    7.2 测试MVC应用程序 112

    7.2.1 创建单元测试项目 112

    7.2.2 创建项目引用 113

    7.2.3 编写并运行单元测试 115

    7.2.4 隔离组件以进行单元测试 116

    7.3 改进单元测试 123

    7.3.1 参数化单元测试 123

    7.3.2 改进假的实现 126

    7.4 小结 129

    第8章 SportsStore应用程序 130

    8.1 准备开始 130

    8.1.1 创建MVC项目 130

    8.1.2 创建单元测试项目 133

    8.1.3 测试和启动应用程序 134

    8.2 开始领域模型开发 134

    8.2.1 创建存储库 135

    8.2.2 创建虚拟存储库 135

    8.2.3 注册存储库服务 136

    8.3 显示产品清单 137

    8.3.1 添加一个控制器 137

    8.3.2 添加并配置视图 138

    8.3.3 设置默认路由 139

    8.3.4 运行应用程序 140

    8.4 准备数据库 140

    8.4.1 安装Entity Framework Core

     工具包 141

    8.4.2 创建数据库类 141

    8.4.3 创建存储库类 142

    8.4.4 定义连接字符串 142

    8.4.5 配置应用程序 143

    8.4.6 创建数据库迁移 145

    8.4.7 创建种子数据 145

    8.5 添加分页 148

    8.5.1 显示页面链接 149

    8.5.2 改进URL 155

    8.6 更改内容样式 157

    8.6.1 安装Bootstrap包 157

    8.6.2 将Bootstrap样式应用于布局 157

    8.6.3 创建分部视图 159

    8.7 小结 160

    第9章 SportsStore的导航 161

    9.1 添加导航控件 161

    9.1.1 过滤产品列表 161

    9.1.2 优化URL结构 164

    9.1.3 构建类别导航菜单 167

    9.1.4 更正页数 172

    9.2 构建购物车 174

    9.2.1 定义购物车模型 174

    9.2.2 添加Add To Cart按钮 177

    9.2.3 启用会话 179

    9.2.4 实现Cart控制器 180

    9.2.5 显示购物车的内容 181

    9.3 小结 183

    第 10章 完成购物车 184

    10.1 使用服务优化购物车模型 184

    10.1.1 创建支持存储感知的Cart类 184

    10.1.2 注册服务 185

    10.1.3 简化Cart控制器 185

    10.2 完成购物车功能 186

    10.2.1 从购物车中删除商品 186

    10.2.2 添加购物车摘要小部件 188

    10.3 提交订单 190

    10.3.1 创建模型类 190

    10.3.2 添加结账流程 191

    10.3.3 实现订单处理 193

    10.3.4 完成Order控制器 195

    10.3.5 显示验证错误 198

    10.3.6 显示摘要页面 199

    10.4 小结 199

    第 11章 SportsStore的管理 200

    11.1 管理订单 200

    11.1.1 增强模型 200

    11.1.2 添加操作方法和视图 201

    11.2 添加目录管理 203

    11.2.1 创建CRUD控制器 203

    11.2.2 实现列表视图 205

    11.2.3 编辑商品 206

    11.2.4 创建新的商品 216

    11.2.5 删除商品 217

    11.3 小结 220

    第 12章 SportsStore的安全和部署 221

    12.1 保护管理功能 221

    12.1.1 创建身份标识数据库 221

    12.1.2 应用基本授权策略 224

    12.1.3 创建账户控制器和视图 226

    12.1.4 测试安全策略 229

    12.2 部署应用程序 229

    12.2.1 创建数据库 230

    12.2.2 准备应用程序 231

    12.2.3 应用数据库迁移 234

    12.2.4 管理数据库填充 234

    12.2.5 部署应用程序 237

    12.3 小结 239

    第 13章 使用Visual Studio Code 240

    13.1 设置开发环境 240

    13.1.1 安装Node.js 240

    13.1.2 检查Node.js安装状态 241

    13.1.3 安装Git 241

    13.1.4 检查Git安装状态 241

    13.1.5 安装Bower 241

    13.1.6 安装.NET Core 242

    13.1.7 检查.NET Core安装状态 242

    13.1.8 安装Visual Studio Code 242

    13.1.9 检查Visual Studio Code安装

     状态 243

    13.1.10 安装Visual Studio Code的

     C#扩展 243

    13.2 创建ASP.NET Code项目 244

    13.3 使用Visual Studio Code准备项目 244

    13.3.1 管理客户端软件包 245

    13.3.2 配置应用程序 246

    13.3.3 构建和运行项目 246

    13.4 重新创建PartyInvites应用程序 246

    13.4.1 创建模型和存储库 247

    13.4.2 创建数据库 249

    13.4.3 创建控制器和视图 250

    13.5 Visual Studio Code中的单元测试 254

    13.5.1 创建单元测试 254

    13.5.2 运行测试 255

    13.6 小结 255

    第二部分 ASP.NET Core MVC详解

    第 14章 配置应用程序 257

    14.1 准备示例项目 257

    14.2 配置项目 259

    14.2.1 将包添加到项目中 259

    14.2.2 将工具包添加到项目中 261

    14.3 理解Program类 261

    14.4 了解Startup类 264

    14.4.1 了解ASP.NET服务 266

    14.4.2 了解ASP.NET中间件 268

    14.4.3 了解如何调用Configure方法 275

    14.4.4 添加其他中间件 278

    14.5 配置应用程序 281

    14.5.1 创建JSON配置文件 283

    14.5.2 使用配置数据 284

    14.5.3 配置日志记录 285

    14.5.4 配置依赖注入 288

    14.6 配置MVC服务 289

    14.7 处理复杂配置 290

    14.7.1 创建不同的外部配置文件 290

    14.7.2 创建不同的配置方法 292

    14.7.3 创建不同的配置类 293

    14.8 小结 294

    第 15章 URL路由 295

    15.1 准备示例项目 295

    15.1.1 创建模型类 296

    15.1.2 创建Example控制器 296

    15.1.3 创建视图 298

    15.2 介绍URL模式 299

    15.3 创建和注册简单路由 299

    15.4 定义默认值 300

    15.5 使用静态URL片段 303

    15.6 定义自定义片段变量 306

    15.6.1 使用自定义片段变量作为

     操作方法的参数 308

    15.6.2 定义可选的URL片段 309

    15.6.3 定义可变长度路由 311

    15.7 约束路由 312

    15.7.1 使用正则表达式约束路由 314

    15.7.2 使用类型和值约束 316

    15.7.3 组合约束 316

    15.7.4 定义自定义约束 318

    15.8 使用特性路由 320

    15.8.1 准备特性路由 320

    15.8.2 应用特性路由 321

    15.8.3 应用路由约束 323

    15.9 小结 323

    第 16章 高级路由特性 324

    16.1 准备示例项目 324

    16.2 在视图中生成传出的URL 325

    16.2.1 创建传出的链接 326

    16.2.2 创建非链接的URL 333

    16.3 自定义路由系统 334

    16.3.1 更改路由系统配置 335

    16.3.2 创建自定义路由类 336

    16.4 使用区域 344

    16.4.1 创建区域 344

    16.4.2 创建区域路由 345

    16.4.3 填充区域 346

    16.4.4 生成区域中指向操作的链接 347

    16.5 URL模式实践 348

    16.5.1 保持URL的整洁性 348

    16.5.2 GET方法和POST方法:

     选择合适的方法 349

    16.6 小结 349

    第 17章 控制器和操作 350

    17.1 准备示例项目 350

    17.2 理解控制器 353

    17.3 创建控制器 353

    17.3.1 创建POCO控制器 353

    17.3.2 使用控制器基类 355

    17.4 接收上下文数据 355

    17.4.1 从Context对象中接收数据 356

    17.4.2 使用操作方法参数 359

    17.5 生成响应 360

    17.5.1 使用Context对象生成响应 360

    17.5.2 理解操作结果 361

    17.5.3 生成HTML响应 362

    17.5.4 执行重定向 369

    17.5.5 返回不同类型的内容 374

    17.5.6 响应文件的内容 376

    17.5.7 返回错误和HTTP状态码 377

    17.5.8 理解其他操作结果类 378

    17.6 小结 378

    第 18章 依赖注入 379

    18.1 准备示例项目 379

    18.1.1 创建模型和存储库 380

    18.1.2 创建控制器和视图 381

    18.1.3 创建单元测试项目 383

    18.2 创建松散耦合的组件 383

    18.3 ASP.NET的依赖注入 387

    18.3.1 准备依赖注入 388

    18.3.2 配置服务提供者 389

    18.3.3 对具有依赖项的控制器进行

     单元测试 390

    18.3.4 使用依赖关系链 390

    18.3.5 对具体类型使用依赖注入 393

    18.4 服务的生命周期 394

    18.4.1 使用瞬态生命周期 395

    18.4.2 使用作用域的生命周期 398

    18.4.3 使用单例生命周期 399

    18.5 使用操作注入 400

    18.6 使用属性注入特性 401

    18.7 手动请求实现对象 401

    18.8 小结 402

    第 19章 过滤器 403

    19.1 准备示例项目 403

    19.1.1 启用SSL 404

    19.1.2 创建控制器和视图 404

    19.2 使用过滤器 405

    19.3 实现过滤器 408

    19.4 使用授权过滤器 409

    19.5 使用操作过滤器 412

    19.5.1 创建操作过滤器 412

    19.5.2 创建异步操作过滤器 414

    19.6 使用结果过滤器 414

    19.6.1 创建结果过滤器 415

    19.6.2 创建异步结果过滤器 416

    19.6.3 创建混合操作/结果过滤器 417

    19.7 使用异常过滤器 419

    19.8 为过滤器使用依赖注入 421

    19.8.1 解决过滤器依赖项 421

    19.8.2 管理过滤器的生命周期 424

    19.9 创建全局过滤器 426

    19.10 理解和更改过滤器的执行顺序 428

    19.11 小结 430

    第 20章 API控制器 431

    20.1 准备示例项目 431

    20.1.1 创建模型和存储库 431

    20.1.2 创建控制器和视图 433

    20.2 REST控制器的作用 435

    20.2.1 速度问题 435

    20.2.2 效率问题 436

    20.2.3 开放性问题 436

    20.3 REST和API控制器 436

    20.3.1 创建API控制器 437

    20.3.2 测试API控制器 440

    20.3.3 在浏览器中使用API控制器 443

    20.4 内容格式 445

    20.4.1 默认内容策略 445

    20.4.2 内容协商 446

    20.4.3 指定action数据格式 448

    20.4.4 从路由或查询字符串获取

     数据格式 449

    20.4.5 启用完成内容协商 450

    20.4.6 接收不同的数据格式 451

    20.5 小结 452

    第 21章 视图 453

    21.1 准备示例项目 453

    21.2 创建自定义视图引擎 454

    21.2.1 创建自定义IView 456

    21.2.2 创建IViewEngine实现 456

    21.2.3 注册自定义视图引擎 457

    21.2.4 测试视图引擎 458

    21.3 使用Razor引擎 459

    21.3.1 准备示例项目 459

    21.3.2 Razor视图 461

    21.4 将动态内容添加到Razor视图中 463

    21.4.1 使用布局部分 464

    21.4.2 使用分部视图 468

    21.4.3 将JSON内容添加到视图中 469

    21.5 配置Razor 471

    21.6 小结 475

    第 22章 视图组件 476

    22.1 准备示例项目 476

    22.1.1 创建模型和存储库 476

    22.1.2 创建控制器和视图 478

    22.1.3 配置应用程序 480

    22.2 视图组件 481

    22.3 创建视图组件 481

    22.3.1 创建POCO视图组件 482

    22.3.2 从ViewComponent基类派生 483

    22.3.3 视图组件结果 484

    22.3.4 获取上下文数据 487

    22.3.5 创建异步视图组件 491

    22.4 创建混合的控制器/视图组件类 493

    22.4.1 创建混合视图 493

    22.4.2 应用混合类 495

    22.5 小结 495

    第 23章 标签助手 496

    23.1 准备示例项目 496

    23.1.1 创建模型和存储库 496

    23.1.2 创建控制器、布局与视图 497

    23.1.3 配置应用程序 499

    23.2 创建标签助手 500

    23.2.1 定义标签助手类 501

    23.2.2 注册标签助手 503

    23.2.3 使用标签助手 503

    23.2.4 管理标签助手的作用域 505

    23.3 高级标签助手特性 508

    23.3.1 创建缩写元素 508

    23.3.2 前置和追加内容与元素 510

    23.3.3 使用依赖注入获取视图

     上下文数据 512

    23.3.4 使用视图模型 514

    23.3.5 协调标签助手 516

    23.3.6 抑制输出元素 517

    23.4 小结 518

    第 24章 使用表单标签助手 519

    24.1 准备示例项目 519

    24.2 使用form元素 521

    24.2.1 设置form目标 521

    24.2.2 使用防伪特性 522

    24.3 使用input元素 524

    24.3.1 配置input元素 524

    24.3.2 格式化数据 526

    24.4 使用label元素 528

    24.5 使用select和option元素 529

    24.5.1 使用数据源填充select元素 530

    24.5.2 从枚举中生成option元素 531

    24.6 使用textarea元素 535

    24.7 验证表单标签助手 536

    24.8 小结 536

    第 25章 使用其他内置标签助手 537

    25.1 准备示例项目 537

    25.2 使用宿主环境标签助手 538

    25.3 使用JavaScript和CSS标签助手 539

    25.3.1 管理JavaScript文件 539

    25.3.2 管理CSS样式表 545

    25.4 使用超链接元素 547

    25.5 使用图像元素 548

    25.6 使用数据缓存 549

    25.6.1 设置缓存过期时间 551

    25.6.2 使用缓存变体 552

    25.7 小结 555

    第 26章 模型绑定 556

    26.1 准备示例项目 556

    26.1.1 创建模型和存储库 556

    26.1.2 创建控制器和视图 558

    26.1.3 配置应用 559

    26.2 理解模型绑定 560

    26.2.1 默认绑定值 561

    26.2.2 绑定简单值 562

    26.2.3 绑定复杂类型 562

    26.2.4 绑定数组和集合 570

    26.3 指定模型绑定源 575

    26.3.1 选择标准绑定源 576

    26.3.2 使用请求头作为绑定源 577

    26.3.3 使用请求体作为绑定源 579

    26.4 小结 581

    第 27章 模型验证 582

    27.1 准备示例项目 582

    27.1.1 创建模型 583

    27.1.2 创建控制器 583

    27.1.3 创建布局和视图 584

    27.2 理解模型验证的需求 586

    27.3 显式地验证模型 586

    27.3.1 为用户显示验证错误消息 588

    27.3.2 显示验证消息 589

    27.3.3 显示属性级验证消息 592

    27.3.4 显示模型级验证消息 593

    27.4 使用元数据指定验证规则 595

    27.5 执行客户端验证 599

    27.6 执行远程验证 601

    27.7 小结 603

    第 28章 ASP.NET Core Identity

     入门 604

    28.1 准备示例项目 604

    28.2 设置ASP.NET Core Identity 607

    28.2.1 创建用户类 607

    28.2.2 创建数据库上下文类 608

    28.2.3 配置数据库连接串 608

    28.2.4 创建ASP.NET Core Identity

     数据库 610

    28.3 使用ASP.NET Core Identity 610

    28.3.1 列举用户账户 610

    28.3.2 创建用户 612

    28.3.3 验证密码 615

    28.3.4 验证用户详情 620

    28.4 完成管理功能 624

    28.4.1 实现删除功能 625

    28.4.2 实现编辑功能 626

    28.5 小结 629

    第 29章 应用ASP.NET Core

     Identity 630

    29.1 准备示例项目 630

    29.2 验证用户 630

    29.2.1 准备实现验证 632

    29.2.2 添加用户验证 634

    29.2.3 测试验证 636

    29.3 使用角色授权用户 636

    29.3.1 创建与删除角色 637

    29.3.2 管理角色成员 641

    29.3.3 使用角色进行授权 644

    29.4 播种数据库 647

    29.5 小结 650

    第30章 ASP.NET Core Identity

     进阶 651

    30.1 准备示例项目 651

    30.2 添加自定义用户属性 652

    30.2.1 准备数据库迁移 654

    30.2.2 测试自定义属性 655

    30.3 使用声明和策略 655

    30.3.1 声明 656

    30.3.2 创建声明 659

    30.3.3 使用策略 661

    30.3.4 使用策略对资源授权访问 666

    30.4 使用第三方验证 670

    30.4.1 注册Google应用 670

    30.4.2 启用Google验证 671

    30.5 小结 674

    第31章 模型约定与操作约束 675

    31.1 准备示例项目 675

    31.2 使用应用程序模型和模型约定 677

    31.2.1 理解应用程序模型 678

    31.2.2 理解模型约定角色 680

    31.2.3 创建模型约定 680

    31.2.4 理解模型约定的执行顺序 684

    31.2.5 创建全局模型约定 685

    31.3 使用操作约束 686

    31.3.1 准备示例项目 687

    31.3.2 操作约束的作用 688

    31.3.3 创建操作约束 689

    31.3.4 在操作约束中处理依赖 692

    31.4 小结 694
  • 内容简介:
    本书详细解释ASP.NET Core MVC的架构、功能和应用,深入阐述构建现代可扩展的Web应用程序的工具、技术和方法,揭示如何为.NET Core平台创建轻型的移动端应用程序。本书主要内容包括MVC模式、C#基本特性、Razor、Visual Studio、MVC应用程序的单元测试、实际应用程序的创建、URL路由、高级路由特性、控制器、依赖注入、过滤器、API控制器、视图、视图组件、标签助手、模型绑定、模型验证、ASP.NET Core Identity、模型约定和操作约束等。
      本书适合.NET开发人员和 Web开发人员阅读,也可供计算机相关专业的师生阅读。
  • 作者简介:
    Adam Freeman 是一位经验丰富的IT 专家,曾在一系列公司担任高级职务,后的职务是一家全球性银行的首席技术官(Chief Technology Officer,CTO)和首席运营官(Chief Operating Officer, COO)。退休以后,他喜欢写作和长跑。 译者简介 郝冠军,微软有价值专家,《ASP.NET 本质论》作者。超过 20 年开发经验,拥有从前端到后端丰富的开发经验,有多个项目的架构设计、系统开发和实施落经验地,对软件开发有着深刻理解。 孙臻,现在中国海洋大学就职,长期从事ASP.NET及相关开发,曾参与录制“MSDN Webcast:Windows Phone 8 ”开发快速入门系列课程,现专注于ASP.NET Core及UWP 开发。 闫晓迪,微软有价值专家,现任新西兰某公司高级开发工程师。10余年软件开发经验,涉及Web、桌面、移动、云等多种平台和技术。 张?U易,毕业于桂林电子科技大学,获信息与通信工程硕士学位,新一代人工智能产业联盟隐私保护组主要会员,就职于海信数字多媒体国家重点实验室。主要从事人工智能领域中知识图谱、自然语言处理、隐私保护等方向的相关工作。著有SCI两篇,拥有专利十余篇,参与了IEEEP2807等大量知识图谱、隐私保护相关的国际、国家标准工作。
  • 目录:
    目  录

    第 一部分 ASP.NET Core MVC

    第 1章 ASP.NET Core MVC背景 2

    1.1 ASP.NET Core MVC的历史 2

    1.1.1 ASP.NET Web Forms 2

    1.1.2 起初的MVC框架 3

    1.2 ASP.NET Core 3

    1.2.1 ASP.NET Core MVC 2的新特性 4

    1.2.2 ASP.NET Core MVC的主要优点 4

    1.3 预备知识 6

    1.4 本书的结构 6

    1.5 如何获取本书的示例代码 6

    1.6 联系作者 6

    1.7 小结 7

    第 2章 首个MVC应用程序 8

    2.1 安装Visual Studio 8

    2.2 安装.NET Core 2.0 SDK 9

    2.3 创建新的ASP.NET Core MVC项目 9

    2.3.1 添加控制器 11

    2.3.2 理解路由 13

    2.4 渲染页面 14

    2.4.1 创建并渲染视图 14

    2.4.2 添加动态输出 16

    2.5 创建一个简单的数据录入程序 17

    2.5.1 设置场景 17

    2.5.2 设计数据模型 18

    2.5.3 创建第二个操作和强类型视图 18

    2.5.4 链接操作方法 19

    2.5.5 建立表单 20

    2.5.6 接收表单数据 21

    2.5.7 显示响应 25

    2.5.8 添加验证 27

    2.5.9 设置内容样式 31

    2.6 小结 35

    第3章 MVC模式、项目与约定 36

    3.1 MVC简史 36

    3.2 MVC模式 36

    3.2.1 模型 36

    3.2.2 控制器 37

    3.2.3 视图 37

    3.2.4 MVC的ASP.NET实现 37

    3.3 MVC与其他模式的比较 38

    3.3.1 “智能UI”模式 38

    3.3.2 理解模型-视图架构 39

    3.3.3 经典的3层架构 39

    3.3.4 MVC的多样性 40

    3.4 ASP.NET Core MVC项目 40

    3.4.1 创建项目 41

    3.4.2 关于MVC的约定 43

    3.5 小结 44

    第4章 C#基本特性 45

    4.1 准备示例项目 45

    4.1.1 启用ASP.NET Core MVC 46

    4.1.2 创建MVC应用程序组件 47

    4.2 运用null条件运算符 48

    4.2.1 null条件运算符的连接运算 49

    4.2.2 联合使用null条件运算符和

     null合并运算符 50

    4.3 使用自动实现属性 51

    4.3.1 初始化自动实现属性 51

    4.3.2 创建只读的自动实现属性 52

    4.4 使用字符串插值 53

    4.5 使用对象和集合初始化器 54

    4.6 模式匹配 56

    4.7 使用扩展方法 58

    4.7.1 将扩展方法应用于接口 59

    4.7.2 创建过滤扩展方法 60

    4.8 使用Lambda表达式 61

    4.8.1 定义函数 63

    4.8.2 使用Lambda表达式实现方法和

     属性 65

    4.9 使用类型推断和匿名类型 66

    4.10 使用异步方法 68

    4.10.1 直接使用任务 69

    4.10.2 使用async和await关键字 70

    4.11 获取名称 71

    4.12 小结 72

    第5章 使用Razor 73

    5.1 准备示例项目 73

    5.1.1 定义模型 74

    5.1.2 创建控制器 74

    5.1.3 创建视图 75

    5.2 使用模型对象 75

    5.3 使用布局 78

    5.3.1 创建布局 78

    5.3.2 使用布局 80

    5.3.3 应用视图启动文件 80

    5.4 使用Razor表达式 81

    5.4.1 插入数据 82

    5.4.2 设置属性值 83

    5.4.3 使用条件语句 84

    5.4.4 枚举数组和集合 85

    5.5 小结 86

    第6章 使用Visual Studio 87

    6.1 准备示例项目 87

    6.1.1 创建模型 87

    6.1.2 创建控制器和视图 88

    6.2 管理软件包 89

    6.2.1 NuGet 89

    6.2.2 Bower 91

    6.3 迭代开发 93

    6.3.1 修改Razor视图 93

    6.3.2 对C#类进行更改 94

    6.3.3 使用浏览器链接 99

    6.4 部署JavaScript和CSS 102

    6.4.1 启用静态内容传递 102

    6.4.2 为项目添加静态内容 103

    6.4.3 更新视图 104

    6.4.4 MVC应用程序中的打包和

     缩小 105

    6.5 小结 108

    第7章 对MVC应用程序进行

     单元测试 109

    7.1 准备示例项目 109

    7.1.1 启用内置的标签助手 109

    7.1.2 为控制器添加操作方法 110

    7.1.3 创建数据输入表单 110

    7.1.4 更新Index视图 111

    7.2 测试MVC应用程序 112

    7.2.1 创建单元测试项目 112

    7.2.2 创建项目引用 113

    7.2.3 编写并运行单元测试 115

    7.2.4 隔离组件以进行单元测试 116

    7.3 改进单元测试 123

    7.3.1 参数化单元测试 123

    7.3.2 改进假的实现 126

    7.4 小结 129

    第8章 SportsStore应用程序 130

    8.1 准备开始 130

    8.1.1 创建MVC项目 130

    8.1.2 创建单元测试项目 133

    8.1.3 测试和启动应用程序 134

    8.2 开始领域模型开发 134

    8.2.1 创建存储库 135

    8.2.2 创建虚拟存储库 135

    8.2.3 注册存储库服务 136

    8.3 显示产品清单 137

    8.3.1 添加一个控制器 137

    8.3.2 添加并配置视图 138

    8.3.3 设置默认路由 139

    8.3.4 运行应用程序 140

    8.4 准备数据库 140

    8.4.1 安装Entity Framework Core

     工具包 141

    8.4.2 创建数据库类 141

    8.4.3 创建存储库类 142

    8.4.4 定义连接字符串 142

    8.4.5 配置应用程序 143

    8.4.6 创建数据库迁移 145

    8.4.7 创建种子数据 145

    8.5 添加分页 148

    8.5.1 显示页面链接 149

    8.5.2 改进URL 155

    8.6 更改内容样式 157

    8.6.1 安装Bootstrap包 157

    8.6.2 将Bootstrap样式应用于布局 157

    8.6.3 创建分部视图 159

    8.7 小结 160

    第9章 SportsStore的导航 161

    9.1 添加导航控件 161

    9.1.1 过滤产品列表 161

    9.1.2 优化URL结构 164

    9.1.3 构建类别导航菜单 167

    9.1.4 更正页数 172

    9.2 构建购物车 174

    9.2.1 定义购物车模型 174

    9.2.2 添加Add To Cart按钮 177

    9.2.3 启用会话 179

    9.2.4 实现Cart控制器 180

    9.2.5 显示购物车的内容 181

    9.3 小结 183

    第 10章 完成购物车 184

    10.1 使用服务优化购物车模型 184

    10.1.1 创建支持存储感知的Cart类 184

    10.1.2 注册服务 185

    10.1.3 简化Cart控制器 185

    10.2 完成购物车功能 186

    10.2.1 从购物车中删除商品 186

    10.2.2 添加购物车摘要小部件 188

    10.3 提交订单 190

    10.3.1 创建模型类 190

    10.3.2 添加结账流程 191

    10.3.3 实现订单处理 193

    10.3.4 完成Order控制器 195

    10.3.5 显示验证错误 198

    10.3.6 显示摘要页面 199

    10.4 小结 199

    第 11章 SportsStore的管理 200

    11.1 管理订单 200

    11.1.1 增强模型 200

    11.1.2 添加操作方法和视图 201

    11.2 添加目录管理 203

    11.2.1 创建CRUD控制器 203

    11.2.2 实现列表视图 205

    11.2.3 编辑商品 206

    11.2.4 创建新的商品 216

    11.2.5 删除商品 217

    11.3 小结 220

    第 12章 SportsStore的安全和部署 221

    12.1 保护管理功能 221

    12.1.1 创建身份标识数据库 221

    12.1.2 应用基本授权策略 224

    12.1.3 创建账户控制器和视图 226

    12.1.4 测试安全策略 229

    12.2 部署应用程序 229

    12.2.1 创建数据库 230

    12.2.2 准备应用程序 231

    12.2.3 应用数据库迁移 234

    12.2.4 管理数据库填充 234

    12.2.5 部署应用程序 237

    12.3 小结 239

    第 13章 使用Visual Studio Code 240

    13.1 设置开发环境 240

    13.1.1 安装Node.js 240

    13.1.2 检查Node.js安装状态 241

    13.1.3 安装Git 241

    13.1.4 检查Git安装状态 241

    13.1.5 安装Bower 241

    13.1.6 安装.NET Core 242

    13.1.7 检查.NET Core安装状态 242

    13.1.8 安装Visual Studio Code 242

    13.1.9 检查Visual Studio Code安装

     状态 243

    13.1.10 安装Visual Studio Code的

     C#扩展 243

    13.2 创建ASP.NET Code项目 244

    13.3 使用Visual Studio Code准备项目 244

    13.3.1 管理客户端软件包 245

    13.3.2 配置应用程序 246

    13.3.3 构建和运行项目 246

    13.4 重新创建PartyInvites应用程序 246

    13.4.1 创建模型和存储库 247

    13.4.2 创建数据库 249

    13.4.3 创建控制器和视图 250

    13.5 Visual Studio Code中的单元测试 254

    13.5.1 创建单元测试 254

    13.5.2 运行测试 255

    13.6 小结 255

    第二部分 ASP.NET Core MVC详解

    第 14章 配置应用程序 257

    14.1 准备示例项目 257

    14.2 配置项目 259

    14.2.1 将包添加到项目中 259

    14.2.2 将工具包添加到项目中 261

    14.3 理解Program类 261

    14.4 了解Startup类 264

    14.4.1 了解ASP.NET服务 266

    14.4.2 了解ASP.NET中间件 268

    14.4.3 了解如何调用Configure方法 275

    14.4.4 添加其他中间件 278

    14.5 配置应用程序 281

    14.5.1 创建JSON配置文件 283

    14.5.2 使用配置数据 284

    14.5.3 配置日志记录 285

    14.5.4 配置依赖注入 288

    14.6 配置MVC服务 289

    14.7 处理复杂配置 290

    14.7.1 创建不同的外部配置文件 290

    14.7.2 创建不同的配置方法 292

    14.7.3 创建不同的配置类 293

    14.8 小结 294

    第 15章 URL路由 295

    15.1 准备示例项目 295

    15.1.1 创建模型类 296

    15.1.2 创建Example控制器 296

    15.1.3 创建视图 298

    15.2 介绍URL模式 299

    15.3 创建和注册简单路由 299

    15.4 定义默认值 300

    15.5 使用静态URL片段 303

    15.6 定义自定义片段变量 306

    15.6.1 使用自定义片段变量作为

     操作方法的参数 308

    15.6.2 定义可选的URL片段 309

    15.6.3 定义可变长度路由 311

    15.7 约束路由 312

    15.7.1 使用正则表达式约束路由 314

    15.7.2 使用类型和值约束 316

    15.7.3 组合约束 316

    15.7.4 定义自定义约束 318

    15.8 使用特性路由 320

    15.8.1 准备特性路由 320

    15.8.2 应用特性路由 321

    15.8.3 应用路由约束 323

    15.9 小结 323

    第 16章 高级路由特性 324

    16.1 准备示例项目 324

    16.2 在视图中生成传出的URL 325

    16.2.1 创建传出的链接 326

    16.2.2 创建非链接的URL 333

    16.3 自定义路由系统 334

    16.3.1 更改路由系统配置 335

    16.3.2 创建自定义路由类 336

    16.4 使用区域 344

    16.4.1 创建区域 344

    16.4.2 创建区域路由 345

    16.4.3 填充区域 346

    16.4.4 生成区域中指向操作的链接 347

    16.5 URL模式实践 348

    16.5.1 保持URL的整洁性 348

    16.5.2 GET方法和POST方法:

     选择合适的方法 349

    16.6 小结 349

    第 17章 控制器和操作 350

    17.1 准备示例项目 350

    17.2 理解控制器 353

    17.3 创建控制器 353

    17.3.1 创建POCO控制器 353

    17.3.2 使用控制器基类 355

    17.4 接收上下文数据 355

    17.4.1 从Context对象中接收数据 356

    17.4.2 使用操作方法参数 359

    17.5 生成响应 360

    17.5.1 使用Context对象生成响应 360

    17.5.2 理解操作结果 361

    17.5.3 生成HTML响应 362

    17.5.4 执行重定向 369

    17.5.5 返回不同类型的内容 374

    17.5.6 响应文件的内容 376

    17.5.7 返回错误和HTTP状态码 377

    17.5.8 理解其他操作结果类 378

    17.6 小结 378

    第 18章 依赖注入 379

    18.1 准备示例项目 379

    18.1.1 创建模型和存储库 380

    18.1.2 创建控制器和视图 381

    18.1.3 创建单元测试项目 383

    18.2 创建松散耦合的组件 383

    18.3 ASP.NET的依赖注入 387

    18.3.1 准备依赖注入 388

    18.3.2 配置服务提供者 389

    18.3.3 对具有依赖项的控制器进行

     单元测试 390

    18.3.4 使用依赖关系链 390

    18.3.5 对具体类型使用依赖注入 393

    18.4 服务的生命周期 394

    18.4.1 使用瞬态生命周期 395

    18.4.2 使用作用域的生命周期 398

    18.4.3 使用单例生命周期 399

    18.5 使用操作注入 400

    18.6 使用属性注入特性 401

    18.7 手动请求实现对象 401

    18.8 小结 402

    第 19章 过滤器 403

    19.1 准备示例项目 403

    19.1.1 启用SSL 404

    19.1.2 创建控制器和视图 404

    19.2 使用过滤器 405

    19.3 实现过滤器 408

    19.4 使用授权过滤器 409

    19.5 使用操作过滤器 412

    19.5.1 创建操作过滤器 412

    19.5.2 创建异步操作过滤器 414

    19.6 使用结果过滤器 414

    19.6.1 创建结果过滤器 415

    19.6.2 创建异步结果过滤器 416

    19.6.3 创建混合操作/结果过滤器 417

    19.7 使用异常过滤器 419

    19.8 为过滤器使用依赖注入 421

    19.8.1 解决过滤器依赖项 421

    19.8.2 管理过滤器的生命周期 424

    19.9 创建全局过滤器 426

    19.10 理解和更改过滤器的执行顺序 428

    19.11 小结 430

    第 20章 API控制器 431

    20.1 准备示例项目 431

    20.1.1 创建模型和存储库 431

    20.1.2 创建控制器和视图 433

    20.2 REST控制器的作用 435

    20.2.1 速度问题 435

    20.2.2 效率问题 436

    20.2.3 开放性问题 436

    20.3 REST和API控制器 436

    20.3.1 创建API控制器 437

    20.3.2 测试API控制器 440

    20.3.3 在浏览器中使用API控制器 443

    20.4 内容格式 445

    20.4.1 默认内容策略 445

    20.4.2 内容协商 446

    20.4.3 指定action数据格式 448

    20.4.4 从路由或查询字符串获取

     数据格式 449

    20.4.5 启用完成内容协商 450

    20.4.6 接收不同的数据格式 451

    20.5 小结 452

    第 21章 视图 453

    21.1 准备示例项目 453

    21.2 创建自定义视图引擎 454

    21.2.1 创建自定义IView 456

    21.2.2 创建IViewEngine实现 456

    21.2.3 注册自定义视图引擎 457

    21.2.4 测试视图引擎 458

    21.3 使用Razor引擎 459

    21.3.1 准备示例项目 459

    21.3.2 Razor视图 461

    21.4 将动态内容添加到Razor视图中 463

    21.4.1 使用布局部分 464

    21.4.2 使用分部视图 468

    21.4.3 将JSON内容添加到视图中 469

    21.5 配置Razor 471

    21.6 小结 475

    第 22章 视图组件 476

    22.1 准备示例项目 476

    22.1.1 创建模型和存储库 476

    22.1.2 创建控制器和视图 478

    22.1.3 配置应用程序 480

    22.2 视图组件 481

    22.3 创建视图组件 481

    22.3.1 创建POCO视图组件 482

    22.3.2 从ViewComponent基类派生 483

    22.3.3 视图组件结果 484

    22.3.4 获取上下文数据 487

    22.3.5 创建异步视图组件 491

    22.4 创建混合的控制器/视图组件类 493

    22.4.1 创建混合视图 493

    22.4.2 应用混合类 495

    22.5 小结 495

    第 23章 标签助手 496

    23.1 准备示例项目 496

    23.1.1 创建模型和存储库 496

    23.1.2 创建控制器、布局与视图 497

    23.1.3 配置应用程序 499

    23.2 创建标签助手 500

    23.2.1 定义标签助手类 501

    23.2.2 注册标签助手 503

    23.2.3 使用标签助手 503

    23.2.4 管理标签助手的作用域 505

    23.3 高级标签助手特性 508

    23.3.1 创建缩写元素 508

    23.3.2 前置和追加内容与元素 510

    23.3.3 使用依赖注入获取视图

     上下文数据 512

    23.3.4 使用视图模型 514

    23.3.5 协调标签助手 516

    23.3.6 抑制输出元素 517

    23.4 小结 518

    第 24章 使用表单标签助手 519

    24.1 准备示例项目 519

    24.2 使用form元素 521

    24.2.1 设置form目标 521

    24.2.2 使用防伪特性 522

    24.3 使用input元素 524

    24.3.1 配置input元素 524

    24.3.2 格式化数据 526

    24.4 使用label元素 528

    24.5 使用select和option元素 529

    24.5.1 使用数据源填充select元素 530

    24.5.2 从枚举中生成option元素 531

    24.6 使用textarea元素 535

    24.7 验证表单标签助手 536

    24.8 小结 536

    第 25章 使用其他内置标签助手 537

    25.1 准备示例项目 537

    25.2 使用宿主环境标签助手 538

    25.3 使用JavaScript和CSS标签助手 539

    25.3.1 管理JavaScript文件 539

    25.3.2 管理CSS样式表 545

    25.4 使用超链接元素 547

    25.5 使用图像元素 548

    25.6 使用数据缓存 549

    25.6.1 设置缓存过期时间 551

    25.6.2 使用缓存变体 552

    25.7 小结 555

    第 26章 模型绑定 556

    26.1 准备示例项目 556

    26.1.1 创建模型和存储库 556

    26.1.2 创建控制器和视图 558

    26.1.3 配置应用 559

    26.2 理解模型绑定 560

    26.2.1 默认绑定值 561

    26.2.2 绑定简单值 562

    26.2.3 绑定复杂类型 562

    26.2.4 绑定数组和集合 570

    26.3 指定模型绑定源 575

    26.3.1 选择标准绑定源 576

    26.3.2 使用请求头作为绑定源 577

    26.3.3 使用请求体作为绑定源 579

    26.4 小结 581

    第 27章 模型验证 582

    27.1 准备示例项目 582

    27.1.1 创建模型 583

    27.1.2 创建控制器 583

    27.1.3 创建布局和视图 584

    27.2 理解模型验证的需求 586

    27.3 显式地验证模型 586

    27.3.1 为用户显示验证错误消息 588

    27.3.2 显示验证消息 589

    27.3.3 显示属性级验证消息 592

    27.3.4 显示模型级验证消息 593

    27.4 使用元数据指定验证规则 595

    27.5 执行客户端验证 599

    27.6 执行远程验证 601

    27.7 小结 603

    第 28章 ASP.NET Core Identity

     入门 604

    28.1 准备示例项目 604

    28.2 设置ASP.NET Core Identity 607

    28.2.1 创建用户类 607

    28.2.2 创建数据库上下文类 608

    28.2.3 配置数据库连接串 608

    28.2.4 创建ASP.NET Core Identity

     数据库 610

    28.3 使用ASP.NET Core Identity 610

    28.3.1 列举用户账户 610

    28.3.2 创建用户 612

    28.3.3 验证密码 615

    28.3.4 验证用户详情 620

    28.4 完成管理功能 624

    28.4.1 实现删除功能 625

    28.4.2 实现编辑功能 626

    28.5 小结 629

    第 29章 应用ASP.NET Core

     Identity 630

    29.1 准备示例项目 630

    29.2 验证用户 630

    29.2.1 准备实现验证 632

    29.2.2 添加用户验证 634

    29.2.3 测试验证 636

    29.3 使用角色授权用户 636

    29.3.1 创建与删除角色 637

    29.3.2 管理角色成员 641

    29.3.3 使用角色进行授权 644

    29.4 播种数据库 647

    29.5 小结 650

    第30章 ASP.NET Core Identity

     进阶 651

    30.1 准备示例项目 651

    30.2 添加自定义用户属性 652

    30.2.1 准备数据库迁移 654

    30.2.2 测试自定义属性 655

    30.3 使用声明和策略 655

    30.3.1 声明 656

    30.3.2 创建声明 659

    30.3.3 使用策略 661

    30.3.4 使用策略对资源授权访问 666

    30.4 使用第三方验证 670

    30.4.1 注册Google应用 670

    30.4.2 启用Google验证 671

    30.5 小结 674

    第31章 模型约定与操作约束 675

    31.1 准备示例项目 675

    31.2 使用应用程序模型和模型约定 677

    31.2.1 理解应用程序模型 678

    31.2.2 理解模型约定角色 680

    31.2.3 创建模型约定 680

    31.2.4 理解模型约定的执行顺序 684

    31.2.5 创建全局模型约定 685

    31.3 使用操作约束 686

    31.3.1 准备示例项目 687

    31.3.2 操作约束的作用 688

    31.3.3 创建操作约束 689

    31.3.4 在操作约束中处理依赖 692

    31.4 小结 694
查看详情
12
相关图书 / 更多
精通ASP.NET Core MVC 第7版
精通 Power Query
(加拿大)肯·普尔斯
精通ASP.NET Core MVC 第7版
精通套期保值
李录林 著
精通ASP.NET Core MVC 第7版
精通STM32F4(HAL库版)(上)
刘军 凌柱宁 徐伟健 江荧
精通ASP.NET Core MVC 第7版
精通FrontPage XP(中文版)
中国IT培训工程编委会 编
精通ASP.NET Core MVC 第7版
精通咬合重建——解读牙列不齐、牙周病、多牙缺失
吴松涛 周茂强 译;[日]上田 秀朗
精通ASP.NET Core MVC 第7版
精通Veeam Backup & Replication(原书第2版)
克里斯·奇尔德霍森(Chris Childerhose)
精通ASP.NET Core MVC 第7版
精通Shiny(Mastering Shiny)
Hadley Wickham
精通ASP.NET Core MVC 第7版
精通区块链开发技术(第2版)
[美]伊姆兰·巴希尔 著;王烈征 译
精通ASP.NET Core MVC 第7版
精通Apache Pulsar:可伸缩云原生事件流实践
[美]Jowanza Joseph(乔万扎·约瑟夫
精通ASP.NET Core MVC 第7版
精通机器学习算法
[意]朱塞佩·博纳科尔索(Giuseppe Bonaccorso)
精通ASP.NET Core MVC 第7版
精通嵌入式Linux编程
[美]弗兰克·瓦斯奎兹 著;陈会翔 译
精通ASP.NET Core MVC 第7版
精通Transformer:从零开始构建最先进的NLP模型
[伊朗]梅萨姆·阿斯加里-切纳格卢 著;江红 余青松 余靖 译;[土耳其]萨瓦斯·伊尔蒂利姆
您可能感兴趣 / 更多
精通ASP.NET Core MVC 第7版
无辜者的谎言(相信我!看到结局你一定会头皮发麻;全美读者推荐的悬疑神作,GOODREADS高分作品)
[美]A.R.托雷 著;梁颂宇 译;星文文化 出品
精通ASP.NET Core MVC 第7版
孩子,把你的手给我1:怎么说孩子才爱听,怎么教孩子才肯学?帮助每一位3-12岁孩子的父母结束与孩子的所有冲突!
[美]海姆·G.吉诺特
精通ASP.NET Core MVC 第7版
哲学、历史与僭政——重审施特劳斯与科耶夫之争
[美]弗罗斯特(Bryan-Paul Frost) 编;[美]伯恩斯(Timothy W. Burns)
精通ASP.NET Core MVC 第7版
怎样做成大事
[美]丹·加德纳(Dan Gardner) 著;贾拥民 译;湛庐文化 出品;[丹麦]傅以斌(Bent Flyvbjerg)
精通ASP.NET Core MVC 第7版
1200年希腊罗马神话
[美]伊迪丝·汉密尔顿
精通ASP.NET Core MVC 第7版
爱情心理学(新编本)
[美]罗伯特·J. 斯腾伯格 (美)凯琳·斯腾伯格 倪爱萍 译
精通ASP.NET Core MVC 第7版
黄金圈法则
[美]西蒙·斯涅克 著;磨铁文化 出品
精通ASP.NET Core MVC 第7版
最后一章
[美]厄尼·派尔
精通ASP.NET Core MVC 第7版
汤姆·索亚历险记 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]马克 吐温
精通ASP.NET Core MVC 第7版
富兰克林自传 名家全译本 改变无数人命运的励志传奇 埃隆马斯克反复推荐 赠富兰克林签名照及精美插图
[美]本杰明·富兰克林 著;李自修 译
精通ASP.NET Core MVC 第7版
汤姆素亚历险记:中小学生课外阅读快乐读书吧 儿童文学无障碍有声伴读世界名著童话故事
[美]马克·吐温
精通ASP.NET Core MVC 第7版
国际大奖图画书系列 共11册(小老鼠的恐惧的大书,大灰狼,红豆与菲比,别烦我,下雪了 ,穿靴子的猫 ,先有蛋,绿 ,特别快递,如果你想看鲸鱼 ,一个部落的孩子 ) 麦克米伦世纪
[美]莱恩·史密斯 (英)埃米莉·格雷维特 (美)劳拉·瓦卡罗·等/文 (英)埃米莉·格雷维特 等/图 彭懿 杨玲玲 阿甲 孙慧阳 白薇 译