CLR via C#開發

CLR via C#開發

《CLR via C#開發》是2010年清華大學出版社出版的圖書,作者是(美)Jeffrey Richter。

基本介紹

  • 書名:CLR via C#開發
  • 作者:(美)Jeffrey Richter
  • 原版名稱:CLR via C# (Dev-Pro)
  • 譯者:周靖
  • ISBN:9787302232599
  • 頁數:777
  • 出版社:清華大學出版社
  • 出版時間:2010 年9月
  • 開本:16
  • 叢書名:微軟技術叢書
編輯推薦,內容簡介,作譯者,目錄,譯者序,序言,前言,

編輯推薦

深入、全面探討.NET Framework、CLR和多核編程
廣泛討論FrameworkClassLibrary(FCL)核心類型
對泛型和執行緒處理等深奧難懂的開發概念提供權威、實用的指導

內容簡介

本書針對clr和.net framework 4.0進行深入、全面的探討,並結合實例介紹了如何利用它們進行設計、開發和調試。全書5部分29章。第Ⅰ部分介紹clr基礎,第Ⅱ部分解釋如何設計類型,第Ⅲ部分介紹基本類型,第Ⅳ部分以實用特性為主題,第Ⅴ部分花大量篇幅重點介紹執行緒處理。
通過本書的閱讀,讀者可以掌握clr和.net framework的精髓,輕鬆、高效地創建高性能應用程式。

作譯者

Jeffrey Richter是全球享有盛譽的技術作家,Wintellect公司的創辦人之一。該公司專門從事培訓、調試和諮詢,幫助客戶構建更好、更快的軟體。他在Wirldows/NET領域有著傑出的貢獻。他的經典著作《Witldows高級編程指南》和《Windows核心編程》是Wirdows程式設計領域的顛峰之作,培育了幾代軟體開發設計人員。Jeffrey從1 999年10月以來,一直為Microsoft NET Framework團隊擔任顧問,與他們一起經歷著.NET的孕育、誕生和發展,對.NET細節的了解程度,是其他任何作家無法望其項背的。他還擔任MSDN雜誌.NET專家。

目錄

第Ⅰ部分 clr基礎
第1章 clr的執行模型
第2章 生成、打包、部署和管理應用程式及類型
第3章 共享程式集和強命名程式集
第Ⅱ部分 設計類型
第4章 類型基礎
第5章 基元類型、引用類型和值類型
第6章 類型和成員基礎
第7章 常量和欄位
第8章 方法
第9章 參數
第10章 屬性
第11章 事件
第12章 泛型
第Ⅲ部分 基本類型
第13章 接口
第14章 字元、字元串和文本處理
第15章 枚舉類型和位標誌
第16章 數組
第17章 委託
第18章 定製attribute
第19章 可空值類型
第Ⅳ部分 核心機制
第20章 異常和狀態管理
第21章 自動記憶體管理(垃圾回收)
第22章 clr寄宿和appdomain
第23章 程式集載入和反射
第24章 運行時序列化
第Ⅴ部分 執行緒處理
第25章 執行緒基礎
第26章 計算限制的異步操作
第27章 i/o限制的異步操作
第28章 基元執行緒同步構造
第29章 混合執行緒同步構造

譯者序

