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

原创 2004年03月09日 23:44:00

                  

品味.NET巨著<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

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

 

 李洪根

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

(本文首发于《程序员》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 95A Developer's GuideAdvanced Windows)、《Windows核心编程》(Programming Applications for Microsoft Windows)早已成为 Windows 程序设计领域事实上的圣经。他在13岁时开始痴迷于编程,23岁从Drexel University获得计算机学位后,就耕耘在Windows开发领域。他的Windows著作培育了几代软件开发设计人员

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

 

 

 

.NET框架程序设计——体系结构

谈到.NET,相信对于大多数初学者而言,都会感觉比较乱、比较迷茫,什么ASP.NET、VB.NET、VC.NET、ADO.NET、.NETFramework 等等概念,搞的我们晕头转向的,他们之间到底...
  • dongyue786
  • dongyue786
  • 2014年10月15日 15:47
  • 1938

Microsoft.NET 企业级应用 架构设计 (上)

Microsoft.NET 企业级应用 架构设计 (上)1.今天的架构师和架构 在软件里,架构这个术语恰到好处地指代为客户构建系统。 系统存在于环境之中,而环境则通过驱动一系列开发和运维的决策来影响系...
  • u013553804
  • u013553804
  • 2017年12月18日 22:56
  • 95

面试 —— Microsoft .NET 框架

Microsoft .NET 框架 .NET 框架 Microsoft .NET 框架是生成、部署和运行 Web 服务及应用程序的平台。它提供了一个生产率高且基于标准的多语言环境,用于将现有投资与下一...
  • Lyncai
  • Lyncai
  • 2013年09月27日 15:33
  • 692

.NET平台常用的框架整理

从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就继...
  • moonpure
  • moonpure
  • 2016年07月28日 15:57
  • 8865

C#与.Net Framework的联系和区别

C#语言    C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders H...
  • xjc1278003262
  • xjc1278003262
  • 2013年02月23日 19:16
  • 13556

仅当使用 Microsoft .NET Framework 4 或更高版本时,才支持对 x64 进程进行混合模式调试

低于 4 的 .NET Framework 版本不支持对 x64 进程进行混合模式调试。 这意味着,当您进行调试时,无法从托管代码单步执行到本机代码,也无法从本机代码单步执行到托管代码。 问...
  • kingmax54212008
  • kingmax54212008
  • 2015年01月06日 15:34
  • 3105

Win10安装.net framework 4.0失败提示已是操作系统一部分如何解决(一)

由余matlab仿真,安装后缺少C编译器,前提必须安装.net framework 4.0,所以想在win10系统电脑中安装microsoft .net framework 4.0。可是在安装过程中却...
  • qq_35409640
  • qq_35409640
  • 2017年11月10日 17:35
  • 1064

(收藏).NET下的一些AOP框架介绍

原帖:http://www.tech-q.cn/redirect.php?tid=2096&goto=lastpost   AOP引 擎 SetPointSetPoint是一款.NET框 架下的全功 ...
  • u011387207
  • u011387207
  • 2013年07月24日 11:02
  • 2929

J2EE与.NET技术架构的比较

一、J2EE简介 J2EE体系结构图:                          1.组件-容器模型 J2EE是一个基于组件-容器模型的系统平台,其核心概念是容器。容器是指为特定组件提供服务...
  • kanglix1an
  • kanglix1an
  • 2014年06月04日 19:36
  • 8124

如何让.Net 程序脱离.net framework框架运行

Net 框架目前逐步在普及了,仍然有很多人在寻找如何让.NET程序脱离.NET框架的方法。现成的工具有 Xenocode 的postbuidle或者vas,还有 Salamander .NET Lin...
  • demo1573
  • demo1573
  • 2015年09月15日 17:00
  • 661
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:品味.NET巨著——书评《Microsoft .NET框架程序设计(修订版)》
举报原因:
原因补充:

(最多只允许输入30个字)