注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì).NET.NET設(shè)計(jì)規(guī)范(英文版)

.NET設(shè)計(jì)規(guī)范(英文版)

.NET設(shè)計(jì)規(guī)范(英文版)

定 價(jià):¥56.00

作 者: (美)夸利納
出版社: 機(jī)械工業(yè)
叢編項(xiàng): 經(jīng)典原版書庫(kù)
標(biāo) 簽: 暫缺

ISBN: 9787111202035 出版時(shí)間: 2007-01-01 包裝: 平裝
開本: 其它 頁(yè)數(shù): 346 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書為框架設(shè)計(jì)人員和相關(guān)專業(yè)人員設(shè)計(jì)成功的框架以及可重用的軟件提供了非常實(shí)用的指導(dǎo)。本書主要討論框架的設(shè)計(jì),雖然針對(duì)的是.NET 平臺(tái),但其中的許多規(guī)范對(duì)其他平臺(tái)的框架設(shè)計(jì)同樣具有借鑒意義。書中匯集的規(guī)范體現(xiàn)了微軟眾多開發(fā)人員的經(jīng)驗(yàn)和智慧,已經(jīng)成為微軟開發(fā)下一代重量級(jí)產(chǎn)品的設(shè)計(jì)規(guī)范。.隨書光盤中包括本書內(nèi)容的視頻演示、API規(guī)范樣例等。...

作者簡(jiǎn)介

  本書提供作譯者介紹Krzysztof Cwalina于艾奧瓦大學(xué)獲得計(jì)算機(jī)科學(xué)學(xué)士、碩士學(xué)位,是微軟公共語(yǔ)言運(yùn)行時(shí)的程序主管。他最初為.NET框架的第一個(gè)版本設(shè)計(jì)API。他還曾負(fù)責(zé)框架中的幾個(gè)命名空間,包括System.Collections、System.Diagnostics和System.Messaging等,同時(shí)他還是FxCop小組的最初成員之一。目前,他在整個(gè)公司范圍內(nèi)負(fù)責(zé)開發(fā)、推廣設(shè)計(jì)規(guī)范并將其應(yīng)用到.NET框架的WinFX中。Brad Abrams于北卡羅來(lái)納州立大學(xué)獲得計(jì)算機(jī)科學(xué)學(xué)士學(xué)位,是微軟公司公共語(yǔ)言運(yùn)行時(shí)和.NET框架小組的創(chuàng)立成員之...

圖書目錄

Figures vii
Tables viif
Foreword ix
Preface xi
Acknowledgments xvii
About theAuthors xix
About the Annotators xxi
1 Introduction 1
  1.1 Qualities of a Well—Designed Frfimework 3
    1.1.1 Well-Designed Frameworks Are Simple 3
    1.1.2 Well-Designed Frameworks Are Expensive to Design 3
    1.1.3 Well—DesignedFrameworksAreFullofTrade—offs 4
    1.1.4 Well—DesignedFrameworks Borrowfrom thePast 5
    1.1.5 Well—Designed FrameworksAre Desiged to Evolve 5
    1.1.6 Well—Designed FrameworksAreIntegrated 5
    1.1.7 Well-DesignedFrameworksAreConsistent 6
2 Framework Design Fundamentals 7
  2.1 Progressive Frameworks 9
  2.2 Fundamental Principles of Framework Design 12
    2.2.1 The Principle of Scenario—Driven Design 13
    2.2.2 The Principle of Low Barrier to Entry 19
    2.2.3 The Principle of Self-Documenting Object Models 23
    2.2.4ThePrincipleo/LayeredArchitecture 29
2.3 Summary 31
Naming Guidelines 33
3.1 Capitalization Conventions 34
    3.1.1 Capitalization Rules for Identifiers 34
    3.1.2 Capitalizing Acronyms 36
    3.1.3,CapitalizingCompound WordsandCommon Terms 39
    3.1.4 Case Sensitivity 41
3.2 General Naming Conventions 41
  3.2.1 Word Choice 42
  3.2.2 Using Abbreviations and Acronyms 43
  3.2.3 Avoiding Language-SpecificNames 44
  3.2.4 NamingNew VersionsofExistingAPIs 46
3.3 Names of Assemblies and DLLs 48
3.4 Names of Namespaces 49
    3.4.1 Namespaces and Type Name Conflicts 51
3.5 Names of Classes,Structs,and Interfaces 54
    3.5.1 Names ofGeneric TypeParameters 56
    3.5.2NamesofCommon types 57
    3.513NamingEnumerations 59
3.6 Names ofType Members 60
3.6.1 NamesofMethods 6D
3.6.2 Names ofProperties 61
3.6.3Name ofEvents 63
3.6.4 Naming Fields 64
3.7 Naming Parameters 64
3.8 Naming Resources 65
3.9 Summary 66
4 Type Design Guidelines 67
4·1 Types and Namespaces 69
    4.1.1 Standard Subnamespace Names 73
4.2 Choosing Between Class and Struct 74
4.3 Choosing Between Class and Interface 77
4.4 Abstract Class Design 83
4.5 Static Class Design 85
4.6 Interface Design 86
4.7 Struct Design 89
4.8 EnumDesign 91
  4.8.1 Designing Flag Enums 97
  4.8.2Adding Values toEnums 100