從事軟體開發的人,都是耐得住寂寞的人。Jeffery不僅耐得住寂寞,還在自己的專業領域取得了很高的造詣。取得了很高的造詣不說,他還願意將自己的所得與大家分享。願意和大家分享不說,他還非常實誠,真心想把自己的全部知識都清楚地交待給讀者。字裡行間,全是殷殷叮囑。無浮誇之文字,傾心血而寫就,近十年之所悟,盡展現於本書。
讀完這本書,你的心靈會受到巨大的震撼。原因很簡單,以前許多似懂非懂的關鍵概念,現在都變得清晰明了;以前自以為是的一些做法,現在都得到徹底糾正;以前艱苦摸索的一些編程技巧,現在變得就像1+1一樣簡單。
Jeffery最擅長的就是把最基本的東西講清楚。你以前或許知道1+1等於2,但他會把1+1為什麼等於2講得明明白白。最終你會有一種頓悟的感覺,然後自動地就會知道1+2等於幾,2+2等於幾。不需要再去翻閱其他教科書查詢結果。
如果不出意外,這當是Jeffery的封筆之作。原因很簡單,他付出了實在太多。為了保證這本書(以及他的其他許多著作)的含金量,他在寫作的時候非常投入,而且每一句話,每一個知識點的組織,他都會做到盡善盡美。也許你也曾經有過這樣的體驗,那就是在專心做一些事情的時候,對身邊發生的其他事情反應可能非常遲鈍。因此,必然有可能冷落了家人,或者耽誤了自己的其他一些事情。
本書基於CLR via C#,2nd Edition,在保持上一版精華內容的同時,進行了大量修訂,並添加了大量和C# 4 0的新特性以及執行緒處理有關的內容。翻譯這一版的過程中,我對上一版也進行了勘誤,其中有許多都是熱心讀者提交的。在此要對他們表示感謝!
一本沒有後期維護的書,不算是一本好書。即使如本書原版,也維護了一份很長的勘誤表,我本人也為其貢獻良多。本書中文版將延續我一直以來堅持的風格,建立專門的頁面對它進行維護,以提供資源下載和勘誤等服務。請大家繼續前往我的部落格,發表關於本書的意見和建議。
翻譯過程中,感謝我的家人和朋友的諸多關懷和幫助,尤其要感謝我的乖女兒周子衿。這個學期,對她來說至關重要!
最後,如同往常一樣,我要說所有的功勞都要歸於作者,所有的錯誤都要歸於譯者。歡迎大家批評指正。

序言

