Jeffrey Richter《CLR Via C#》第三版已经于2010年2月出版,关于这本书的下载地址,可以参考之前的文章。里面有英文版的介绍信息以及下载链接:经典技术书籍分享(3):《CLR Via C#》 3 目录和下载。这本书最明显的部分就是增加了第5部分:线程。
独立的5章内容。另外就是对于.NET3.0、4.0都做了更新。
【1】背景介绍:
这个是Jeffrey Richter自己写的博文,介绍了第三版主要的更新。与第二版的差别。我来翻译一下,分享给大家。
What’s new in CLR via C#, 3rd Edition as compared to the 2nd Edition,与《CLR via C#》第二版相比,第三版增加的内容是什么。这里给出的中文版。如果你想看中英文博文对照的版本,可以到这里《CLR via C#》第二版相比,第三版增加的内容是什么(中英文对照版)
【2】博文翻译:
———————————
我知道许多人会问我《CLR via C#》第二版和第三版有什么不同,所以我就专门写了这篇文章来回答这个问题。
总的来说,每一章内容都做了修改和完善,以使得文章更加的清晰,修订了一些明显的错误,而且我也增加了更多64位的内容,因为64硬件普及率很高了。我同样增加了一些内容,去反映自第二版出版5年以来的新的知识。此外,因为第二版的内容涵盖的是.NET Framework 和C#2.0的,所以新的版本包含了3.0,3.5和4.0的内容
我一直在思考去写一本线程的书籍,来介绍如何在当今多核计算的世界里恰当地设计软件架构 去构建可响应与可扩展的应用程序与组件。但是我决定把这本书的内容放到《CLR via C#》第三版里,这就是为什么新版本里的第5部分会有看上去十分多余的关于线程5章内容。这些章节(与书中的其它章节一样)都是详细介绍。因为,我不想知是解释什么是.NET Framework 以及如何使用它。我解释的是何时使用,以及为什么缺陷与不同的构造关系密切。过去20年,我已经写许多关于线程的文章,这是所有新知识的一次新的呈现,我相信这将引起开发人员的共鸣。《CLR via C#》第二版里有2章与线程相关的内容。新的5章包含了前面2章中的一些内容,但是基本都是重写的,并增加了与.NET 4.0相关的内容。
下面是《CLR via C#》第三版的目录,以及与《CLR via C#》第二版相比增加内容的简要描述。
Part I – CLR Basics
第一部分:CLR基本类型
Chapter 1-The CLR’s Execution Model
第一章:CLR执行模型
增加了对于C#优化与调试以及它们之间关系的讨论
Chapter 2-Building, Packaging, Deploying, and Administering Applications and Types
第二章:构建、打包、部署与管理应用程序和类型
完善了Win32信息和版本资源信息
Chapter 3-Shared Assemblies and Strongly Named Assemblies
第三章:共享程序集和强命名程序集
增加了对于TypeForwardedToAttribute 和TypeForwardedFromAttribute的讨论
Part II – Designing Types
第二部分:设计类型
Chapter 4-Type Fundamentals
第四章:类型基础
Chapter 5-Primitive, Reference, and Value Types
第五章:基元类型、引用类型和值类型
增强了对于checked 和unchecked 代码的讨论内容,另外增加了对于BigInteger 类型的讨论。还包含C# 4.0里的动态基元类型的讨论。
Chapter 6-Type and Member Basics
第六章:类型和成员基础
没增加新的主题
Chapter 7-Constants and Fields
第七章:常量与域成员
没增加新的主题
Chapter 8-Methods
第八章:方法
增加了对于扩展方法和部分方法的讨论
Chapter 9-Parameters
第九章:参数
增加了对于可选/命名参数 以及隐含类型局部变量的讨论
Chapter 10-Properties
第十章:属性
阿加了对于自动实现属性、属性和Visual Studio 调试器、对象和集合初始化器、匿名类型、the System.Tuple 和ExpandoObject类型 的讨论。
Chapter 11-Events
第十一章:事件
增加了对于事件和线程安全的讨论,另外展示了一个很酷的扩展方法去简化事件激活工作
Chapter 12-Generics
第十二章:泛型
增加了代理和接口泛型类型参数变化的讨论
Chapter 13-Interfaces
第十三章:接口
Part III – Essential Types
第三部分:基本类型
Chapter 14-Chars, Strings, and Working with Text
第十四章:字符、字符串、使用文本
没增加新的主题
Chapter 15-Enums
第十五章:枚举
增加了介绍新的枚举 和 访问枚举类型实例的类型方法的内容
Chapter 16-Arrays
第十六章:数组
增加了初始化数组元素的新的内容
Chapter 17-Delegates
第十七章:委托
增加了对于使用泛型委托去避免定义新的委托类型的讨论。另外也在家了对于lambda 表达式的讨论
Chapter 18-Attributes
第十八章:Attribute
没增加新的主题
Chapter 19-Nullable Value Types
第十九章:可空类型
增加了对于性能的讨论内容
Part IV – CLR Facilities
第四部分:CLR工具
Chapter 20-Exception Handling and State Management
第二十章:异常处理与状态管理
这一章基本完全重写了。现在是关于异常处理和状态管理。它包含代码契约和约束执行区(CERs)。另外也包含一个新的关于如何编写高生产率和可靠代码的小节内容。
Chapter 21-Automatic Memory Management
第二十一章:自动内存管理
增加了对于C#固定状态和如何在堆里使用pin对象的内容。重写了弱委托的代码,所以你可以把它与任何暴露事件的Class一起使用(这个class本身不必支持弱委托)。增加了ConditionalWeakTable 、GC收集模式、完整GC通知、垃圾收集模式和潜伏模式的讨论。同样也包含新的例子,展示如何在GC收集0或2代对象的时候,让你应用程序接收通知。
Chapter 22-CLR Hosting and AppDomains
第二十二章:CLR托管与应用程序域
增加了关于单个进程并行加载多个CLR的讨论。增加了使用MarshalByRefObject子类型性能的内容。基本重写了跨AppDomain 通信的内容。增加了AppDomain 监控以及第一次异常通知的内容。更新了AppDomainManager 类型的相关章节。
Chapter 23-Assembly Loading and Reflection
第二十三章:程序集加载与反射
增加了一节关于如何部署一个包含多个独立程序集文件的内容。增加了一节关于比较反射invoke vs bind/invoke vs bind/create delegate/invoke vs C#’s dynamic 类型的内容。
Chapter 24-Runtime Serialization
第二十四章:运行时序列化
这是第二版里完全没有的内容
Part V – Threading
第五部分:线程
Chapter 25-Threading Basics
第二十五章:线程基础
整个新章节介绍了为什么Windows支持线程、线程总览,CPU趋势、NUMA架构、CLR线程和Windows线程的关系、线程类、使用线程的原因、线程调度和优先级、前台线程与后台线程。
Chapter 26-Performing Compute-Bound Asynchronous Operations
第二十六章:执行计算密集型异步操作
Chapter 27-Performing I/O-Bound Asynchronous Operations
第二十七章:执行I/O密集型异步操作
整个新的章节解释了Windows如何执行同步和异步I/O操作。然后深入介绍了CLR的异步编程模式、我的AsyncEnumerator 类、APM和异常、应用程序和他们的线程模型、实现一个异步服务、APM和计算密集型操作、APM考量、I/O请求优先级、转化APM为任务、基于事件的异步模式、编程模型。
Chapter 28-Primitive Thread Synchronization Constructs
第二十八章:基本线程的同步构造
整个新的章节讨论了类库与线程安全,元用户态、和心态构造、以及数据对齐。
Chapter 29-Hybrid Thread Synchronization Constructs
第二十八章:混合线程的同步构造
整个新的章节讨论了多种不同的混合构造,比如ManualResetEventSlim、SemaphoreSlim、CountdownEvent、Barrier、 ReaderWriterLock(Slim)、OneManyResourceLock、Monitor,三种解决double-check 加锁的技巧、.NET 4.0的Lazy 和LazyInitializer 类、条件变量模式、.NET 4.0的并发集合类、ReaderWriterGate 和SyncGate 类.
———————————
【3】翻译结束语:
有兴趣的朋友可以下载英文电子版阅读。这个是首选做法。
以来也可以等待中文版出来以后购买第三版的中文版。
以上翻译,纯属个人爱好,利用周末整理完成,分享给大家,其中难免存在错误,欢迎批评指正。希望对于大家的学习有所帮助。
参考:
1.http://my.safaribooksonline.com/9780735640467
2.http://www.amazon.com/CLR-Via-C-Pro-Developer/dp/0735621632#noop
3.http://blogs.msdn.com/b/microsoft_press/archive/2010/01/21/rtm-d-today-clr-via-c-third-edition.aspx
6.数据对齐 Data Alignment:http://www.songho.ca/misc/alignment/dataalign.html