天天看点

经典技术书籍分享(4):《CLR Via C#》第三版 新增内容(Jeffrey Richter博文翻译)

Posted on 2010-06-06 20:32 Frank Xu Lei 阅读(395) 评论(6)   编辑 收藏 所属分类: 经典技术书籍分享

经典技术书籍分享(4):《CLR Via C#》第三版 新增内容(Jeffrey Richter博文翻译)

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

4.http://www.wintellect.com/CS/blogs/jeffreyr/archive/2009/11/01/what-s-new-in-clr-via-c-3rd-edition-as-compared-to-the-2nd-edition.aspx

5.http://www.wintellect.com/CS/blogs/jeffreyr/archive/2010/01/22/my-clr-via-c-book-is-at-the-printer-the-source-code-and-introduction-are-available-now.aspx

6.数据对齐 Data Alignment:http://www.songho.ca/misc/alignment/dataalign.html

7.http://www.cnblogs.com/frank_xl/admin/EditPosts.aspx