深入浅出:.NET框架设计与实现
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言
Preface

随着.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)、管生玄、黄新成(一线码农)和周杰等人对本书的审核和校对,同时感谢家人、朋友和同事在笔者编写本书期间给予的支持与鼓励。

感谢符隆美编辑对我的悉心指导,她对本书的审核和建议使我的写作水平有了很大的提高,在此表示感谢!