Posted on 2010-06-06 20:32 Frank Xu Lei 閱讀(395) 評論(6) 編輯 收藏 所屬分類: 經典技術書籍分享
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