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

.net框架|程序|设计

在经历了漫长的等待后,我们终于看到了清华大学出版社组织重译的《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》的。”

时间: 2025-01-20 14:27:15

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

Microsoft .NET 框架 FAQ

Microsoft .NET 框架 FAQ Microsoft Corporation2001 年 7 月摘要:本文包含有关 Microsoft .NET 和 Microsoft .NET 框架的常见问题.(共 15 页打印页) 内容 概念性问题运行库技术问题    术语    程序集    应用程序部署和隔离    垃圾回收    远程处理    互操作性    安全性概念性问题 什么是 .NET 框架? 运行库技术问题 术语 什么是公共语言运行库 (CLR)? 什么是通用类型系统 (CTS)

Microsoft .NET 框架常见问题(一)

Microsoft .NET 框架常见问题 Microsoft Corporation 概念问题什么是 .NET? 简单地说,Microsoft .NET 是 Microsoft 以服务的方式递交软件的一种策略.有关完整信息,请参阅有关该主题的白皮书(英文). 以下是白皮书的摘要,简要介绍了 .NET 的关键内容: Microsoft .NET 平台 包括用于创建和操作新一代服务的 .NET 基础结构和工具.用于实施多信息客户端的 .NET 用户经验,以及用于启用新一代智能 Internet 设

Microsoft .NET 框架常见问题(二)

名称空间与程序集名称之间有什么区别?名称空间是类型的一种逻辑命名方案,其中简单类型名称(如 MyType)前面带有用点分隔的层次结构名称.这样的命名方案完全在开发人员的控制之下.例如,键入 MyCompany.FileAccess.A 和 MyCompany.FileAccess.B 在逻辑上将会具有与文件访问相关的功能..NET 框架使用一种层次结构命名方案,用于将类型按相关功能的逻辑类别进行分组,例如,ASP.NET 应用程序框架或远程处理功能.设计工具可以利用名称空间使开发人员更容易在代码

一个男人和三个女人的故事[《.net框架程序设计》读书笔记

.net框架|笔记|程序|设计|示例 第十一章 多事件示例[一个男人和三个女人的故事] 摘要: 应用FCL中的System.ComponentModel.EventHandlerList示例一个类型中发布多事件的应用 场景:一个男生有三个女朋友,各自有不同的爱好,女朋友A爱好音乐,女朋友B爱好美食,女朋友C爱好XXX,为满足各个女朋友,此男生必须进行唱歌.烹饪食物.xxx. 以此制作程序演示单类型多事件的应用,并假设此男同时只能干一件事情(即排除一边xxx一边唱歌或一边xxx一边烹饪的可能J)

Microsoft .NET框架FAQ续

.net框架 垃圾回收 什么是垃圾回收? 垃圾回收是一种机制,它使计算机能够检测到对象何时不能再被访问.然后它自动释放该对象所使用的内存(同时调用由用户编写的称为"终结程序"的清理例程).有些垃圾回收器(如 .NET 使用的垃圾回收器)压缩内存,从而减小程序的工作集.返回到顶部 非确定性的垃圾回收如何影响代码? 对于大多数程序员而言,拥有垃圾回收器(并使用垃圾回收对象)意味着即使使用复杂的数据结构,也不必担心释放内存或引用计数对象.但是,如果您通常在释放对象内存的同一代码块中释放系统资

Microsoft .NET 框架常见问题

问题 摘要:本文包含有关 Microsoft .NET 和 Microsoft .NET 框架的常见问题. 目录概念问题运行时技术问题 术语 程序集 应用程序部署及隔离 垃圾回收 远程处理 互操作性 安全性 概念问题什么是 .NET? 什么是 .NET 框架? .NET 框架是否只适用于创建 Web 站点的用户? 从何处可以获得 .NET 框架 SDK? .NET 框架可以运行于哪些平台? .NET 框架支持哪些编程语言? .NET 框架和 COM+ 服务之间是什么关系? .NET 框架和 DC

Microsoft .NET框架糅合各种编程语言,开创Web新时代

.net框架|web|编程 Microsoft .NET框架糅合各种编程语言,开创Web新时代 华盛顿,雷德蒙,2000年7月11日--David Simmons几乎使用过所有的编程语言(确切地说,使用过20种编程语言.)在其长达23年的软件开发生涯中,他无数次目睹了编程人员为成功调试出多个可以相互通信的应用程序,通宵达旦奋战无数个日日夜夜的艰辛过程.生平第一次,他的头脑中猛地浮现出一个全新的解决方案. ".NET框架开启了通向软件开发复兴的大门."Quasar Knowledge S

Microsoft .NET 框架和 Visual Studio.NET 中的 SOAP

visual 摘要:关于 .NET Remoting.ASP.NET Web Services 和 ATL Web Services 中 SOAP 功能的讨论. 目录简介将 SOAP 用作 Web 开发工具将 SOAP 用作组件开发工具将 SOAP 用作 ATL 开发工具总结 简介Microsoft .NET 框架和 Microsoft Visual Studio.NET 利用 XML 和 SOAP 技术,使开发人员能够创建广泛的解决方案.SOAP 是一个简单.轻便.并在业界获得广泛支持的协议,

第十三章 枚举类型与位标记[《.net框架程序设计》读书笔记]

.net框架|笔记|程序|设计 第十三章 枚举类型与位标记 一. 枚举类型 1. 使用枚举类型的理由: l 枚举类型是得程序更容易编写.阅读.维护,在代码中使用符号名称代替数字是程序设计的一贯主张. l 强类型的,便于类型检验 2. 注意事项: l 枚举类型继承自System.Enum,System.Enum又继承自System.ValurType l 枚举类型不能定义方法.属性.事件 l 枚举类型为常数而非只读字段,因此可能引入版本问题(见第八章的相关讨论) l 将枚举类型与引用它的类型定义在