剛開始,當Jeff要我給他的新書作序時,我還覺得挺高興!我想,他肯定是尊重我。但我錯了。女士們,這是我們因為想當然而常犯的錯誤之一——相信我,他並不是尊重你。在他的候選序言作者列表中,我排在大概是第14位吧!他最後找上我,完全是迫不得已。顯然,其他候選人(比爾·蓋茨、史蒂夫·鮑爾默、凱瑟琳·澤塔瓊斯……)對他都不是特別感冒。不過還好,他至少帶我出去吃了一頓大餐。
但是,關於這本書,沒人知道得比我更多。我是說,澤塔瓊斯也許會教你如何在路上補妝,但我知道關於反射和異常的所有事情,我還知道C#語言的更新,因為他這幾年說得最多的就是它。這是我們家餐桌上的標準對話!其他人會談論天氣或者他們在飲水機旁邊聽到其他事兒,但我們談論的是 NET。甚至我們6歲的兒子Aidan,也會問Jeff關於書的事情。不過大多數時候,他是問爸爸什麼時候寫完了能和他玩一些“cool”的遊戲。Grant(2歲)還不會說話,但他說的第一個詞極有可能是“Sequential”。
如果你想知道這一切是如何開始的,我可以大概地講給你聽。大概10年前, Jeff去微軟參加了一次“秘密會議”。微軟向一幫行業專家(是真正的專家喔,要不然怎么會有這本書呢?相信我,這本書體現的絕不是Jeff大學時候的水平)揭示了COM的下一代,即 NET。那天晚上在床上(咳,我們倆在床上討論的就是這種話題),他給我講了COM之死。此後他就著迷了。是真的神魂顛倒!那段時間,他成天泡在微軟雷蒙德園區42號樓,希望深入了解這個令人著迷的 NET。他和 NET的熱戀至今還沒有結束,這本書便是鐵證!
Jeff跟我講了好多年的執行緒處理。他真的很喜歡這個主題。有一次,在紐奧良,我們倆手牽著手散了兩個小時的步。一路上,他一直在說他有好多內容可以寫一本有關執行緒處理的書,甚至連名字都想好了,叫什麼《執行緒處理的藝術》。人們對Windows執行緒處理的誤解是多么地深。所思、所想、所說,全部都是執行緒。它們都去了哪裡?既然都沒有計畫,為何還要創建呢?這些問題在Jeff腦海中盤旋,占據著Jeff的全部身心,成了他更深層次的生存意義。最後,他將自己的思考所得全都寫入這本書中。是的,沒有絲毫保留!相信我,朋友,如果你想知道執行緒處理,Jeff絕對是最佳人選,沒有人比他了解得更多,沒有人有他研究得更多。耗費了他生命中很多寶貴時間(這些時間是他撿不回來的)的那些成果就擺在你的面前,任你任意使用。請讀一讀這本書吧!然後給他寫封電子郵件,談談書中這些知識是如何改變您的一生的。否則,他將不過是眾多可悲的作家中的一個,沒有任何價值或成就地結束生命,一杯接一杯地喝著低糖汽水了卻餘生。
本書的這一版甚至包括了關於運行時序列化器的全新的一章。實踐證明,這不是給孩子們的一款新的早餐食品。當我發現它更像是和計算機有關,而不是我食品清單上的東東時,我立即非常氣憤地把它趕出了我的清單。嗯,所以我不知道這一章真的講的是什麼,但它的確包含在這一版中,而你應該讀一讀它(嗯,就著一杯牛奶)。
我希望他已經在理論上討論好了垃圾收集,可以實際著手我們家的垃圾收集,然後把它們帶去馬路邊了。對於一個如此認真的人,這件事情怎么就如此之難?
朋友們,這是Jeffrey Richter的鴻篇巨製。到此為止。以後不會再寫書了。當然,每次他寫完一本書,我們都這樣說,但這一次,我們是認真的。所以,在寫過大約13本書之後,這將是Jeff的收官之作,也是他的巔峰之作。大家請注意了,數量有限,欲購從速。機不可失,時不再來喔。(聽起來是不是有點兒像電視購物頻道里奸商們的吆喝?)
唉,終於可以回到我們的現實生活了,我們可以討論很多重要的事情,比如孩子們今天又弄壞了什麼,該誰給孩子換尿片了,諸如此類的東西。
Kristin Trace
2009年11月24日
Richter家的標準家庭早餐

前言

