图书目录

目    录

 

第I部分  新ASP.NET一览

第1章  为什么又开发一个ASP.NET   3

1.1  .NET平台现状   4

1.1.1  .NET平台的亮点   4

1.1.2  .NET Framework   4

1.1.3  ASP.NET Framework   5

1.1.4  Web API框架   6

1.1.5  对极简Web服务的需求   7

1.2  15年过去后的.NET   7

1.2.1  更简洁的.NET Framework   8

1.2.2  将ASP.NET与宿主解耦   9

1.2.3  新的ASP.NET Core   10

1.3  .NET Core的命令行工具   10

1.3.1  安装CLI工具   10

1.3.2  dotnet驱动程序工具   11

1.3.3  dotnet的预定义命令   12

1.4  小结   13

第2章  第一个ASP.NET Core项目   15

2.1  ASP.NET Core项目的分析   15

2.1.1  项目结构   16

2.1.2  与运行时环境交互   22

2.2  依赖注入子系统   27

2.2.1  依赖注入一览   27

2.2.2  ASP.NET Core中的依赖注入   29

2.2.3  与外部DI库集成   31

2.3  构建极简网站   33

2.3.1  创建单端点网站   34

2.3.2  访问Web服务器上的文件   40

2.4  小结   44

第II部分  ASP.NET MVC应用程序模型

第3章  启动ASP.NET MVC   47

3.1  启用MVC应用程序模型   47

3.1.1  注册MVC服务   48

3.1.2  启用传统路由   50

3.2  配置路由表   53

3.2.1  路由的剖析   54

3.2.2  路由的高级方面   59

3.3  ASP.NET MVC的机制   62

3.3.1  操作调用程序   63

3.3.2  处理操作结果   64

3.3.3  操作筛选器   64

3.4  小结   65

第4章  ASP.NET MVC控制器   67

4.1  控制器类   67

4.1.1  发现控制器的名称   68

4.1.2  继承的控制器   69

4.1.3  POCO控制器   70

4.2  控制器操作   73

4.2.1  将操作映射到方法   73

4.2.2  基于特性的路由   77

4.3  实现操作方法   80

4.3.1  基本数据获取   80

4.3.2  模型绑定   82

4.3.3  操作结果   88

4.4  操作筛选器   91

4.4.1  操作筛选器的剖析   91

4.4.2  操作筛选器的小集合   94

4.5  小结   97

第5章  ASP.NET MVC视图   99

5.1  提供HTML内容   99

5.1.1  从终止中间件提供HTML   100

5.1.2  从控制器提供HTML   100

5.1.3  从Razor页面提供HTML   101

5.2  视图引擎   102

5.2.1  调用视图引擎   102

5.2.2  Razor视图引擎   103

5.2.3  添加自定义视图引擎   108

5.2.4  Razor视图的结构   109

5.3  向视图传递数据   113

5.3.1  内置的字典   113

5.3.2  强类型视图模型   116

5.3.3  通过DI系统注入数据   118

5.4  Razor页面   118

5.4.1  引入Razor页面的理由   118

5.4.2  Razor页面的实现   119

5.4.3  从Razor页面提交数据   120

5.5  小结   122

第6章  Razor语法   123

6.1  语法元素   123

6.1.1  处理代码表达式   124

6.1.2  布局模板   128

6.1.3  分部视图   131

6.2  Razor标记帮助程序   133

6.2.1  使用标记帮助程序   133

6.2.2  内置的标记帮助程序   135

6.2.3  编写自定义标记帮助程序   138

6.3  Razor视图组件   141

6.3.1  编写视图组件   142

6.3.2  Composition UI模式   143

6.4  小结   145

第III部分  跨领域关注点

第7章  设计考虑   149

7.1  依赖注入基础结构   149

7.1.1  进行重构以隔离依赖   149

7.1.2  ASP.NET Core DI系统概述   152

7.1.3  DI容器的各个方面   155

7.1.4  在层中注入数据和服务   156

7.2  收集配置数据   157

7.2.1  支持的数据提供程序   158

7.2.2  构建配置文档对象模型   160

7.2.3  传递配置数据   162

7.3  分层架构   164

7.3.1  表示层   165

7.3.2  应用层   167

7.3.3  领域层   167

7.3.4  基础结构层   168

7.4  处理异常   168

7.4.1  异常处理中间件   168

7.4.2  异常筛选器   171

7.4.3  记录异常   173

7.5  小结   174

第8章  应用程序安全   175

8.1  Web安全基础结构   175

8.1.1  HTTPS协议   175

8.1.2  处理安全证书   176

8.1.3  对HTTPS应用加密   176

