.NET設計規范

出版時間:201004  出版社:人民郵電出版社  作者:Krzysztof Cwalina,,Brad Abrams  頁數:370  譯者:葛子昂  
Tag標簽:無  

前言

從Framework Design Guidelines的第一版出版到現在,轉眼間已經過去了四年。四年前,.NET框架2.0和Visual Studio 2005剛剛發布。之后我們先后迎來了.NET框架3.0、.NET框架3.5和Visual Studio 2008,而現在我們又即將迎來.NET框架4.0和Visual Studio 2010。事實上,在我忙于翻譯本書的時候,也正是我忙于Visual Studio 2010的開發和收尾工作的時候。本書保留了第一版中的大部分內容,對原有內容進行了適當的更新。這充分證明了書中的設計規范是經得起時間考驗的,而這也正是它的核心價值所在。除此之外,本書還增加了許多新的內容,包括序列化、LINQ、依賴屬性等等,從而涵蓋了.NET框架3.0和.NET框架3.5中的核心特性。在過去的四年中,無論是我對技術的理解還是對語言的把握,都有了相當的提高,這一點將在書中得以體現。第一版的讀者可能會發現,中文第二版不僅更新了英文版中更新的那些部分,同時還對第一版已有的內容進行了修訂和潤色。我相信本書不僅是《.NET設計規范(第2版)》,而且是一本更好的《.NET設計規范》。雖然我竭盡所能力求譯文的準確和流暢,但鑒于時間和精力有限,難免會有翻譯不當甚至是錯誤之處。為此我建立了一份網上勘誤表,如果讀者發現任何錯誤,都請通過該網頁與我聯系,一旦確認我會立即將其更新到勘誤表中。我要感謝本書的編輯丁曉昀對我的理解和支持,我們之間的合作非常愉快。我還要感謝我的同事吳宇進、田超、唐友、張羿和王彩霞,他們在繁忙的工作之余審閱譯稿,發現了不少難以覺察的問題,并提出了許多寶貴的意見和建議,從而使得本書的質量更上一層樓。最后,我要感謝我的妻兒,他們的支持和鼓勵,是我前進的動力。

內容概要

  數千名微軟精銳開發人員的經驗和智慧,最終濃縮在這本設計規范之中。與上一版相比,書中新增了許多評注,解釋了相應規范的背景和歷史,從中你能聆聽到微軟技術大師Anders Hejlsberg、Jeffrey Richter和Paul Vick等的聲音,讀來令人興味盎然。  本書雖然是針對.NET平臺上的框架設計的,但對其他平臺的框架設計同樣具有借鑒意義。新版根據.NET Framework 3.0和3.5的新特性做了全面更新,主要關注的是直接影響框架可編程能力的設計問題。遵守這些規范對于使用.NET Framework創建高質量的應用程序至關重要。  本書提供配套光盤,內含Designing .NET Class Libraries等13個演講視頻。此外,光盤還包括.NET Framework類和組件設計指南、API規范樣例以及其他有用的資源和工具。

作者簡介

作者:(美國)克瓦林納(Krzysztof Cwalina) (美國)艾布拉姆斯(Brad Abrams) 譯者:葛子昂Krzysztof Cwalina,微軟公司.NET Framework開發組項目經理。他為.NET Framework設計了多個API。還開發了FxCop等框架開發工具。目前。他正致力于在微軟內部開發推廣設計規范,將其應用到.NET Framework中。同時負責核心.NET Framework API的交付。Brad Abrams,微軟公司CLR開發組和.NET Framework開發組的創始人之一,目前是項目經理主管。他參與制定了CLS、.NET Framework設計規范以及ECMA/ISOCLI標準中程序庫標準,著有Programming in the .NET Environment、.NET Framework Standard Library Annotated Reference(卷1和卷2)等書。葛子昂,畢業于南京理工大學計算機系。現任微軟中國研發集團服務器及開發工具事業部的軟件開發主管。目前正從事Windows Workflow Foundation(WF)的相關開發。致力于為WF開發人員提供方便高效的開發工具。之前曾長期從事Windows Communication Foundation(WCF)產品的相關研發。加入微軟前先后任職于育碧電腦軟件有限公司和旭上電子有限公司,從事計算機游戲及圖形處理器的開發。具有豐富的開發經驗。出版有譯作《.NET設計規范》、《Windows核心編程(第5版)》、《設計模式沉思錄》。

