出版時間:201004 出版社:人民郵電出版社 作者:Krzysztof Cwalina,,Brad Abrams 頁數(shù):370 譯者:葛子昂
Tag標簽:無
前言
從Framework Design Guidelines的第一版出版到現(xiàn)在,轉(zhuǎn)眼間已經(jīng)過去了四年。四年前,.NET框架2.0和Visual Studio 2005剛剛發(fā)布。之后我們先后迎來了.NET框架3.0、.NET框架3.5和Visual Studio 2008,而現(xiàn)在我們又即將迎來.NET框架4.0和Visual Studio 2010。事實上,在我忙于翻譯本書的時候,也正是我忙于Visual Studio 2010的開發(fā)和收尾工作的時候。本書保留了第一版中的大部分內(nèi)容,對原有內(nèi)容進行了適當?shù)母?。這充分證明了書中的設計規(guī)范是經(jīng)得起時間考驗的,而這也正是它的核心價值所在。除此之外,本書還增加了許多新的內(nèi)容,包括序列化、LINQ、依賴屬性等等,從而涵蓋了.NET框架3.0和.NET框架3.5中的核心特性。在過去的四年中,無論是我對技術的理解還是對語言的把握,都有了相當?shù)奶岣?,這一點將在書中得以體現(xiàn)。第一版的讀者可能會發(fā)現(xiàn),中文第二版不僅更新了英文版中更新的那些部分,同時還對第一版已有的內(nèi)容進行了修訂和潤色。我相信本書不僅是《.NET設計規(guī)范(第2版)》,而且是一本更好的《.NET設計規(guī)范》。雖然我竭盡所能力求譯文的準確和流暢,但鑒于時間和精力有限,難免會有翻譯不當甚至是錯誤之處。為此我建立了一份網(wǎng)上勘誤表,如果讀者發(fā)現(xiàn)任何錯誤,都請通過該網(wǎng)頁與我聯(lián)系,一旦確認我會立即將其更新到勘誤表中。我要感謝本書的編輯丁曉昀對我的理解和支持,我們之間的合作非常愉快。我還要感謝我的同事吳宇進、田超、唐友、張羿和王彩霞,他們在繁忙的工作之余審閱譯稿,發(fā)現(xiàn)了不少難以覺察的問題,并提出了許多寶貴的意見和建議,從而使得本書的質(zhì)量更上一層樓。最后,我要感謝我的妻兒,他們的支持和鼓勵,是我前進的動力。
內(nèi)容概要
數(shù)千名微軟精銳開發(fā)人員的經(jīng)驗和智慧,最終濃縮在這本設計規(guī)范之中。與上一版相比,書中新增了許多評注,解釋了相應規(guī)范的背景和歷史,從中你能聆聽到微軟技術大師Anders Hejlsberg、Jeffrey Richter和Paul Vick等的聲音,讀來令人興味盎然?! ”緯m然是針對.NET平臺上的框架設計的,但對其他平臺的框架設計同樣具有借鑒意義。新版根據(jù).NET Framework 3.0和3.5的新特性做了全面更新,主要關注的是直接影響框架可編程能力的設計問題。遵守這些規(guī)范對于使用.NET Framework創(chuàng)建高質(zhì)量的應用程序至關重要?! ”緯峁┡涮坠獗P,內(nèi)含Designing .NET Class Libraries等13個演講視頻。此外,光盤還包括.NET Framework類和組件設計指南、API規(guī)范樣例以及其他有用的資源和工具。
作者簡介
作者:(美國)克瓦林納(Krzysztof Cwalina) (美國)艾布拉姆斯(Brad Abrams) 譯者:葛子昂Krzysztof Cwalina,微軟公司.NET Framework開發(fā)組項目經(jīng)理。他為.NET Framework設計了多個API。還開發(fā)了FxCop等框架開發(fā)工具。目前。他正致力于在微軟內(nèi)部開發(fā)推廣設計規(guī)范,將其應用到.NET Framework中。同時負責核心.NET Framework API的交付。Brad Abrams,微軟公司CLR開發(fā)組和.NET Framework開發(fā)組的創(chuàng)始人之一,目前是項目經(jīng)理主管。他參與制定了CLS、.NET Framework設計規(guī)范以及ECMA/ISOCLI標準中程序庫標準,著有Programming in the .NET Environment、.NET Framework Standard Library Annotated Reference(卷1和卷2)等書。葛子昂,畢業(yè)于南京理工大學計算機系?,F(xiàn)任微軟中國研發(fā)集團服務器及開發(fā)工具事業(yè)部的軟件開發(fā)主管。目前正從事Windows Workflow Foundation(WF)的相關開發(fā)。致力于為WF開發(fā)人員提供方便高效的開發(fā)工具。之前曾長期從事Windows Communication Foundation(WCF)產(chǎn)品的相關研發(fā)。加入微軟前先后任職于育碧電腦軟件有限公司和旭上電子有限公司,從事計算機游戲及圖形處理器的開發(fā)。具有豐富的開發(fā)經(jīng)驗。出版有譯作《.NET設計規(guī)范》、《Windows核心編程(第5版)》、《設計模式沉思錄》。
書籍目錄
第1章 概述 11.1 精心設計的框架所具備的品質(zhì) 21.1.1 精心設計的框架是簡單的 21.1.2 精心設計的框架設計代價高 31.1.3 精心設計的框架充滿利弊權衡 41.1.4 精心設計的框架應該借鑒過去的經(jīng)驗 41.1.5 精心設計的框架要考慮未來發(fā)展 41.1.6 精心設計的框架應具有良好的集成性 51.1.7 精心設計的框架是一致的 5第2章 框架設計基礎 72.1 漸進框架 92.2 框架設計的基本原則 122.2.1 圍繞場景進行設計的原則 122.2.2 低門檻原則 182.2.3 自說明對象模型原則 222.2.4 分層架構原則 282.3 小結 30第3章 命名規(guī)范 313.1 大小寫約定 313.1.1 標識符的大小寫規(guī)則 323.1.2 首字母縮寫詞的大小寫 343.1.3 復合詞和常用術語的大小寫 363.1.4 是否區(qū)分大小寫 373.2 通用命名約定 383.2.1 單詞的選擇 383.2.2 使用單詞縮寫和首字母縮寫詞 403.2.3 避免使用編程語言特有的名字 413.2.4 為已有API的新版本命名 433.3 程序集和DLL的命名 453.4 名字空間的命名 463.5 類、結構和接口的命名 503.5.1 泛型類型參數(shù)的命名 533.5.2 常用類型的命名 533.5.3 枚舉類型的命名 543.6 類型成員的命名 563.6.1 方法的命名 563.6.2 屬性的命名 573.6.3 事件的命名 583.6.4 字段的命名 593.7 參數(shù)的命名 603.8 資源的命名 613.9 小結 62第4章 類型設計規(guī)范 634.1 類型和名字空間 654.2 類和結構之間的選擇 704.3 類和接口之間的選擇 734.4 抽象類的設計 794.5 靜態(tài)類的設計 804.6 接口的設計 824.7 結構的設計 844.8 枚舉的設計 864.8.1 標記枚舉的設計 924.8.2 給枚舉添加值 954.9 嵌套類型 974.10 類型和程序集元數(shù)據(jù) 984.11 小結 100第5章 成員設計 1015.1 成員設計的通用規(guī)范 1015.1.1 成員重載 1015.1.2 顯式地實現(xiàn)接口成員 1075.1.3 屬性和方法之間的選擇 1105.2 屬性的設計 1155.2.1 索引屬性的設計 1175.2.2 當屬性發(fā)生改變時的通知事件 1195.3 構造函數(shù)的設計 1215.4 事件的設計 1285.5 字段的設計 1345.6 擴展方法 1365.7 操作符重載 1425.7.1 重載operator== 1465.7.2 類型轉(zhuǎn)換操作符 1465.8 參數(shù)的設計 1475.8.1 枚舉和布爾參數(shù)之間的選擇 1495.8.2 參數(shù)的驗證 1515.8.3 參數(shù)的傳遞 1545.8.4 參數(shù)數(shù)量可變的成員 1565.8.5 指針參數(shù) 1595.9 小結 161第6章 擴展性設計 1626.1 擴展機制 1626.1.1 非密封類 1626.1.2 受保護的成員 1646.1.3 事件與回調(diào)函數(shù) 1656.1.4 虛成員 1696.1.5 抽象(抽象類型與抽象接口) 1716.2 基類 1736.3 密封 1746.4 小結 177第7章 異常 1787.1 拋出異常 1827.2 為拋出的異常選擇合適的類型 1877.2.1 錯誤消息的設計 1907.2.2 異常處理 1917.2.3 封裝異常 1967.3 標準異常類型的使用 1977.3.1 Exception與SystemExcep- tion 1987.3.2 ApplicationException 1987.3.3 InvalidOperationException 1987.3.4 ArgumentException、ArgumentNullException及ArgumentOutOfRange-Exception 1997.3.5 NullReferenceException、IndexOutOfRangeException及AccessViolationException 1997.3.6 StackOverflowException 2007.3.7 OutOfMemoryException 2017.3.8 ComException、SEHException以及ExecutionEngine-Exception 2027.4 自定義異常的設計 2027.5 異常與性能 2037.5.1 Tester-Doer模式 2047.5.2 Try-Parse模式 2057.6 小結 206第8章 使用規(guī)范 2078.1 數(shù)組 2078.2 修飾屬性 2088.3 集合 2118.3.1 集合參數(shù) 2138.3.2 集合屬性與返回值 2148.3.3 數(shù)組與集合之間的選擇 2188.3.4 自定義集合的實現(xiàn) 2188.4 DateTime和DateTimeOffset 2208.5 ICloneable 2228.6 IComparable與IEquatable 2238.7 IDisposable 2258.8 Nullable 2258.9 Object 2268.9.1 Object.Equals 2268.9.2 Object.GetHashCode 2288.9.3 Object.ToString 2298.10 序列化 2318.10.1 選擇要支持的序列化技術 2328.10.2 對數(shù)據(jù)協(xié)定序列化的支持 2338.10.3 對XML序列化的支持 2378.10.4 對運行時序列化的支持 2388.11 Uri 2398.12 System.Xml的使用 2418.13 相等性操作符 2428.13.1 值類型的相等性操作符 2438.13.2 引用類型的相等性操作符 243第9章 常用的設計模式 2449.1 聚合組件 2449.1.1 面向組件的設計 2459.1.2 因子類型 2489.1.3 聚合組件規(guī)范 2499.2 Async模式 2519.2.1 選擇合適的Async模式 2519.2.2 經(jīng)典Async模式 2539.2.3 Async模式的基本實現(xiàn)樣例 2569.2.4 基于事件的Async模式 2579.2.5 對輸出參數(shù)和引用參數(shù)的支持 2599.2.6 對取消操作的支持 2609.2.7 對進度報告的支持 2609.2.8 對增量結果的支持 2629.3 依賴屬性 2639.3.1 依賴屬性的設計 2649.3.2 附加依賴屬性的設計 2669.3.3 依賴屬性的驗證 2679.3.4 依賴屬性的改變通知 2689.3.5 依賴屬性的強制賦值 2699.4 Dispose模式 2699.4.1 基本Dispose模式 2729.4.2 可終結類型 2779.5 Factory模式 2819.6 對LINQ的支持 2859.6.1 LINQ概要 2859.6.2 支持LINQ的幾種方法 2869.6.3 通過IEnumerable來支持LINQ 2879.6.4 通過IQueryable來支持LINQ 2879.6.5 通過Query模式來支持LINQ 2889.7 Optional Feature模式 2919.8 Simulated Covariance模式 2949.9 Template Method模式 2999.10 超時 3019.11 可供XAML使用的類型 3039.12 結束語 305附錄A C#編程風格約定 306附錄B 通過FxCop來實施設計規(guī)范 313附錄C API規(guī)格書樣例 343術語表 350推薦讀物 354索引 356
章節(jié)摘錄
插圖:如果框架的設計者能夠站在其使用者背后解釋應該如何使用框架,那么規(guī)范就沒有存在的必要了。規(guī)范為我們這些框架設計者提供了一套工具,可以在自己和使用框架的開發(fā)者之間形成一種共同語言。例如,將一個操作定義為屬性而不是方法可以向用戶傳達重要的信息,告訴他們應該如何使用該操作。在PC時代的早期,開發(fā)應用程序的主要工具是程序設計語言編譯器、少量的標準程序庫以及未經(jīng)封裝的操作系統(tǒng)應用程序編程接口(API),這些是很基本的底層編程工具。即使開發(fā)人員用如此基本的工具構建應用程序,重復的代碼也會越來越多,而通過用更高層的API對代碼進行抽象,可以消除這種重復。操作系統(tǒng)供應商們注意到提供此類更高層的API,可以使開發(fā)人員更容易地為他們的系統(tǒng)開發(fā)應用程序。能夠在該系統(tǒng)上運行的應用程序的數(shù)量會隨之增加,進而使得系統(tǒng)對最終用戶更具有吸引力,因為最終用戶需要多種多樣的應用程序。此外,獨立的工具及組件供應商也很快意識到了由提升API的抽象層次所帶來的商機。與此同時,工業(yè)界開始逐漸地接受了面向?qū)ο笤O計以及它所強調(diào)的擴展性和重用性①。當可重用程序庫的供應商為了開發(fā)其高API而采納OOP(Object.OrientedProgramming,面向?qū)ο缶幊?時,就產(chǎn)生了框架(framework)的概念。自從有了框架,開發(fā)人員不再需要從頭開始編寫應用程序。框架會提供所需的大部分部件,這些部件經(jīng)過開發(fā)人員的定制和拼裝②,就成為了最終的應用程序。
媒體關注與評論
“本書第1版出版以后.立即成為整個Mono社區(qū)傳誦的經(jīng)典……這一版彌補了上一版的很多不足,而眾多參與規(guī)范制定的核心.NET架構師及頂尖程序員所做的評注也極大地豐富了本書的內(nèi)涵?!? ——Miguel de Icaza.GNOME和Mono項目創(chuàng)建者 “本書絕對是所有.NET開發(fā)人員的必讀之作。它總結了.NET本身設計和開發(fā)過程中獲得的經(jīng)驗和教訓,不僅使你對.NET能夠知其所以然。還能極大地幫助你更高效地使用.NET類庫?!? ——Jeffrey Richter。微軟技術大師,名著《windows核心編程》作者
編輯推薦
《.NET設計規(guī)范:約定、慣用法與模式(第2版)》:數(shù)千名微軟精銳開發(fā)人員的經(jīng)驗和智慧。最終濃縮在這本設計規(guī)范之中。與上一版相比。書中新增了許多評注.解釋了相應規(guī)范的背景和歷史,從中你能聆聽到微軟技術大師Anders H ejIsberg、Jeffrey Richter和PauI Vick等的聲音,讀來令人興趣盎然。欲罷不能?!?NET設計規(guī)范:約定、慣用法與模式(第2版)》雖然是針對.NET平臺上的框架設計的,但對其他平臺的框架設計同樣具有借鑒意義。新版根據(jù).NET Framework 3.O和3.5的新特性做了全面更新。主要關注的是直接影響框架可編程能力的設計問題。遵守這些規(guī)范對于使用.NET Framework創(chuàng)建高質(zhì)量的應用程序至關重要。《.NET設計規(guī)范:約定、慣用法與模式(第2版)》提供配套光盤,內(nèi)含Designing.NET CIass Librarines等13個演講視頻(時長近13小時)。此外,光盤還包括.NETFrameworkework類和組件設計指南、APl規(guī)范樣例以及其他有用的資源和工具。微軟.N ET Framework設計組的智慧結晶,洞悉.NET技術內(nèi)幕,.N ET開發(fā)者的必備圖書。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載