8.2  ASP.NET Core中的身份验证   176

8.2.1  基于cookie的身份验证   177

8.2.2  处理多个身份验证方案   179

8.2.3  建模用户身份   180

8.2.4  外部身份验证   184

8.3  通过ASP.NET Identity进行用户身份验证   189

8.3.1  ASP.NET Identity概述   189

8.3.2  使用User Manager   193

8.4  授权策略   197

8.4.1  基于角色的授权   198

8.4.2  基于策略的授权   201

8.5  小结   206

第9章  访问应用程序数据   207

9.1  创建相对通用的应用程序后端   208

9.1.1  整体式应用程序   208

9.1.2  CQRS方法   210

9.1.3  基础结构层的构成   211

9.2  .NET Core中的数据访问   212

9.2.1  Entity Framework 6.x   213

9.2.2  ADO.NET适配器   215

9.2.3  使用微型O/RM框架   217

9.2.4  使用NoSQL存储   219

9.3  EF Core的常见任务   220

9.3.1  建模数据库   221

9.3.2  处理表数据   224

9.3.3  处理事务   229

9.3.4  关于异步数据处理   231

9.4  小结   233

第IV部分  前端

第10章  设计Web API   237

10.1  使用ASP.NET Core构建Web API   237

10.1.1  公开HTTP端点   238

10.1.2  文件服务器   240

10.2  设计RESTful接口   242

10.2.1  REST简介   242

10.2.2  在ASP.NET Core

中使用REST   245

10.3  保护Web API的安全   248

10.3.1  只计划真正需要的安全性   249

10.3.2  较为简单的访问控制方法   250

10.3.3  使用身份管理服务器   251

10.4  小结   258

第11章  从客户端提交数据   259

11.1  组织HTML表单   259

11.1.1  定义HTML表单   260

11.1.2  Post-Redirect-Get模式   263

11.2  通过JavaScript提交表单   266

11.2.1  上传表单内容   266

11.2.2  刷新当前屏幕的一部分   270

11.2.3  将文件上传到Web服务器   272

11.3  小结   275

第12章  客户端数据绑定   277

12.1  通过HTML刷新视图   277

12.1.1  准备工作   278

12.1.2  定义可刷新区域   278

12.1.3  综合运用   278

12.2  通过JSON刷新视图   284

12.2.1  Mustache.JS库简介   284

12.2.2  KnockoutJS库简介   288

12.3  构建Web应用程序的Angular方法   293

12.4  小结   294

第13章  构建设备友好的视图   295

13.1  根据实际设备调整视图   295

13.1.1  HTML 5在开发设备应用方面的优势   296

13.1.2  特征检测   298

13.1.3  客户端设备检测   300

13.1.4  Client Hints即将问世   303

13.2  对设备友好的图片   303

13.2.1  PICTURE元素   303

13.2.2  ImageEngine平台   305

13.2.3  自动调整图片大小   305

13.3  面向设备的开发策略   307

13.3.1  以客户端为中心的策略   307

13.3.2  以服务器为中心的策略   311

13.4  小结   312

第V部分  ASP.NET Core生态系统

第14章  ASP.NET Core的运行时环境   315

14.1  ASP.NET Core的宿主   315

14.1.1  WebHost类   316

14.1.2  自定义宿主设置   319

14.2  内置的HTTP服务器   324

14.2.1  选择HTTP服务器   324

14.2.2  配置反向代理   326

14.2.3  Kestrel的配置参数   329

14.3  ASP.NET Core的中间件   331

14.3.1  管道架构   331

14.3.2  编写中间件组件   333

14.3.3  打包中间件组件   337

14.4  小结   339

第15章  部署ASP.NET Core应用程序   341

15.1  发布应用程序   341

15.1.1  在Visual Studio内发布应用程序   342

15.1.2  使用CLI工具发布应用程序   347

15.2  部署应用程序   348

15.2.1  部署到IIS   349

15.2.2  部署到Microsoft Azure   351

15.2.3  部署到Linux   355

15.3  Docker容器   357

15.3.1  容器与虚拟机   357

15.3.2  从容器到微服务架构   358

15.3.3  Docker与Visual Studio 2017   358

15.4  小结   359

第16章  迁移和采用策略   361

16.1  寻找商业价值   361

16.1.1  寻找益处   362

16.1.2  brownfield开发   366

16.1.3  greenfield开发   367

16.2  yellowfield策略概述   370

16.2.1  处理缺失的依赖   370

16.2.2  .NET Portability Analyzer   370

16.2.3  Windows Compatibility Pack   372

16.2.4  推迟跨平台挑战   372

16.2.5  走向微服务架构   373

16.3  小结   375