書籍目錄

第1章 概述 11.1 精心設計的框架所具備的品質 21.1.1 精心設計的框架是簡單的 21.1.2 精心設計的框架設計代價高 31.1.3 精心設計的框架充滿利弊權衡 41.1.4 精心設計的框架應該借鑒過去的經驗 41.1.5 精心設計的框架要考慮未來發展 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章 命名規范 313.1 大小寫約定 313.1.1 標識符的大小寫規則 323.1.2 首字母縮寫詞的大小寫 343.1.3 復合詞和常用術語的大小寫 363.1.4 是否區分大小寫 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 泛型類型參數的命名 533.5.2 常用類型的命名 533.5.3 枚舉類型的命名 543.6 類型成員的命名 563.6.1 方法的命名 563.6.2 屬性的命名 573.6.3 事件的命名 583.6.4 字段的命名 593.7 參數的命名 603.8 資源的命名 613.9 小結 62第4章 類型設計規范 634.1 類型和名字空間 654.2 類和結構之間的選擇 704.3 類和接口之間的選擇 734.4 抽象類的設計 794.5 靜態類的設計 804.6 接口的設計 824.7 結構的設計 844.8 枚舉的設計 864.8.1 標記枚舉的設計 924.8.2 給枚舉添加值 954.9 嵌套類型 974.10 類型和程序集元數據 984.11 小結 100第5章 成員設計 1015.1 成員設計的通用規范 1015.1.1 成員重載 1015.1.2 顯式地實現接口成員 1075.1.3 屬性和方法之間的選擇 1105.2 屬性的設計 1155.2.1 索引屬性的設計 1175.2.2 當屬性發生改變時的通知事件 1195.3 構造函數的設計 1215.4 事件的設計 1285.5 字段的設計 1345.6 擴展方法 1365.7 操作符重載 1425.7.1 重載operator== 1465.7.2 類型轉換操作符 1465.8 參數的設計 1475.8.1 枚舉和布爾參數之間的選擇 1495.8.2 參數的驗證 1515.8.3 參數的傳遞 1545.8.4 參數數量可變的成員 1565.8.5 指針參數 1595.9 小結 161第6章  擴展性設計 1626.1 擴展機制 1626.1.1 非密封類 1626.1.2 受保護的成員 1646.1.3 事件與回調函數 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章 使用規范 2078.1 數組 2078.2 修飾屬性 2088.3 集合 2118.3.1 集合參數 2138.3.2 集合屬性與返回值 2148.3.3 數組與集合之間的選擇 2188.3.4 自定義集合的實現 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 對數據協定序列化的支持 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 聚合組件規范 2499.2 Async模式 2519.2.1 選擇合適的Async模式 2519.2.2 經典Async模式 2539.2.3 Async模式的基本實現樣例 2569.2.4 基于事件的Async模式 2579.2.5 對輸出參數和引用參數的支持 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來實施設計規范 313附錄C API規格書樣例 343術語表 350推薦讀物 354索引 356

章節摘錄

插圖:如果框架的設計者能夠站在其使用者背后解釋應該如何使用框架,那么規范就沒有存在的必要了。規范為我們這些框架設計者提供了一套工具,可以在自己和使用框架的開發者之間形成一種共同語言。例如,將一個操作定義為屬性而不是方法可以向用戶傳達重要的信息,告訴他們應該如何使用該操作。在PC時代的早期,開發應用程序的主要工具是程序設計語言編譯器、少量的標準程序庫以及未經封裝的操作系統應用程序編程接口(API),這些是很基本的底層編程工具。即使開發人員用如此基本的工具構建應用程序,重復的代碼也會越來越多,而通過用更高層的API對代碼進行抽象,可以消除這種重復。操作系統供應商們注意到提供此類更高層的API,可以使開發人員更容易地為他們的系統開發應用程序。能夠在該系統上運行的應用程序的數量會隨之增加,進而使得系統對最終用戶更具有吸引力,因為最終用戶需要多種多樣的應用程序。此外,獨立的工具及組件供應商也很快意識到了由提升API的抽象層次所帶來的商機。與此同時,工業界開始逐漸地接受了面向對象設計以及它所強調的擴展性和重用性①。當可重用程序庫的供應商為了開發其高API而采納OOP(Object.OrientedProgramming,面向對象編程)時,就產生了框架(framework)的概念。自從有了框架,開發人員不再需要從頭開始編寫應用程序。框架會提供所需的大部分部件,這些部件經過開發人員的定制和拼裝②,就成為了最終的應用程序。

