天天看點

經典技術書籍分享(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

繼續閱讀