新华书店直发 全新正版 急速发货 开票联系客服
¥ 103.27 7.9折 ¥ 129.9 全新
库存3件
作者冯辉
出版社电子工业出版社
ISBN9787121420191
出版时间2023-02
装帧平装
开本16开
定价129.9元
货号29518889
上书时间2024-10-20
推 荐 序
次和冯辉接触是几年前他邀请我参加济南.NET 俱乐部的活动,当时我因工作原因未能赴约,到现在仍深感遗憾。在年初的时候得知他正在撰写一本讲解.NET 框架的书,又有幸被邀请为该书写序,在忐忑之余,我也想借这个机会介绍一下自己在.NET 这条路的心路历程供读者参考。
在编程道路上,有两件事对我产生过很大的影响。件事可以追溯到 10 年前我次接触编程时,当时我使用.NET 中的 XNA 框架和 WP 框架开发了我的款手机 RPG 游戏并在 Lumia 820 上运行。这次成功开发游戏的经历极大地增强了我对从事编程的信心和对.NET 的兴趣。之后因为工作的需要,我对 WPF、WCF 和 ASP.NET 等不同方向的.NET 技术都有所涉猎。第二件事可以追溯到 Microsoft 宣布个开源的.NET 版本 ASP .NET VNext时,当时我就对 VNext 产生了极大的兴趣。在学习和推广 VNext 时,我结识了 Alex LEWIS、He Zhenxi、Xie Yang 等好友,之后我们一起创建了 NCC(.NET Core Community)社区。
初,.NET Core 提供英文文档作为为数不多的使用参考,所以 NCC 社区刚刚成立时,我们做的件事是翻译ASP.NET Core 初版本的英文文档。得益于Microsoft的开源策略,学习.NET Core 的另一个途径就是阅读 GitHub 官网上的源代码,我也由此养成了阅读开源项目代码的习惯,并且受益至今。受万物皆“Services”并且完全管道化的 ASP.NET Core 框架的启发,我设计了 AspectCore AOP 库,也在从事云原生开发之后在 Go 语言上继续参考ASP.NET Core 实现了以依赖注入作为内核的模块化开发框架。
即使对 .NET Core 已经相对熟悉,我在阅读本书样稿之后还是感觉眼前一亮。本书由浅入深地介绍了.NET Core 框架的核心部分,如依赖注入、配置与选项、中间件、缓存、日志、多线程等。我相信,不管是.NET Core 的初学者,还是想要继续进阶的中高级开发工程师,都能从这本书中获得很大的帮助。
近几年技术浪潮兴替,从大数据、移动互联网、云计算技术的兴起,再到如今人工智能、云原生技术的流行,.NET Core 完成了从运行时、BCL(Base Class Library,基础类库)到开发框架的一系列蜕变。得益于分层编译、重新实现的集合类、Span、网络/文件 I/O 等诸多细节的优化,.NET Core 不仅在几轮的 TechEmpower 性能评测中名列前茅,还可以搭配 C#,使.NET Core 成为事实上的云原生应用开发的平台之一。谨以此序和同为.NET Core 的使用者及爱好者共勉之。
Apache SkyWalking PMC、NCC 社区创始人 刘浩杨
2022 年 8 月于杭州
前言
随着.NET 技术的发展,涌现出众多的设计思想和核心概念。值得开发人员关注的技术点有很多,如 ASP.NET Core 模块的设计、跨平台调试与部署等。
.NET 已经成为一种热门的现代技术体系,从.NET 彻底迈向跨平台和开源开始,已经历经了约 10 个版本。新一代的.NET 平台以拥抱云原生为核心,拥有更小的体积、更少的资源占用和更快的启动速度,并且支持水平扩展。
笔者也算是一个亲历者,从.NET Core 1.0 到现在,是一个从重生到繁荣的成长阶段,.NET 生态更加开放,开源社区越来越活跃,不仅支持传统的 x86 架构体系,还支持ARM 架构,并且获得了龙芯 LoongArch 架构及诸多新兴架构体系的踊跃支持,同时在工业、IoT、车联网等领域获得了广泛运用。无论是从社区参与度,还是从 NuGet 的下载量,都不难看出.NET 的发展速度。
.NET 具备原生的跨平台部署能力,是一种用于构建多端应用的开放平台。使用.NET 可以构建桌面应用、云服务、嵌入式应用及机器学习应用等,读者可以从 GitHub 官网的 dotnet组织中获取它所有的源代码。
计算机科学家 Alan J. Perlis 曾说过:“不能影响你的编程思维方式的语言不值得学习和使用。”由此可知,“思维”非常重要,只有了解一门编程语言或框架的基础模型与核心设计,才能将其应用到日常的编程中。
框架的设计过程是非常复杂的,笔者偏向于将复杂问题简单化,先研究它的实现方式,再了解它的设计模式,通过这一层层的推导过程,慢慢地了解整体脉络。阅读源代码是一个枯燥但会带来收获的过程。在本书中,笔者将框架设计方法,以及它们的实现(可扩展性)方式毫无保留地写下来。
本书集成了笔者在工作中使用.NET 开发应用程序的编写经验和调试经验,同时结合了笔者关于 Linux 平台和容器云平台的使用经验。通过本书,笔者将介绍每个模块的核心设计与实现,因为要想在生产环境中大规模使用,就需要在这个复杂而庞大的项目中抓到主线,了解内部的实现和调试技术,以便快速定位问题和解决问题。
本书对 ASP.NET Core 的部分核心内容进行了深入解析,在这个基础上延伸内容,以及自定义扩展实例,初学者可以更深入地了解 ASP.NET Core 内部的运作方式。本书也涵盖了很多基础知识,如垃圾回收、调试、线程等,除此之外,添加了部署方面的内容,将应用程序部署到宿主机、Docker 和 Kubernetes 中。
笔者通过对.NET 技术的原理进行剖析及实例的演示,帮助读者快速熟悉框架的核心设计及实现原理。希望读者在阅读完本书后,能够将书中的内容学以致用,使用.NET 构建出高性能的应用程序,同时为开源社区添砖加瓦。
关于勘误
完成本书绝不是一件简单的事情。虽然笔者力争保证内容的准确性,并且花费了很长的时间和大量的精力核对书中的文字和内容,但个人水平有限,书中难免存在一些不足之处,望广大读者批评指正。欢迎发邮件至 hueifeng2020@outlook.com,期待您的反馈。
致谢
感谢邹溪源、严振范、锅美玲、李卫涵、胡心(Azul X)、管生玄、黄新成(一线码农)和周杰等人对本书的审核和校对,同时感谢家人、朋友和同事在笔者编写本书期间给予的支持与鼓励。
感谢符隆美编辑对我的悉心指导,她对本书的审核和建议使我的写作水平有了很大的提高,在此表示感谢!
本书主要介绍.NET框架的核心部分,不仅阐述了框架的核心设计,还展示了实践代码和运行效果,同时根据不同的功能模块扩展出属于自己的小组件。通过阅读本书,读者可以深入了解.NET框架的核心设计,掌握.NET性能调优和ASP.NET Core的部署方式。本书包含18章。第1~3章主要介绍.NET框架、开发环境和运行模式。第4~12章主要介绍依赖注入、配置与选项、后台任务、中间件、缓存、本地化、健康检查、文件系统和日志等常用功能模块。第13~17章主要介绍线程、线程同步、内存管理、诊断和调试,以及编译技术等内容。第18章主要介绍应用程序的部署方式,包括宿主机的部署,以及Docker和Kubernetes的部署。
本书主要介绍.NET框架的核心部分,不仅阐述了框架的核心设计,还展示了实践代码和运行效果,同时根据不同的功能模块扩展出属于自己的小组件。通过阅读本书,读者可以深入了解.NET框架的核心设计,掌握.NET性能调优和ASP.NET Core的部署方式。本书包含18章。第1~3章主要介绍.NET框架、开发环境和运行模式。第4~12章主要介绍依赖注入、配置与选项、后台任务、中间件、缓存、本地化、健康检查、文件系统和日志等常用功能模块。第13~17章主要介绍线程、线程同步、内存管理、诊断和调试,以及编译技术等内容。第18章主要介绍应用程序的部署方式,包括宿主机的部署,以及Docker和Kubernetes的部署。
冯辉,Microsoft MVP、Dapr Member、.NET Conf China 2020/2021讲师、开源技术的积极倡导者与贡献者。具有丰富的.NET开发经验,专注于.NET平台、云原生、服务化和DevOps等技术领域的研究。
第1章 .NET概述和环境安装 1
1.1 .NET框架简介 1
1.2 .NET的开发环境 6
1.3 小结 20
第2章 .NET运行原理概述 21
2.1 .NET CLI概述 21
2.2 小结 36
第3章 ASP.NET Core应用程序的多种运行模式 37
3.1 自宿主 37
3.2 IIS服务承载 38
3.3 将WebAPI嵌入桌面应用程序中 39
3.4 服务承载 41
3.5 延伸阅读:WindowsFormsLifetime 53
3.6 小结 59
第4章 依赖注入 60
4.1 .NET依赖注入 61
4.2 实现批量服务注册 80
4.3 小结 84
第5章 配置与选项 85
5.1 配置模式 85
5.2 选项模式 101
5.3 设计一个简单的配置中心 121
5.4 小结 130
第6章 使用IHostedService和BackgroundService实现后台任务 131
6.1 IHostedService 131
6.2 BackgroundService 134
6.3 任务调度 137
6.4 小结 142
第7章 中间件 143
7.1 中间件的作用 143
7.2 中间件的调用过程 144
7.3 编写自定义中间件 147
7.4 在过滤器中应用中间件 151
7.5 制作简单的API统一响应格式与自动包装 156
7.6 延伸阅读:责任链模式 159
7.7 延伸阅读:中间件常见的扩展方法 162
7.8 小结 174
第8章 缓存 175
8.1 内存缓存 175
8.2 分布式缓存 180
8.3 HTTP缓存 188
8.4 小结 193
第9章 本地化 194
9.1 内容本地化 194
9.2 多样化的数据源 203
9.3 小结 210
第10章 健康检查 211
10.1 检查当前应用的健康状态 211
10.2 发布健康报告 233
10.3 可视化健康检查界面 238
10.4 小结 240
第11章 文件系统 241
11.1 ASP.NET Core静态文件 241
11.2 自定义一个简单的文件系统 247
11.3 小结 253
第12章 日志 254
12.1 控制台日志 254
12.2 调试日志 281
12.3 事件日志 285
12.4 EventSource日志 292
12.5 TraceSource日志 298
12.6 DiagnosticSource日志 303
12.7 小结 309
第13章 多线程与任务并行 310
13.1 线程简介 310
13.2 基于任务的异步编程 316
13.3 线程并行 328
13.4 小结 329
第14章 线程同步机制和锁 330
14.1 原子操作 330
14.2 自旋锁 333
14.3 混合锁 337
14.4 互斥锁 340
14.5 信号量 341
14.6 读写锁 346
14.7 小结 348
第15章 内存管理 349
15.1 内存分配 349
15.2 垃圾回收器 357
15.3 资源释放 362
15.4 垃圾回收器的设置 368
15.5 小结 374
第16章 诊断和调试 375
16.1 性能诊断工具 375
16.2 Linux调试 421
16.3 小结 433
第17章 编译技术精讲 434
17.1 IL解析 434
17.2 JIT简介 439
17.3 JIT编译 441
17.4 AOT编译 450
17.5 小结 454
第18章 部署 455
18.1 发布与部署 455
18.2 Docker 464
18.3 编写Dockerfile文件 473
18.4 构建.NET应用镜像 476
18.5 Docker Compose 481
18.6 Docker Swarm 484
18.7 Kubernetes 489
18.8 小结 500
本书主要介绍.NET框架的核心部分,不仅阐述了框架的核心设计,还展示了实践代码和运行效果,同时根据不同的功能模块扩展出属于自己的小组件。通过阅读本书,读者可以深入了解.NET框架的核心设计,掌握.NET性能调优和ASP.NET Core的部署方式。本书包含18章。第1~3章主要介绍.NET框架、开发环境和运行模式。第4~12章主要介绍依赖注入、配置与选项、后台任务、中间件、缓存、本地化、健康检查、文件系统和日志等常用功能模块。第13~17章主要介绍线程、线程同步、内存管理、诊断和调试,以及编译技术等内容。第18章主要介绍应用程序的部署方式,包括宿主机的部署,以及Docker和Kubernetes的部署。
冯辉,Microsoft MVP、Dapr Member、.NET Conf China 2020/2021讲师、开源技术的积极倡导者与贡献者。具有丰富的.NET开发经验,专注于.NET平台、云原生、服务化和DevOps等技术领域的研究。
.NET是一种运行时技术框架,也是一种可以帮助开发人员改变编程思维的框架。由于它的开源特点,读者可以一边学习.NET源代码,一边按照笔者整理的实现路径,边学边做,边做边学。这样读者不仅能够掌握.NET的知识与应用,还可以进一步深刻理解操作系统与应用程序之间的运行时架构的设计思路和实现方法,为以后的职业发展奠定更加坚实的基础。
韦 青
Microsoft(中国)CTO
笔者从.NET的底层原理入手,抽丝剥茧地展开介绍,读者不仅能够快速地掌握很多新技能,还能了解技术背后的实现。笔者非常全面且深入地讲述了一名优秀的.NET开发人员应该掌握的众多技能点(如中间件、缓存、日志监控、多线程、诊断、部署等),读者掌握了这些技能点,就能由点到线、由线及面、触类旁通地快速理解和认识.NET。本书适合初级和中级开发人员快速进阶。
张 潇
DaoCloud大容器团队技术负责人
本书与市面上绝大多数的.NET图书不同,笔者使用由浅入深的方法,采用“show me the code”的风格,层层剖析,读者在阅读过程中会感觉非常轻松、有趣。大多数人会习惯性地浮于表面而忽视底层的实现原理,而这本书可以让你在学习.NET的同时能够深入内部一探究竟。
张善友
Microsoft MVP,腾讯云TVP,华为云MVP
这是一本非常不错的.NET入门学习和深入研究的技术书,笔者结合自己的理解和开发实践,深入浅出地对.NET各方面技术点做了全面的讲解和释义。
.NET社区这几年的快速、繁荣发展,离不开像笔者这样的对技术有执着的追求且勇于创新的布道者。读者一定可以从本书中找到自己的技术共鸣,从而在日常的开发工作中用好、用对.NET技术。
周国庆
特来电新能源股份有限公司云平台中心技术负责人
由浅入深就是本书的真实写照。本书从基础的.NET知识展开介绍,结合笔者的实践经验逐步深入。本书覆盖了.NET技术的方方面面,适合不同层次的读者阅读。另外,本书具有足够的深度,从基础的运行方式讲到了多线程与内存管理,是一本不可多得的好书,值得收藏。
黄国石
中通快递资深架构师
本书是一部.NET开发宝典,从开发项目实践的角度出发,翔实地介绍了全新.NET框架的特性、常用功能,并对所涉及的技术原理进行了细致的讲解,书中列举了详细的图文描述和代码,并且巧妙地涉及各类C#新语法的内容。不论你是正在准备投入.NET开发,还是希望进一步提升自己,我都力荐你阅读本书。
苏震巍
盛派创始人兼首席架构师 Microsoft RD,Microsoft MVP
深入浅出N
全新保定
¥ 30.90
当当正版 深入浅出RxJS 程墨 9787111596646 机械工业出版社
全新北京
¥ 70.76
N③ 深入浅出Node.js
九品绍兴
¥ 6.00
当当正版 深入浅出存储引擎 文小飞 9787111753001 机械工业出版社
全新北京
¥ 78.71
当当正版 深入浅出AndroidJetpack 萧文翰 9787302596103 清华大学出版社
全新北京
¥ 54.72
当当正版 深入浅出强化学习 编程实战 郭宪 9787121367465 电子工业出版社
全新北京
¥ 70.76
【正版】深入浅出WPF9787508476353
九品天津
¥ 15.09
【正版】深入浅出ExcelVBA9787121354649
九品天津
¥ 33.53
【正版】深入浅出WPF9787508476353
九品天津
¥ 21.33
【正版】深入浅出WebAssembly9787121352171
九品天津
¥ 27.77
— 没有更多了 —
以下为对购买帮助不大的评价