品味.NET巨著——书评《Microsoft .NET框架程序设计(修订版)》

** 品味 .NET 巨著 **


—— ** 书评 《 Microsoft .NET框架程序设计(修订版)》 **


** ** _ _ 李洪根

(本文首发于《程序员》 2004 年第 2 期)

在经历了漫长的等待后,我们终于 看到了清华大学出版社组织重译的 《 Microsoft .NET 框架程序设计(修订版) 》 一书。本书英文原名是 Applied Microsoft .NET Framework Programming ,由 全球 知名 的技术作家 Jeffrey Richter 先生所著。在去年《程序员》的 .NET 好书榜中,我们曾推荐过此书的英文版。一直以来,能透彻地分析 .NET 框架平台体系和底层技术的书籍了了无几。毫无疑问,《 Microsoft .NET 框架程序设计(修订版)》给国内 .NET 开发人员带来了新的希望,本书对 .NET 平台进行了全面地剖析,语言流畅、翻译准确,不愧为 .NET 领域的经典图书。

说到此书,就 容我稍费笔墨对 Jeffrey 先生做一简要的介绍。 Jeffrey Richter 先生是 Windows/.NET 程序设计领域享有盛誉的技术作家,名刊 MSDN 杂志的 .NET 专栏撰稿人。其传奇著作《 Windows 高级编程指南》( Windows 95 : A Developer's Guide , Advanced Windows )、《 Windows 核心编程》( Programming Applications for Microsoft Windows )早已成为 Windows 程序设计领域事实上的圣经。 他在 13 岁时开始痴迷于编程, 23 岁从 Drexel University 获得计算机学位后,就耕耘在 Windows 开发领域。他的 Windows 著作 培育了几代软件开发设计人员 。

本书的译者是做技术出身的 李建忠 先生。在译序中,李建忠就告诉读者准备 .NET 框架 SDK 和一些常用工具,并给读者提了一些指导性建议。他在每章的关键技术点都加有译注,显示了译者本人深厚的技术功底,同时也给本书增值不少!更重要的是他对 Jeffrey 所犯的错误以译注的形式进行了纠正,作为读者 理解原书的重要补充。在一些技术细节上,李 建忠亲自对代码进行调试,如在第六章“通用对象操作”里, 李建忠亲自 重写 Equals 和 GetHashCode 方法中的一个,检验编译器是否出现警告信息 。 读者可以留意每一章中的译注,就会发现,所有的这些都是非技术出身的翻译人员无法做到的!由于李建忠的技术功底和语言领悟能力,本书算是给 Jeff 交了一份圆满的答卷,也给读者交了一份圆满的答卷!

在读《 Microsoft .NET 框架程序设计(修订版)》时,给我的总体感觉是:剖析透彻、条理清晰、每一页都有收获,每一个技术点都值得我们去理解和品味。译文流畅、读书简直是一种享受。书中的内容主要是涉及 .NET 平台核心技术,如 .NET 框架原理、程序集、元数据、值类型/引用类型、类型设计、异常处理、垃圾收集等核心技术进行了精妙的讲解,而且作者对开发中的种种问题给予了指导。比如:讲解 .NET 框架原理时,深入分析了我们利用 C# 编译器( Csc.exe )生成托管模块(需要通用语言运行时 CLR 才能执行的 PE 文件),托管 EXE 如何启动 CLR ,微软组件对象运行时执行擎( MsCorrEE.dll ,在 system32 目录下)怎么工作等做了详细的解释。

给我留有深刻印象的是该书的第十九章。这一章可以说是 .NET 技术的理论精华所在:关于 .Net 自动内存管理(即垃圾回收)。在以前, .NET 框架帮助文档阐述得不是很详细。在本书中,作者用平实的语言阐述了垃圾收集的机制。比如我们用 New 关键字实例化一个对象,中间语言( IL )指令 newobj 创建新的对象,在托管堆中为对象分配内存。垃圾收集器检查托管堆中是否有不再使用的对象,进行内存回收。这一系列的理论,通过译者的表述,把整个过程表述得十分清晰明了,而且配有图表进行详细的说明!

在本书中, Jeffrey 先生还写了大量的 C# 代码,结合 .NET 框架深入进行剖析,比如值类型的“装箱和拆箱”,分析了大量的代码,以及这些代码执行多少次装箱和拆箱操作。我想,本书之所以如此成功,是和 Jeffrey 先生十几年来的 C++ 技术背景分不开的。尤其是对底层的理解上, Jeffrey 先生熟悉 Windows 底层,经常用反汇编工具( Ildasm.exe ),这对理解 .NET 框架起到了很大作用。

看过此书的人,对 .NET 框架会有一个全面的理解,而且可以发现微软 .NET 领域的技术精髓。那时,你会觉得 Visual Studio.NET 只是一个高级的源代码编辑工具而已。而更多的底层技术,是由 .NET 框架来完成的。你可以分析到程序的底层,可以解决程序编写、调试、部署中的许多问题。现在,你不访在网上下载《 Microsoft .NET 框架程序设计(修订版)》的一些章节,细细品味。

引用本书译序中的一段话作为本文的结尾:

“ 相信对于 .NET 领域应该很快会有同样的说法 —— .NET 程序员将会因为此书而分为两类,一类是读过《 Applied Microsoft.NET Framework Programming 》的,一类是没有读过《 Applied Microsoft.NET Framework Programming 》的。 ”

Published At
Categories with Web编程
Tagged with
comments powered by Disqus