# aspnetcore-in-action **Repository Path**: cisdu/aspnetcore-in-action ## Basic Information - **Project Name**: aspnetcore-in-action - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-25 - **Last Updated**: 2021-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 《ASP.NET Core 3 从入门到实战》 ## 内容简介 该代码库是《ASP.NET Core 3 从入门到实战》一书对应的示例代码。 ## 勘误 编者才疏学浅, 更兼时间和精力所限, 书中可能存在错误之处,已发现的错误在[勘误](./corrigendum.md)中列出,对新的错误欢迎提[issues](https://github.com/xiaobaoonline/aspnetcore-in-action/issues)不吝告知, 将不胜感激。 ## 目录 + 第 1 章 为什么选择 ASP.NET Core + 1.1 什么是.NET + 1.2 ASP.NET Core 的特点 + 1.3 读者能从本书学到什么 + 第 2 章 ASP.NET Core 开发工具安装 + 2.1 .NET Core SDK 安装 + 2.1.1 获取.NET Core SDK + 2.1.2 安装.NET Core SDK + 2.2 Visual Studio Code 安装 + 2.2.1 获取 Visual Studio Code + 2.2.2 安装 Visual Studio Code + 2.2.3 更新 Visual Studio Code + 2.3 Visual Studio 2019 安装 + 2.3.1 首先确保计算机可以安装 Visual Studio + 2.3.2 获取 Visual Studio + 2.3.3 安装 Visual Studio 安装程序 + 2.3.4 启动安装程序 + 第 3 章 ASP.NET Core 核心组件详解 + 3.1 框架总述 + 3.2 依赖注入 + 3.2.1 什么是依赖注入 + 3.2.2 依赖注入组件 + 3.2.3 服务描述类 ServiceDescriptor + 3.2.4 IServiceCollection 与服务注册 + 3.2.5 IServiceProvider 获取服务实例 + 3.2.6 作用域与生命周期 + 3.2.7 IDisposable 与生命周期 + 3.2.8 扩展点 IServiceProviderFactory<TContainerBuilder> + 3.2.9 在 Controller 中获取服务 + 3.3 配置 + 3.3.1 配置组件的构造过程 + 3.3.2 内存配置提供程序 + 3.3.3 命令行配置提供程序 + 3.3.4 环境变量配置提供程序 + 3.3.5 文件配置提供程序 + 3.3.6 Key-per-file 配置提供程序 + 3.3.7 使用 IConfiguration 读取配置 + 3.3.8 使用强类型接收配置 + 3.4 选项组件 + 3.4.1 选项的注入与使用 + 3.4.2 使用命名选项 + 3.4.3 验证选项 + 3.4.4 选项后期配置 + 3.5 中间件 + 3.5.1 注册中间件 + 3.5.2 常用的内置中间件 + 3.6 路由与终结点 + 3.6.1 注册终结点 + 3.6.2 路由模板 + 3.6.3 特性路由 + 3.6.4 路由约束 + 3.6.5 生成链接 + 第 4 章 基于 MVC 设计模式的 Web 应用 + 4.1 创建第一个 ASP.NET Core MVC 项目 + 4.2 什么是 MVC 模式 + 4.3 视图 + 4.3.1 使用视图的好处 + 4.3.2 创建视图 + 4.3.3 利用控制器指定视图 + 4.3.4 视图发现 + 4.3.5 向视图传递数据 + 4.3.6 动态视图 + 4.4 部分视图 + 4.4.1 何时使用部分视图 + 4.4.2 声明部分视图 + 4.4.3 引用部分视图 + 4.4.4 呈现部分视图 + 4.4.5 通过部分视图访问数据 + 4.5 控制器 + 4.5.1 什么是控制器 + 4.5.2 Action + 4.5.3 横切关注点 + 4.6 路 由 + 4.6.1 自定义路由 + 4.6.2 混合路由 + 4.6.3 动态路由 + 4.7 区域 + 4.8 筛选器 + 4.8.1 筛选器的工作原理 + 4.8.2 实现 + 4.9 模型绑定器 + 4.9.1 什么是模型绑定 + 4.9.2 目标 + 4.9.3 源 + 4.9.4 不存在模型属性的源 + 4.9.5 类型转换错误 + 4.9.6 复杂类型 + 4.9.7 集合 + 4.9.8 字典 + 4.9.9 模型绑定路由数据和 URL 字符串参数的全局行为 + 4.9.10 特殊数据类型 + 4.9.11 输入格式化程序 + 4.9.12 从模型绑定中排除指定类型 + 4.9.13 手动模型绑定 + 第 5 章 基于 ASP.NET Core 的 WebAPI + 5.1 创建 ASP.NET Core 的 WebAPI 项目 + 5.2 带有 Swagger 的 Web API 帮助页 + 5.2.1 Swashbuckle.AspNetCore + 5.2.2 Swagger 规范(swagger.json) + 5.2.3 Swagger UI + 5.3 ASP.NET Core Web API 中控制器的返回类型 + 5.3.1 特定类型 + 5.3.2 IActionResult 类型 + 5.3.3 ActionResult <T>类型 + 5.4 使用 Web API 约定 + 5.4.1 应用 Web API 约定 + 5.4.2 创建 Web API 约定 + 第 6 章 ASP.NET Core 中的数据库访问 + 6.1 Entity Framework Core + 6.2 安装并运行 MySQL + 6.2.1 启动 MySQL + 6.2.2 创建数据库 + 6.3 数据库访问 + 6.3.1 添加数据库上下文 + 6.3.2 创建控制器 + 6.4 .NET Core Dapper + 第 7 章 安全与身份认证 + 7.1 身份认证 + 7.1.1 身份认证处理程序 + 7.1.2 身份认证方案 + 7.1.3 身份认证服务 + 7.1.4 身份认证中间件 + 7.1.5 添加基于策略的身份认证方案 + 7.1.6 用户信息模型 + 7.1.7 添加自定义身份认证处理程序 + 7.2 授权 + 7.2.1 简单授权 + 7.2.2 基于角色的授权 + 7.2.3 基于策略的授权 + 7.2.4 授权中间件 + 7.2.5 授权处理程序 + 7.2.6 自定义授权处理程序 + 7.3 集成 IdentityServer4 + 7.4 数据保护 + 7.4.1 数据保护入门 + 7.4.2 用户机密管理 + 7.4.3 小结 + 7.5 强制 HTTPS + 7.5.1 RequireHttpsAttribute + 7.5.2 HTTPS 重定向中间件 + 7.5.3 HTTP 严格传输安全协议 + 7.6 防跨站请求伪造 + 7.6.1 什么是跨站请求伪造 + 7.6.2 同步令牌模式 + 7.7 防开放重定向攻击 + 7.8 防跨站脚本 + 7.8.1 防范跨站脚本攻击 + 7.8.2 使用 Razor 的 HTML 编码 + 7.8.3 使用 Razor 的 JavaScript 编码 + 7.8.4 小结 + 7.9 跨域请求 + 7.9.1 跨域资源共享 + 7.9.2 启用 CORS 中间件 + 7.9.3 配置需要 CORS 的资源路径 + 7.9.4 小结 + 第 8 章 基于 SignalR 开发实时通信应用 + 8.1 基于 SignalR 实时通信 + 8.1.1 数据交互传输 + 8.1.2 Hub 中心 + 8.2 服务端实现 + 8.2.1 创建和使用 Hub + 8.2.2 启用 SignalR + 8.2.3 上下文对象 Context + 8.2.4 Clients 对象 + 8.2.5 向客户端发送消息 + 8.2.6 处理连接事件 + 8.2.7 用户和组 + 8.2.8 服务可扩展实现 + 8.3 客户端实现 + 8.3.1 创建 connection 对象 + 8.3.2 使用 on 添加客户端方法 + 8.3.3 使用 start 开始连接服务端 + 8.3.4 使用 invoke 调用服务端方法 + 8.3.5 自动连接 + 8.3.6 手动重连 + 第 9 章 基于 Blazor 的 Web 客户端技术 + 9.1 Blazor 的应用模型 + 9.2 创建项目 + 9.3 页面路由 + 9.4 数据绑定 + 9.5 组件 + 9.5.1 模板化组件 + 9.5.2 组件库 + 9.6 状态管理 + 第 10 章 日志与监控 + 10.1 日志组件 + 10.1.1 日志类别 + 10.1.2 日志级别 + 10.1.3 日志对象与依赖注入 + 10.1.4 事件 ID + 10.1.5 使用日志模板 + 10.1.6 日志作用域 + 10.1.7 筛选日志输出 + 10.2 健康检查 + 10.2.1 注册健康检查 + 10.2.2 配置健康检查终结点 + 10.2.3 自定义健康检查项 + 10.2.4 检查结果发布器 + 第 11 章 远程调用 + 11.1 使用 HttpClient 调用远程 API + 11.1.1 构造 HttpClient + 11.1.2 发出请求 + 11.1.3 设置代理 + 11.1.4 处理 Cookie + 11.2 使用 HttpClientFactory 机制管理 HttpClient + 11.2.1 注册并使用 HttpClientFactory + 11.2.2 使用命名客户端 + 11.2.3 使用类型化客户端 + 11.2.4 使用 ConfigureHttpClient + 11.2.5 使用 ConfigurePrimaryHttpMessageHandler + 11.2.6 理解生命周期 + 11.2.7 HTTP 请求管道 + 11.2.8 使用 ConfigureHttpMessageHandlerBuilder + 11.2.9 关于请求日志 + 11.3 使用 gRPC 实现高性能远程调用 + 11.3.1 定义接口描述 + 11.3.2 配置服务端 + 11.3.3 配置客户端 + 11.3.4 使用 dotnet-grpc 命令行工具管理 .proto 文件引用 + 第 12 章 部署 ASP.NET Core 应用 + 12.1 部署到 IIS 中 + 12.1.1 概述 + 12.1.2 下载和安装 ASP.NET Core 模块 + 12.1.3 部署到 IIS 站点 + 12.2 部署为 Windows Service + 12.2.1 配置应用 + 12.2.2 安装和运行服务 + 12.3 部署到 Linux + 12.3.1 安装.NET 运行时 + 12.3.2 部署应用 + 12.3.3 反向代理 + 12.4 部署到 Docker 中 + 12.4.1 Docker 简介 + 12.4.2 Docker 术语 + 12.4.3 生成和制作 Dockerfile + 12.4.4 生成镜像 + 12.4.5 部署镜像 + 12.5 高可用架构 + 12.5.1 概述 + 12.5.2 应用高可用 + 第 13 章 ASP.NET Core 高级内容 + 13.1 文件提供程序 + 13.1.1 访问本地物理文件系统 + 13.1.2 监视文件的变化 + 13.2 请求功能接口 + 13.3 URL 重写 + 13.3.1 重写规则 + 13.3.2 IRule 接口 + 13.3.3 小结 + 13.4 缓存 + 13.4.1 缓存标记帮助程序 + 13.4.2 内存缓存和分布式缓存 + 第 14 章 结合 ML.NET 实现机器学习应用 + 14.1 机器学习介绍 + 14.1.1 什么是机器学习 + 14.1.2 机器学习的作用 + 14.1.3 机器学习的分类 + 14.1.4 机器学习的典型步骤 + 14.2 ML.NET 简介 + 14.3 ML.NET 特色功能 + 14.4 ML.NET 开发环境搭建 + 14.4.1 安装 ML.NET 库 + 14.4.2 安装 Microsoft.ML.TimeSeries 与 Microsoft.ML.AutoML + 14.4.3 安装 ML.NET 模型生成器 + 14.4.4 安装 ML.NET 命令行接口(CLI)工具 + 14.5 ML.NET 快速上手 + 14.5.1 构建模型阶段 + 14.5.2 使用模型阶段 + 14.6 ML.NET 与 ONNX 实践 + 14.6.1 准备事项 + 14.6.2 创建控制台应用程序 + 14.6.3 准备数据和预训练的模型 + 14.6.4 定义输入和输出数据结构 + 14.6.5 定义评分预测类 + 14.6.6 使用模型进行分析和输出 + 第 15 章 更多的学习途径 + 15.1 .NET Core 的学习途径 + 15.2 其他需要关注的技术