计算机
类型
可以朗读
语音朗读
161千字
字数
2023-03-01
发行日期
展开全部
主编推荐语
主编推荐:深入了解.NET框架核心设计,掌握性能调优与部署技巧。
内容简介
本书主要介绍。NET框架的核心部分,不仅阐述了框架的核心设计,还展示了实践代码和运行效果,同时根据不同的功能模块扩展出属于自己的小组件。通过阅读本书,读者可以深入了解。NET框架的核心设计,掌握。NET性能调优和ASP.NET Core的部署方式。本书包含18章。第1~3章主要介绍。NET框架、开发环境和运行模式。第4~12章主要介绍依赖注入、配置与选项、后台任务、中间件、缓存、本地化、健康检查、文件系统和日志等常用功能模块。第13~17章主要介绍线程、线程同步、内存管理、诊断和调试,以及编译技术等内容。第18章主要介绍应用程序的部署方式,包括宿主机的部署,以及Docker和Kubernetes的部署。
目录
- 版权信息
- 内容简介
- 推荐序
- 前言
- 第1章 .NET概述和环境安装
- 1.1 .NET框架简介
- 1.1.1 .NET Core简介
- 1.1.2 .NET Standard简介
- 1.2 .NET的开发环境
- 1.2.1 安装Visual Studio
- 1.2.2 安装Visual Studio Code
- 1.2.3 设置Visual Studio Code环境
- 1.2.4 Visual Studio Code调试
- 1.2.5 .NET CLI
- 1.2.6 LINQPad
- 1.3 小结
- 第2章 .NET运行原理概述
- 2.1 .NET CLI概述
- 2.1.1 将C#编译成机器代码
- 2.1.2 运行时
- 2.1.3 程序集和清单
- 2.1.4 公共中间语言
- 2.1.5 .NET Native
- 2.2 小结
- 第3章 ASP.NET Core应用程序的多种运行模式
- 3.1 自宿主
- 3.2 IIS服务承载
- 3.3 将WebAPI嵌入桌面应用程序中
- 3.4 服务承载
- 3.4.1 使用Worker Service项目模板
- 3.4.2 Windows服务注册
- 3.4.3 Linux服务注册
- 3.4.4 将WebAPI托管为Windows服务
- 3.5 延伸阅读:WindowsFormsLifetime
- 3.6 小结
- 第4章 依赖注入
- 4.1 .NET依赖注入
- 4.1.1 服务的注册
- 4.1.2 生命周期
- 4.1.3 服务描述
- 4.1.4 作用域验证
- 4.2 实现批量服务注册
- 4.2.1 根据名称匹配并注册
- 4.2.2 根据标记注册
- 4.2.3 配置扩展方法
- 4.3 小结
- 第5章 配置与选项
- 5.1 配置模式
- 5.1.1 获取和设置配置
- 5.1.2 使用强类型对象承载配置
- 5.1.3 使用环境变量配置源
- 5.1.4 使用命令行配置源
- 5.1.5 配置管理器(ConfigurationManager)
- 5.2 选项模式
- 5.2.1 将配置绑定Options对象
- 5.2.2 命名选项的使用
- 5.2.3 Options内容验证
- 5.2.4 Options后期配置
- 5.2.5 IOptionsSnapshot<TOptions>
- 5.2.6 IOptionsMonitor<TOptions>
- 5.3 设计一个简单的配置中心
- 5.3.1 什么是配置中心
- 5.3.2 ConfigurationSource
- 5.3.3 ConfigurationProvider
- 5.3.4 配置扩展方法
- 5.3.5 配置动态更新(HTTP Long Polling方案)
- 5.4 小结
- 第6章 使用IHostedService和BackgroundService实现后台任务
- 6.1 IHostedService
- 6.2 BackgroundService
- 6.3 任务调度
- 6.3.1 Hangfire
- 6.3.2 Quartz.NET
- 6.4 小结
- 第7章 中间件
- 7.1 中间件的作用
- 7.2 中间件的调用过程
- 7.3 编写自定义中间件
- 7.4 在过滤器中应用中间件
- 7.5 制作简单的API统一响应格式与自动包装
- 7.5.1 创建一个中间件
- 7.5.2 配置扩展方法
- 7.6 延伸阅读:责任链模式
- 7.7 延伸阅读:中间件常见的扩展方法
- 7.7.1 Run方法和Use方法
- 7.7.2 Map方法
- 7.7.3 MapWhen方法
- 7.7.4 UseWhen方法
- 7.8 小结
- 第8章 缓存
- 8.1 内存缓存
- 8.1.1 IMemoryCache
- 8.1.2 ICacheEntry
- 8.1.3 缓存大小的限制
- 8.2 分布式缓存
- 8.2.1 IDistributedCache
- 8.2.2 基于Redis的分布式缓存
- 8.2.3 基于SQL Server的分布式缓存
- 8.3 HTTP缓存
- 8.3.1 响应缓存
- 8.3.2 ResponseCachingMiddleware中间件
- 8.4 小结
- 第9章 本地化
- 9.1 内容本地化
- 9.1.1 提供文本多语言支持
- 9.1.2 RequestLocalizationMiddleware中间件
- 9.1.3 使用RouteDataRequestCultureProvider
- 9.1.4 自定义RequestCultureProvider类
- 9.2 多样化的数据源
- 9.2.1 基于JSON格式的本地化
- 9.2.2 基于Redis存储的本地化
- 9.3 小结
- 第10章 健康检查
- 10.1 检查当前应用的健康状态
- 10.1.1 查看当前应用的可用性
- 10.1.2 自定义健康检查逻辑
- 10.1.3 改变响应状态码
- 10.1.4 定制响应内容
- 10.2 发布健康报告
- 10.3 可视化健康检查界面
- 10.4 小结
- 第11章 文件系统
- 11.1 ASP.NET Core静态文件
- 11.1.1 静态文件
- 11.1.2 新增静态文件目录
- 11.1.3 自定义HTTP响应头
- 11.1.4 静态文件的授权管理
- 11.1.5 开启目录浏览服务
- 11.1.6 自定义文件扩展名
- 11.2 自定义一个简单的文件系统
- 11.2.1 文件和目录
- 11.2.2 RedisFileProvider
- 11.2.3 使用自定义文件系统
- 11.3 小结
- 第12章 日志
- 12.1 控制台日志
- 12.1.1 控制台日志的输出
- 12.1.2 日志级别和事件ID
- 12.1.3 日志过滤
- 12.1.4 日志范围
- 12.1.5 JSON配置
- 12.1.6 控制台日志格式化
- 12.1.7 实现自定义格式化程序
- 12.1.8 日志的设计与实现
- 12.1.9 控制台日志的设计与实现
- 12.1.10 格式化的设计与实现
- 12.1.11 Source Generator
- 12.2 调试日志
- 12.2.1 调试日志的输出
- 12.2.2 调试日志的设计与实现
- 12.3 事件日志
- 12.3.1 事件日志的输出
- 12.3.2 事件日志的设计与实现
- 12.4 EventSource日志
- 12.4.1 EventSource日志的输出
- 12.4.2 EventSource日志的设计与实现
- 12.5 TraceSource日志
- 12.5.1 TraceSource日志的输出
- 12.5.2 TraceSource日志的设计与实现
- 12.6 DiagnosticSource日志
- 12.6.1 DiagnosticSource日志的输出
- 12.6.2 DiagnosticSource日志的设计与实现
- 12.7 小结
- 第13章 多线程与任务并行
- 13.1 线程简介
- 13.1.1 线程的概念
- 13.1.2 线程的使用方式
- 13.1.3 线程管理
- 13.1.4 线程池
- 13.2 基于任务的异步编程
- 13.2.1 异步任务
- 13.2.2 Task生命周期
- 13.2.3 取消任务
- 13.2.4 使用关键字await和async获取异步任务的结果
- 13.2.5 处理异步操作中的异常
- 13.2.6 上下文延续
- 13.2.7 TaskScheduler
- 13.3 线程并行
- 13.4 小结
- 第14章 线程同步机制和锁
- 14.1 原子操作
- 14.1.1 无锁编程
- 14.1.2 无锁算法
- 14.2 自旋锁
- 14.2.1 SpinWait实现自旋锁
- 14.2.2 SpinLock实现自旋锁
- 14.3 混合锁
- 14.4 互斥锁
- 14.5 信号量
- 14.5.1 Semaphore
- 14.5.2 SemaphoreSlim
- 14.6 读写锁
- 14.7 小结
- 第15章 内存管理
- 15.1 内存分配
- 15.1.1 栈空间和堆空间
- 15.1.2 值类型和引用类型
- 15.1.3 创建一个新对象
- 15.1.4 小对象堆分配
- 15.1.5 大对象堆分配
- 15.1.6 固定对象堆分配
- 15.2 垃圾回收器
- 15.2.1 分代
- 15.2.2 标记阶段
- 15.2.3 计划阶段
- 15.2.4 重定位阶段
- 15.2.5 清扫阶段
- 15.2.6 压缩阶段
- 15.3 资源释放
- 15.3.1 Dispose
- 15.3.2 DisposeAsync
- 15.4 垃圾回收器的设置
- 15.4.1 工作站模式与服务器模式的垃圾回收
- 15.4.2 普通垃圾回收和后台垃圾回收
- 15.4.3 设置延迟模式
- 15.4.4 垃圾回收器参数调优
- 15.5 小结
- 第16章 诊断和调试
- 16.1 性能诊断工具
- 16.1.1 Visual Studio
- 16.1.2 PerfView
- 16.1.3 ILSpy
- 16.1.4 dnSpy
- 16.1.5 WinDbg
- 16.1.6 BenchmarkDotNet
- 16.1.7 LLDB
- 16.1.8 dotnet-dump
- 16.1.9 dotnet-gcdump
- 16.1.10 dotnet-trace
- 16.1.11 dotnet-counters
- 16.1.12 dotnet-symbol
- 16.2 Linux调试
- 16.2.1 在WSL2中调试
- 16.2.2 使用Visual Studio(Code)远程调试Linux部署的应用
- 16.2.3 使用容器工具调试
- 16.3 小结
- 第17章 编译技术精讲
- 17.1 IL解析
- 17.1.1 IL简介
- 17.1.2 从.NET代码到IL代码
- 17.1.3 IL语法的格式
- 17.2 JIT简介
- 17.2.1 JIT编译器
- 17.2.2 在Visual Studio中查看汇编代码
- 17.3 JIT编译
- 17.3.1 分层编译
- 17.3.2 使用PGO优化程序编译(动态PGO)
- 17.3.3 使用PGO优化程序编译(静态PGO)
- 17.4 AOT编译
- 17.4.1 用Crossgen2进行AOT预编译
- 17.4.2 Source Generators
- 17.5 小结
- 第18章 部署
- 18.1 发布与部署
- 18.1.1 部署至Ubuntu操作系统中
- 18.1.2 部署至CentOS操作系统中
- 18.1.3 部署至Windows Server IIS中
- 18.2 Docker
- 18.2.1 容器技术解决了什么
- 18.2.2 安装Docker
- 18.2.3 使用加速器
- 18.2.4 下载基础镜像
- 18.3 编写Dockerfile文件
- 18.4 构建.NET应用镜像
- 18.5 Docker Compose
- 18.5.1 安装docker-compose命令行工具
- 18.5.2 命令行
- 18.5.3 部署.NET实例
- 18.6 Docker Swarm
- 18.6.1 集群初始化
- 18.6.2 构建.NET实例
- 18.7 Kubernetes
- 18.7.1 安装Kubernetes
- 18.7.2 安装Kubernetes Dashboard
- 18.7.3 部署.NET应用
- 18.7.4 公布应用程序
- 18.8 小结
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。