2024香港最具教育競爭力中學/小學/幼稚園50強龍虎榜
2024香港最具教育競爭力中學/小學/幼稚園排名指南
最近十一年香港最具教育競爭力中學/小學/幼稚園50強完整版榜單:
2024202320222021/202019201820172016201520142013
教育競爭力評比體系說明
校風評比體系說明
服务全球华人的中英文書籍網上書店
您的購物車是空的

.NET設計規範:約定、慣用法與模式(第2版‧英文版)(附光盤)

  • 作者:(美) 克瓦林納 (美) 艾布拉姆斯 著
  • 出版社: 人民郵電出版社
  • 出版時間:2010-01-01
  • 版次:1
  • 商品編號: 10139510

    頁數:443

    印次:1

    印刷時間:2010-01-01


HK$85.20 (速遞費用須知)
購買額滿HK$158免運費
免郵費優惠僅限香港、澳门、
台灣及中國大陸

購買數量:

內容簡介

 

《.NET設計規範:約定、慣用法與模式(第2版‧英文版)》關注直接影響框架可編程能力的設計問題,為框架設計師和廣大開發人員設計高質量的軟件提供了權威的指南,這一版更新至.NET 3.5。書中內容涉及框架設計的基本原則和規範,常用設計慣用法,為命名空間、類型、成員等框架各部分命名的規範,框架中常用設計模式的規範等。同時,書中添加了來自經驗豐富的框架設計師、業界專家及用戶給出的評註,為書中的許多規範增色不少。
  《.NET設計規範:約定、慣用法與模式(第2版‧英文版)》為框架設計師必讀之作,也可用作.NET開發人員的技術參考書。

作者簡介

  克瓦琳娜(Krzysztof Cwalina),微軟公司.NET Franmwork開發組項目經理。他為.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 StandardLibrary Annotated Reference(卷1和卷2)等書。

媒體評論

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

目錄

