首页 > 开发 > .Net > 正文

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

2020-02-03 15:58:38
字体:
来源:转载
供稿:网友
在经历了漫长的等待后,我们终于看到了清华大学出版社组织重译的《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》的。”





发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表