媒體關注與評論

“本書第1版出版以后.立即成為整個Mono社區傳誦的經典……這一版彌補了上一版的很多不足,而眾多參與規范制定的核心.NET架構師及頂尖程序員所做的評注也極大地豐富了本書的內涵。”    ——Miguel de Icaza.GNOME和Mono項目創建者  “本書絕對是所有.NET開發人員的必讀之作。它總結了.NET本身設計和開發過程中獲得的經驗和教訓,不僅使你對.NET能夠知其所以然。還能極大地幫助你更高效地使用.NET類庫。”    ——Jeffrey Richter。微軟技術大師,名著《windows核心編程》作者

編輯推薦

《.NET設計規范:約定、慣用法與模式(第2版)》:數千名微軟精銳開發人員的經驗和智慧。最終濃縮在這本設計規范之中。與上一版相比。書中新增了許多評注.解釋了相應規范的背景和歷史,從中你能聆聽到微軟技術大師Anders H ejIsberg、Jeffrey Richter和PauI Vick等的聲音,讀來令人興趣盎然。欲罷不能。《.NET設計規范:約定、慣用法與模式(第2版)》雖然是針對.NET平臺上的框架設計的,但對其他平臺的框架設計同樣具有借鑒意義。新版根據.NET Framework 3.O和3.5的新特性做了全面更新。主要關注的是直接影響框架可編程能力的設計問題。遵守這些規范對于使用.NET Framework創建高質量的應用程序至關重要。《.NET設計規范:約定、慣用法與模式(第2版)》提供配套光盤,內含Designing.NET CIass Librarines等13個演講視頻(時長近13小時)。此外,光盤還包括.NETFrameworkework類和組件設計指南、APl規范樣例以及其他有用的資源和工具。微軟.N ET Framework設計組的智慧結晶,洞悉.NET技術內幕,.N ET開發者的必備圖書。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    .NET設計規范 PDF格式下載



用戶評論 (總計18條)

 
 

  •     沒有什么可以說的,圣經級別的巨著。無規矩不成方圓,看了這部巨著你才能感悟到.net程序該怎樣寫
  •     個人感覺對于有經驗來說可以看看,內容不多 多半都是一些規范方面的東西,有利于團隊協作。就是木有深度,美中不足 ,可能不是想買的那種類型吧
  •     挺好的,這本書,我理論弱,剛好補補
  •     如果你還是城系猿,總之是還在一線碼著,就從第三章開始看吧,前兩章都不是我們這些城系猿現在用得著,我還是覺得從第三章開始看,你會學會.net下的編碼規范,知道在寫程怎么做是好的,怎么做是不好的,知道對于現實世界中的事物,在你的程序中應當抽象定義為類還是結構,總之強烈建行從第三章看起,等你多看幾篇后,再來看1、2兩章。
  •     內容挺豐富的,抽象了點
  •     書不錯,但是書皮臟了,還有破損
  •     發貨很快,紙張也還行,內容也很好,
  •     看完覺得細節體現技藝啊。
  •     發貨很快,服務態度不錯,就是圖書內容太深奧
  •     其實.net方面的書太多了,這本對于特別愛看書的人,肯定有用;對于普通開發者來說,肯定首先關注盡快掌握語言,我不確定有多少人能靜下心來花時間學習設計規范。
  •     .net程序員此書必讀
  •     都是一些真正的建議,書的字比較大,而且紙張很好,雖然不是很厚,但值得一買
  •     內容相當枯燥,但是極為適用!強烈推薦案頭必備。學習它可以規范你的代碼,很有幫助
  •     質量不錯,是正版,紙張挺好
  •     看了對自己有個提升
  •     收獲一般哦
  •     很基礎,剛學習的同志很適合
  •     內容很好!有經驗的開發人員值得一讀
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網 手機版

第一圖書網(tushu007.com) @ 2017

玩北京pk10投注平台