1 Introduction
1.1 Qualities of a Well-Designed Framework
1.1.1 Well-Designed Frameworks Are Simple
1.1.2 Well-Designed Frameworks Are Expensive to Design
1.1.3 Well-Designed Frameworks Are Full of Trade-Offs
1.1.4 Well-Designed Frameworks Borrow from the Past
1.1.5 Well-Designed Frameworks Are Designed to Evolve
1.1.6 Well-Designed Frameworks Are Integrated
1.1.7 Well-Designed Frameworks Are Consistent
2 Framework Design Fundamentals
2.1 Progressive Frameworks
2.2 Fundamental Principles of Framework Design
2.2.1 The Principle of Scenario-Driven Design
2.2.2 The Principle of Low Barrier to Entry
2.2.3 The Principle of Self-Documenting Object Models
2.2.4 The Principle of Layered Architecture
3 Naming Guidelines
3.1 Capitalization Conventions
3.1.1 Capitalization Rules for Identifiers
3.1.2 Capitalizing Acronyms
3.1.3 Capitalizing Compound Words and Common Terms
3.1.4 Case Sensitivity
3.2 General Naming Conventions
3.2.1 WordChoice
3.2.2 Using Abbreviations and Acronyms
3.2.3 Avoiding Language-Specific Names
3.2.4 Naming New Versions of Existing APIs
3.3 Names of Assemblies and DLLs
3.4 Names of Namespaces
3.4.1 Namespaces and Type Name Conflicts
3.5 Names of Classes, Structs, and Interfaces
3.5.1 Names of Generic Type Parameters
3.5.2 Names of Common Types
3.5.3 Naming Enumerations
3.6 Names of Type Members
3.6.1 Names of Methods
3.6.2 Names of Properties
3.6.3 Names of Events
3.6.4 Naming Fields
3.7 Naming Parameters
3.7.1 Naming Operator Overload Parameters
3.8 Naming Resources
4 Type Design Guidelines
4.1 Types and Namespaces
4.1.1 Standard Subnamespace Names
4.2 Choosing Between Class and Struct
4.3 Choosing Between Class and Interface
4.4 Abstract Class Design
4.5 Static Class Design
4.6 Interface Design
4.7 Struct Design
4.8 EnumDesign
4.8.1 Designing Flag Enums
4.8.2 Adding Values to Enums
4.9 Nested Types
4.10 Types and Assembly Metadata
5 MemberDesign
5.1 General Member Design Guidelines
5.1.1 Member Overloading
5.1.2 Implementing Interface Members Explicitly
5.1.3 Choosing Between Properties and Methods
5.2 Property Design
5.2.1 Indexed Property Design
5.2.2 Property Change Notification Events
5.3 Constructor Design
5.3.1 Type Constructor Guidelines
5.4 Event Design
5.4.1 Custom Event Handler Design
5.5 Field Design
5.6 Extension Methods
5.7 Operator Overloads
5.7.1 Overloading Operator ==
5.7.2 Conversion Operators
5.8 Parameter Design
5.8.1 Choosing Between Enum and Boolean Parameters
5.8.2 Validating Arguments
5.8.3 Parameter Passing
5.8.4 Members with Variable Number of Parameters
5.8.5 Pointer Parameters
6 Designing for Extensibility
6.1 Extensibility Mechanisms
6.1.1 Unsealed Classes
6.1.2 Protected Members
6.1.3 Events and Callbacks
6.1.4 Virtual Members
6.1.5 Abstractions (Abstract Types and Interfaces)
6.2 Base Classes
6.3 Sealing
7 Exceptions
7.1 Exception Throwing
7.2 Choosing the Right Type of Exception to Throw
7.2.1 Error Message Design
7.2.2 Exception Handling
7.2.3 Wrapping Exceptions
7.3 Using Standard Exception Types
7.3.1 ExceptCon and SystemExcept~on
7.3.2 AppL ~cat~onExcept~on
7.3.3 InvaL ~dOperat~onExceptCon
7.3.4 ArgumentExcept~on, ArgumentNuL LExcept~on, and ArgumentOutOfRangeExcept~on
7.3.5 NuL LReferenceExcept~on, IndexOutOfRangeExcept~on, and AccessVCoLatConExcept~on
7.3.6 StackOverfLowExcept~on
7.3.7 utOfMemoryExcept~on
7.3.8 ComExcept~on, SEHExceptCon, and Execut~onEng~ne-Exception
7.4 Designing Custom Exceptions
7.5 Exceptions and Performance
7.5.1 Tester-Doer Pattern
7.5.2 Try-Parse Pattern
8 Usage Guidelines
8.1 Arrays
8.2 Attributes
8.3 Collections
8.3.1 Collection Parameters
8.3.2 Collection Properties and Return Values
8.3.3 Choosing Between Arrays and Collections
8.3.4 Implementing Custom Collections
8.4 DateTime and DateTimeOffset
8.5 ICloneable
8.6 IComparable and IEquatable
8.7 IDisposable
8.8 Nuiiable
8.9 Object
8.9.1 Object. EquaLs
8.9.2 Object. GetHashCode
8.9.3 Object. ToStrlng271
8.10 Serialization
8.10.1 Choosing the Right Serialization Technology to Support
8.10.2 Supporting Data Contract Serialization
8.10.3 Supporting XML Serialization
8.10.4 Supporting Runtime Serialization
8.11 UrL 283
8.11.1 System. Urn. Implementation Guidelines
8.12 System.Xml Usage
8.13 Equality Operators
8.13.1 Equality Operators on Value Types
8.13.2 Equality Operators on Reference Types
9 Common Design Patterns
9.1 Aggregate Components
9.1.1 Component-Oriented Design
9.1.2 FactoredTypes
9.1.3 Aggregate Component Guidelines
9.2 The Async Patterns
9.2.1 Choosing Between the Async Patterns
9.2.2 Classic Async Pattern
9.2.3 Classic Async Pattern Basic Implementation Example
9.2.4 Event-Based Async Pattern
9.2.5 Supporting Out and Ref Parameters
9.2.6 Supporting Cancellation
9.2.7 Supporting Progress Reporting
9.2.8 Supporting Incremental Results
9.3 Dependency Properties
9.3.1 Dependency Property Design
9.3.2 Attached Dependency Property Design
9.3.3 Dependency Property Validation
9.3.4 Dependency Property Change Notifications
9.3.5 Dependency Property Value Coercion
9.4 Dispose Pattern
9.4.1 Basic Dispose Pattern
9.4.2 Finalizable Types
9.5 Factories
9.6 LINQ Support
9.6.1 Overview of LINQ
9.6.2 Ways of Implementing LINQ Support
9.6.3 Supporting LINQ through IEnumerabLe
9.6.4 Supporting LINQ through IOueryabLe~T~
9.6.5 Supporting LINQ through the Query Pattern
9.7 Optional Feature Pattern
9.8 Simulating Covariance
9.9 Template Method
9.10 Timeouts
9.11 XAML Readable Types
9.12 And in the End...
A C# Coding Style Conventions
A.1 General Style Conventions
A.1.1 Brace Usage
A.1.2 Space Usage
A.1.3 Indent Usage
A.1.4 Other 367
A.2 Naming Conventions
A.3 Comments
A.4 File Organization
B Using FxCop to Enforce the Framework Design Guidelines
B.1 What Is FxCop?
B.2 The Evolution of FxCop
B.3 How Does It Work?
B.4 FxCop Guideline Coverage
B.4.1 FxCop Rules for the Naming Guidelines
B.4.2 FxCop Rules for the Type Design Guidelines
B.4.3 FxCop Rules for Member Design
B.4.4 FxCop Rules for Designing for Extensibility
B.4.5 FxCop Rules for Exceptions
B.4.6 FxCop Rules for Usage Guidelines
B.4.7 FxCop Rules for Design Patterns
C Sample API Specification
Glossary
Suggested Reading List
Index


我們接受以下的付款方式︰VISA、Mastercard、JCB 信用卡、PayPal、銀行轉帳。