1999年10月,Microsoft的一些人首次向我展示了Microsoft NET Framework、公共語言運行時(CLR)和C#程式語言。看到所有這一切時,我震驚了,我知道我寫軟體的方式要發生非常大的變化了。他們請我為團隊做一些顧問工作,我當即就同意了。剛開始,我以為 NET Framework是Win32 API和COM上的一個抽象層。然而,隨著我投入越來越多的時間研究它,我意識到它是一個更宏偉的項目。在某種程度上,它是它自己的作業系統。它有自己的記憶體管理器,自己的安全系統,自己的檔案載入器,自己的錯誤處理機制,自己的應用程式隔離邊界(AppDomains)、自己的執行緒處理模型等。本書解釋了所有這些主題,幫助你為這個平台高效地設計和實現軟體應用程式及組件。
我花費了大量時間專注於執行緒處理、並發執行、並行結構、同步等方面的研究。如今,隨著多核計算機越來越普遍,這些主題的重要性日益凸顯。幾年前,我決定專門寫一本講執行緒處理的書。然而,事情一件接著一件,我的想法一直沒有實現。當我有時間修訂本書的時候,我決定將所有執行緒處理的內容集成到其中。所以,本書除了全面討論 NET Framework的CLR和C#程式語言,還嵌入了我的關於執行緒處理的書(第Ⅴ部分“執行緒處理”)。
我是2009年10月開始寫作本書的,距離第一次接觸 NET Framework和C#正好十年。十幾年來,我作為Microsoft的一名顧問,開發過各種各樣的應用程式,對 NET Framework本身也貢獻良多。作為我自己的公司的一名合伙人,我還要為大量客戶工作,幫他們設計軟體、調試軟體、最佳化軟體和解決他們使用 NET Framework時遇到的問題。正是因為有了這些資歷,所以我才知道人們在使用 NET Framework進行高效率編程時,可能會在什麼地方遇到麻煩。貫穿本書的所有主題,你都會看到我的這些經驗之談。
本書面向的讀者
本書旨在解釋如何為 NET Framework開發應用程式和可重用的類。具體地說,我要解釋CLR的工作原理及其提供的功能。另外,我還要討論Framework Class Library(FCL)的各個部分。沒有一本書能完整地解釋FCL——其中包含數以千計的類型,而且這個數字正在以驚人的速度增長。所以,我準備將重點放在每個開發人員都需要注意的核心類型上面。另外,雖然本書不專門講Windows窗體、Windows Presentation Foundation(WPF)、Silverlight、XML Web服務、Web窗體等,但本書描述的技術適用於所有這些應用程式類型。
本書是圍繞Microsoft Visual Studio 2010, NET Framework 4 0和C# 4 0展開的。由於Microsoft在發布這些技術的新版本時,會試圖保持很大程度的向後兼容性,所以本書描述的許多內容也適用於以前的版本。所有示例代碼都用C#程式語言來演示各種功能的行為。但是,由於CLR可由許多程式語言使用,所以本書內容還是很適合非C#程式設計師的。
Microsoft提供了CLR的幾個版本。有桌面/伺服器版本,在Microsoft Windows的32位(x86)和64位(x64/IA64 )版本上運行。還有Silverlight版本,它是用和 NET Framework CLR的桌面/伺服器版一樣的原始碼庫來生成的。所以,本書描述的一切也適用於生成Silverlight應用程式,只是Silverlight載入程式集的方式有一些區別。 NET Framework有一個“簡化”版本,稱為 NET Compact Framework,它適合Windows手機和運行Windows CE作業系統的其他設備。本書許多內容也適合用於為 NET Compact Framework開發應用程式,但該平台不是本書的重點。
2001年12月13日,ECMA International接納了C#程式語言、一部分CLR以及一部分FCL作為標準。因而形成的標準文檔允許其他組織為其他CPU架構和其他作業系統構建這些技術的ECMA相容版本。事實上,基於ECMA規範,Novell已開發出了Moonlight,它是Silverlight 的一個開源的實現,主要用於Linux和其他基於UNIX/X11的作業系統。本書相當多的內容是圍繞這些標準展開的;所以,如果想實現符合ECMA標準的“運行時”(runtime)和庫,本書也是相當有用的。
獻辭
獻給Kristin 千言萬語,難以描述我們在一起的日子。我愛我們的家,珍惜我們在一起的所有日子。每天都因為對你的愛而感到充實。
獻給6歲的Aidan和2歲的Grant 你們兩個是我靈感的源泉,是你們教會我遊戲和找樂子。看著你們兩個人的成長真是令我驕傲和快樂。能和你們共同生活,我感到非常幸運。我對你們的愛和感謝,遠遠超乎你們的想像!
致謝
沒有許多人的幫助和技術援助,我是不可能寫好這本書的。尤其要感謝我的家人。為了寫一本書,所投入的時間和精力是無法衡量的。我只知道,沒有我的妻子Kristin和兩個兒子Aidan和Grant的支持,根本不可能有這本書的面世。多少次,我們想花些時間一家人小聚,都因為本書而放棄。現在,本書總算告一段落,我們終於有時間做大家愛做的事情了。
針對本書的修訂,我真的得到了一些“高人”的幫助。Christophe Nasarre參與了我的幾本書的出版,在審閱本書並確保我能以最恰當的方式來表達的過程中,表現出了非凡的才能。他對本書的質量有著至關重要的影響。和往常一樣,我和Microsoft Press的教育出版團隊進行了令人愉快的合作。特別感謝Ben Ryan,Valerie Woolley和Devon Musgrave。另外,感謝Jean Findley和Sue McClung的編輯和製作支持。

相關詞條

熱門詞條

聯絡我們