推荐序
Forewords
第一次和冯辉接触是几年前他邀请我参加济南.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月于杭州