4.9 Nested Types 101
4.10 Summary 104
5 Member Design 05
  5.1 General Member Design Guidelines 105
    5.1.1 Member Overloading 105
    5.1.2 Implementing Interface Members Explicitly 111
    5.1.3 Choosing Between Properties and Methods 115
  5.2 Property Design 120
    5.2.1 IndexedPropertyDesign 122
    5.2.2 Property Change Notification Events 124
  513 Constructor Design 125
    5.3.1 Type Constructor Guidelines 131
  5.4 Event Design 132    
    5.4.1 Custom Event Handler Design 138
  5.5 FieldDesign 139
  5.6 Operator Overloads 141
    5.6.1 Overloading Operafor 146
    5.6.2 Conversion Operators 146
  5.7 Parameter Design 148
    5.7.1 Choosing Between Enum and Boolean Parameters 150
    5.7.2 ValidatingArguments 152
    5.7.3 Parameter Passing 55
    5.7.4 Members with Variable Number of Parameters 157
    5.7.5 Pointer Parameters 161
  5.8 Summary 162
6 Designing for ExtensibiUty 163
6.1 Extensibility Mechanisms 163
    6.1.1 Unsealed Classes 164
    6.1.2 Protected Members 165
    6.1.3 Events and Callbacks 166
    6.1.4 Virtual Members 168
    6.1.5 Abstractions(Abstract Types and Interfaces)170
6.2 BaseClasses 172  
6.3 Sealing 174
6.4 Summary 177
7 Exceptions 179
  7.1 Exception Throwing 183
  7.2 ChoosingtheRightTypeofExceptiontoThrow 189
    7.2.1 ErrorMessage Design 189
    7.2.2 ExceptionHandling 19I    
    7.2.3 WrappingExceptions 195
  7.3 Using Standard Exception Types 197
    7.3.1 Exceptionand SystemException 197
    7.3.2 ApplicationException 197
    7.3.3 InvalidOperationException 198  
    7.3.4 ArgumentException,ArgumentNullException,and ArgumentOutOfRangeExceptioa 198
    7.3.5 NuliReferenceException.Index Out Of Range Exception and AccessViolationException 199
    7.3.6 StackOverfl owExcepti on 200
    7.3.7 Out Of Memory Exception 200
    7.3.8 ComException,SEHException,and other CLRExceptions 201
    7.3.9 ExecutionEngineException 201
  7.4 Designing Custom Exceptions 202
  7.5 Exceptions and Performance 203
    7.5.1 Tester-Doer Pattern 203
    7.5.2 Try-Parse Pattern 204
  7.6 Summary 205
8 Usage Guidelines 207
  8.1 Arrays 207
  8.2 Attributes 209
  8.3 Collections 211
8.3.1 Collection Parameters 213
8.3.2 Collection Properties and Return Values 214
8.3.3 Choosing Between Arrays and Collections 218
8.3.4 Implementing Custom Collections 219
8.4 ICloneable 221
8.5 IComparable<T>and Igquatable<T> 222
8.6 IDisposable  223
Object 224
8.7.1 Object.Equals 224
8.7.2 Object.GetHashCode 225
    8.7.3 Object.ToString 227
8.8 Uri 228
    8.8.1 System.UriImplementationGuidelines 229
8.9 System.Xml Usage 230
8.10 Equafity Operators 231
    8.10.1 EqualityOperators on ValueTypes 232
    8.10.2 Equality Operators on Reference Types 232
9 Com mon Design Patterns 235
  9.1 Aggregate Components 235
    9.1.1 Component-Oriented Design 237
    9.1.2 Factored Types 240
    9.1.3 Aggregate Component Guidelines 240
  9.2 The Async Pattern 243
    9.2.1 Asvnc Pattern Basic Implementation Example 247
  9.3 Dispose Paitem 248
    9.3.1 Basic Dispose Pattern 251
    9.3.2 Finalizable Types 256
  9.4 Factories 260
  9.5 Optional Feature Pattem 264
9.6 Template Method 267
9.7 Timeouts 269
9.8 And in the End…271
A CIi}Cod ing Style Conventions 273
  A.1 General Style Conventions 274
    A.1.1 Brace Usage 274
    A.1.2 space Usage 275
    A.1.3IndentUsage 276
  A.2 Naming Conventions 277
  A.3 Comments 277
  A.4 File Organization 278
B Using FxCop to Enforce the Design Guidelines 28l
  B.1 What Is FxCop? 281
  B.2 The Evolution of FxCop 282
  B.3 How Does It Work? 283
  B.4 FxCop Guideline Coverage 284
    B.4.1 FxCop Rules for the Naming Guidelines 284
    B.4.2 FxCop Rules for the type Design Guidelines 293
    B.4.3 FxCop Rules for Member Design 296
    B.4.4 FxCap Rules for Designingfor Extensibility 302
    B.4.5 FxCop Rules for Exceptions 363
    B.4.6 FxCop Rules for Usage Guidelines 305
    B.4.7 FxCop Rules for Design Patterns 309
C Sample API Specification 311
Glossary 319
Suggested Reading List 323
Index 327

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)