《深入浅出:.NET框架设计与实现》主要介绍.NET 框架的核心部分,不仅阐述了框架的核心设计,还展示了实践代码和运行效果,同时根据不同的功能模块扩展出属于自己的小组件。通过阅读本书,读者可以深入了解.NET框架的核心设计,掌握.NET 性能调优和 ASP.NET Core 的部署方式。本书包含 18 章。第 1~3 章主要介绍.NET 框架、开发环境和运行模式。第 4~12 章主要介绍依赖注入、配置与选项、后台任务、中间件、缓存、本地化、健康检查、文件系统和日志等常用功能模块。第 13~17 章主要介绍线程、线程同步、内存管理、诊断和调试,以及编译技术等内容。第 18 章主要介绍应用程序的部署方式,包括宿主机的部署,以及 Docker 和 Kubernetes 的部署。
《深入浅出:.NET框架设计与实现》可供.NET 开发人员和.NET 初学者阅读与参考,也适合具备其他编程语言基础且想要学习.NET 的开发人员阅读,还可为读者在工作及巩固基础时提供有力支持。
本书脱离特定版本号,使其销售不限于某个特定的版本。本书将一些核心内容篇章从深到浅进行一个概述,让读者更深入的了解其内部的实现机制,在章节后面多数篇章将以案例加DEMO的形式进行编写。涵盖GC、调试、线程、容器和云原生等内容
冯辉,Microsoft MVP、Dapr Member、.NET Conf China 2020/2021讲师、开源技术的积极倡导者与贡献者。具有丰富的.NET开发经验,专注于.NET平台、云原生、服务化和DevOps等技术领域的研究。
前言
随着.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)、管生玄、黄新成(一线码农)和周杰等人对本书的审核和校对,同时感谢家人、朋友和同事在笔者编写本书期间给予的支持与鼓励。
感谢符隆美编辑对我的悉心指导,她对本书的审核和建议使我的写作水平有了很大的提高,在此表示感谢!