《CLR via C#(第4版)》針對CLR和.NET Framework 4.5進(jìn)行深入、全面的探討,并結(jié)合實例介紹了如何利用它們進(jìn)行設(shè)計、開發(fā)和調(diào)試。全書5部分共29章。第Ⅰ部分介紹CLR基礎(chǔ),第Ⅱ部分解釋如何設(shè)計類型,第Ⅲ部分介紹基本類型,第Ⅳ部分以核心機(jī)制為主題,第Ⅴ部分重點介紹線程處理。
通過本書的閱讀,讀者可以掌握CLR和.NET Framework的精髓,輕松、高效地創(chuàng)建高性能應(yīng)用程序。
© 2014 Tsinghua University Press Limited
Authorized translation of the English edition of Microsoft CLR via C#, 4th Edition.
Copyright © 2012 by Jeffrey Richter. This translation is published and sold by permission of O'Reilly Media, Inc., which owns or controls of all rights to publish and sell the same.
本書中文版由O'Reilly Media, Inc.授權(quán)給清華大學(xué)出版社出版發(fā)行,未經(jīng)出版者許可,不得以任何方式復(fù)制或抄襲本書的任何部分。
1999年10月,Microsoft的一些人首次向我展示了Microsoft .NET Framework、公共語言運行時(CLR)和C#編程語言?吹竭@一切時,我驚呆了,我知道我寫軟件的方式要發(fā)生非常大的變化了。他們請我為團(tuán)隊做一些顧問工作,我當(dāng)即同意了。剛開始,我以為.NET Framework是Win32 API和COM上的一個抽象層。但隨著我投入越來越多的時間研究,我意識到它是一個更宏偉的項目。某種程度上,它是自己的操作系統(tǒng)。有自己的內(nèi)存管理器,自己的安全系統(tǒng),自己的文件加載器,自己的錯誤處理機(jī)制,自己的應(yīng)用程序隔離邊界(AppDomain)、自己的線程處理模型等。本書解釋了所有這些主題,幫你為這個平臺高效地設(shè)計和實現(xiàn)應(yīng)用程序和組件。
我寫這本書是2012年10月,距離首次接觸.NET Framework和C#正好13年。13年來, 我以Microsoft顧問身份開發(fā)過各式各樣的應(yīng)用程序,為.NET Framework本身也貢獻(xiàn)良多。作為我自己公司W(wǎng)intellect(http://Wintellect.com)的合伙人,我還要為大量客戶工作,幫他們設(shè)計、調(diào)試、優(yōu)化軟件以及解決使用.NET Framework時遇到的問題。正是因為有了這些資歷,所以我才知道如何用.NET Framework進(jìn)行高效率編程。貫穿本書所有主題,你都會看到我的經(jīng)驗之談。
本書面向的讀者
本書旨在解釋如何為.NET Framework開發(fā)應(yīng)用程序和可重用的類。具體地說,我要解釋CLR的工作原理及其提供的功能,還要討論Framework Class Library(FCL)的各個部分。沒有一本書能完整地解釋FCL——其中含有數(shù)以千計的類型,而且這個數(shù)字正在以驚人速度增長。所以,我準(zhǔn)備將重點放在每個開發(fā)人員都需要注意的核心類型上面。另外,雖然不會專門講Windows窗體、Windows Presentation Foundation(WPF)、Microsoft Silverlight、XML Web服務(wù)、Web窗體、Microsoft ASP.NET MVC、Windows Store應(yīng)用等,但本書描述的技術(shù)適用于所有這些應(yīng)用程序類型。
本書圍繞Microsoft Visual Studio 2012/2013,.NET Framework 4.5.x和C# 5.0展開。由于Microsoft在發(fā)布這些技術(shù)的新版本時,會試圖保持很大程度的向后兼容性,所以本書描述的許多內(nèi)容也適合之前的版本。所有示例代碼都用C#編程語言寫成。但由于CLR可由許多編程語言使用,所以本書內(nèi)容也適合非C#程序員。
我和我的編輯進(jìn)行了艱苦卓絕的工作,試圖為你提供最準(zhǔn)確、最新、最深入、最容易閱讀和理解、沒有錯誤的信息。但是,即便有如此完美的團(tuán)隊協(xié)作,疏漏和錯誤也在所難免。如果你發(fā)現(xiàn)了本書的任何錯誤或者想提出一些建設(shè)性的意見,請發(fā)送郵件到JeffreyR@Wintellect.com。
Jeffrey Richter,Wintellect聯(lián)合創(chuàng)始人。數(shù)十年如一日癡迷于Windows和.NET的大師,數(shù)十年以來影響了若干代程序員的靈魂人物,經(jīng)典著作《Windows核心編程》和《CLRviaC#》系列版本的締造者。他崇尚大道至簡,注重效率與實用性,尤其熱愛化繁為簡—去蕪存菁。最值得一提的是,他特別擅長授人以漁,能夠以通俗易懂、條理清晰的方式將普通讀者望而卻步的關(guān)鍵概念講得透徹,講得精彩。Jeffrey出版過12本W(wǎng)indows/.NET暢銷書,曾經(jīng)擔(dān)任過MSDN Magazine特約編輯、Win32Q&A專欄作者、NETQ&A專欄作者和Concurrent Affairs(關(guān)于并發(fā)那些事兒)專欄作者。他還在很多全球性的商業(yè)研討會上發(fā)表演講。作為最懂Windows和NE丁的人,他從1990年開始就以顧問身份為微軟提供服務(wù)—他寫的代碼先后被微軟的很多產(chǎn)品廣泛采用。此外,他還曾經(jīng)為AT&T、IBM、英特爾、夢工廠、通用和惠普等提供過咨詢服務(wù)。Jeffrey愛好廣泛,他擁有飛機(jī)駕照和直升機(jī)駕照,是國際魔法師協(xié)會成員。他愛好音樂(尤其是20世紀(jì)70年代的爵士樂和前衛(wèi)搖滾樂)、擊鼓、火車模型和空手道。他還喜歡旅游和戲劇。目前,他與愛妻Kristin及愛子Aidan和Grant居住在華盛頓州的柯克蘭。
周靖,認(rèn)真、踏實的資深譯者。微軟MVP(最有價值專家)。
第1部分CLR基礎(chǔ)
第1章CLR的執(zhí)行模型
第2章生成、打包、部署和管理應(yīng)用程序及類型
第3章共享程序集和強(qiáng)命名程序集
第2部分設(shè)計類型
第4章類型基礎(chǔ)
第5章基元類型、引用類型和值類型
第6章類型和成員基礎(chǔ)
第7章常量和字段
第8章方法
第9章參數(shù)
第10章屬性
第11章事件
第12章泛型
第13章接口
第3部分基本類型
第14章字符、字符串和文本處理
第15章枚舉類型和位標(biāo)志
第16章數(shù)組
第17章委托
第18章定制特性
第19章可空值類型
第4部分核心機(jī)制
第20章異常和狀態(tài)管理
第21章托管堆和垃圾回收
第22章CLR寄宿和AppDomain
第23章程序集加載和反射
第24章運行時序列化
第25章與WinRT組件互操作
第5部分線程處理
第26章線程基礎(chǔ)
第27章計算限制的異步操作
第28章I/O限制的異步操作
第29章基元線程同步構(gòu)造
第30章混合線程同步構(gòu)造