Framework design guidelines: conventions, idioms, and patterns for reusable .NET libraries
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Upper Saddle River, NJ ; Munich [u.a.]
Addison-Wesley
2006
|
Schriftenreihe: | Microsoft .NET development series
|
Schlagworte: | |
Online-Zugang: | Table of contents Inhaltsverzeichnis |
Beschreibung: | Includes bibliographical references (p. 323-325) and index |
Beschreibung: | XXXIII, 346 S. graph. Darst. DVD (12 cm) |
ISBN: | 0321246756 |
Internformat
MARC
LEADER | 00000nam a2200000zc 4500 | ||
---|---|---|---|
001 | BV021403738 | ||
003 | DE-604 | ||
005 | 20070320 | ||
007 | t | ||
008 | 060214s2006 xxud||| |||| 00||| eng d | ||
010 | |a 2005020508 | ||
020 | |a 0321246756 |9 0-321-24675-6 | ||
035 | |a (OCoLC)61115543 | ||
035 | |a (DE-599)BVBBV021403738 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
044 | |a xxu |c US | ||
049 | |a DE-858 |a DE-824 |a DE-92 |a DE-523 | ||
050 | 0 | |a QA76.76.M52 | |
082 | 0 | |a 005.2/768 |2 22 | |
084 | |a ST 201 |0 (DE-625)143612: |2 rvk | ||
084 | |a ST 232 |0 (DE-625)143619: |2 rvk | ||
084 | |a ST 253 |0 (DE-625)143628: |2 rvk | ||
100 | 1 | |a Cwalina, Krzysztof |e Verfasser |0 (DE-588)132382342 |4 aut | |
245 | 1 | 0 | |a Framework design guidelines |b conventions, idioms, and patterns for reusable .NET libraries |c Krzysztof Cwalina ; Brad Abrams |
264 | 1 | |a Upper Saddle River, NJ ; Munich [u.a.] |b Addison-Wesley |c 2006 | |
300 | |a XXXIII, 346 S. |b graph. Darst. |e DVD (12 cm) | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Microsoft .NET development series | |
500 | |a Includes bibliographical references (p. 323-325) and index | ||
650 | 4 | |a Microsoft .NET Framework | |
650 | 0 | 7 | |a Microsoft dot net |0 (DE-588)4645646-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Framework |g Informatik |0 (DE-588)4464685-9 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Microsoft dot net |0 (DE-588)4645646-6 |D s |
689 | 0 | 1 | |a Framework |g Informatik |0 (DE-588)4464685-9 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Abrams, Brad |e Verfasser |0 (DE-588)132382377 |4 aut | |
856 | 4 | |u http://www.loc.gov/catdir/toc/ecip0516/2005020508.html |3 Table of contents | |
856 | 4 | 2 | |m GBV Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014655325&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-014655325 |
Datensatz im Suchindex
_version_ | 1804135150263468032 |
---|---|
adam_text | OF FRAMEWORK DESIGN GUIDELINES CONVENTIONS, IDIOMS, AND PATTERNS FOR
REUSABLE .NET LIBRARIES * KRZYSZTOF CWALINA * BRAD ABRAMS ADDISON-WESLEY
UPPER SADDLE RIVER, NJ * BOSTON * INDIANAPOLIS * SAN FRANCISCO NEW YORK
* TORONTO * MONTREAL * LONDON * MUNICH * PARIS * MADRID CAPETOWN *
SYDNEY * TOKYO * SINGAPORE * MEXICO CITY CONTENTS FIGURES XIII TABLES XV
FOREWORD XVII PREFACE XIX ACKNOWLEDGMENTS XXV ABOUT THE AUTHORS XXVII 1
INTRODUCTION 1 1.1 QUALITIES OF A WELL-DESIGNED FRAMEWORK 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-DESIGNED FRAMEWORKS ARE FULL OF
TRADE-OFFS 4 1.1. A WELL-DESIGNED FRAMEWORKS BORROW FROM THE PAST 5
1.1.5 WELL-DESIGNED FRAMEWORKS ARE DESIGNED TO EVOLVE 5 1.1.6
WELL-DESIGNED FRAMEWORKS ARE INTEGRATED 5 1.1.7 WELL-DESIGNED FRAMEWORKS
ARE CONSISTENT 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 A THE PRINCIPLE OF LAYERED ARCHITECTURE 29 2.3 SUMMARY 31
VII VIII % CONTENTS 3 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 CAPITALIZING COMPOUND WORDS AND COMMON
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-SPECIFIC NAMES 44 3.2.4 NAMING NEW VERSIONS OF
EXISTING APIS 46 3.3 NAMES OF ASSEMBLIES AND DLLS 48 3.4 NAMES OF
NAMESPACES 49 3.4.I NAMESPACES AND TYPE NAME CONFLICTS 51 3.5 NAMES OF
CLASSES, STRUCTS, AND INTERFACES 54 3.5.1 NAMES OF GENERIC TYPE
PARAMETERS 56 3.5.2 NAMES OF COMMON TYPES 57 3.5.3 NAMING ENUMERATIONS
59 3.6 NAMES OF TYPE MEMBERS 60 3.6.1 NAMES OF METHODS 60 3.6.2 NAMES OF
PROPERTIES 61 3.6.3 NAMES OF EVENTS 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 CONTENTS IX 4.7 STRUCT DESIGN 89 4.8
ENUM DESIGN 91 4.8.1 DESIGNING FLAG ENUMS 97 4.8.2 ADDING VALUES TO
ENUMS 100 4.9 NESTED TYPES 101 4.10 SUMMARY 104 5 MEMBER DESIGN 105 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 INDEXED
PROPERTY DESIGN 122 5.2.2 PROPERTY CHANGE NOTIFICATION EVENTS 124 5.3
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 FIELD DESIGN 139
5.6 OPERATOR OVERLOADS 141 5.6.1 OVERLOADING OPERATOR == 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 VALIDATING ARGUMENTS 152 5.7.3
PARAMETER PASSING 155 5.7.4 MEMBERS WITH VARIABLE NUMBER OF PARAMETERS
157 5.7.5 POINTER PARAMETERS 161 5.8 SUMMARY 162 6 DESIGNING FOR
EXTENSIBILITY 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
CONTENTS 6.1.4 VIRTUAL MEMBERS 168 6.1.5 ABSTRACTIONS (ABSTRACT TYPES
AND INTERFACES) 170 6.2 BASE CLASSES 172 6.3 SEALING 174 6.4 SUMMARY 177
7 EXCEPTIONS 179 7.1 EXCEPTION THROWING 183 7.2 CHOOSING THE RIGHT TYPE
OF EXCEPTION TO THROW 189 7.2.1 ERROR MESSAGE DESIGN 189 7.2.2 EXCEPTION
HANDLING 191 7.2.3 WRAPPING EXCEPTIONS 195 7.3 USING STANDARD EXCEPTION
TYPES 197 7.3.1 EXCEPTION AND SYSTEMEXCEPTION 197 7.3.2
APPLICATIONEXCEPTION 197 7.3.3 INVALIDOPERATIONEXCEPTION 198 7.3.A
ARGUMENTEXCEPTION, ARGUMENTNULLEXCEPTION, AND
ARGUMENTOUTOFRANGEEXCEPTION 198 7.3.5 NULLREFERENCEEXCEPTION,
INDEXOUTOFRANGEEXCEPTION, AND ACCESSVIOLATIONEXCEPTION 199 7.3.6
STACKOVERFLOWEXCEPTION 200 7.3.7 OUTOFMEMORYEXCEPTION 200 7.3.8
COMEXCEPTION, SEHEXCEPTION, AND OTHER CLR EXCEPTIONS 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 CONTENTS XI 8.3.3
CHOOSING BETWEEN ARRAYS AND COLLECTIONS 218 8.3.4 IMPLEMENTING CUSTOM
COLLECTIONS 219 8.4 ICLONEABLE 221 8.5 ICOMPARABLE AND IEQUATABLE 222
8.6 IDISPOSABLE 223 8.7 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. URI IMPLEMENTATION GUIDELINES 229 8.9 SYSTEM.XML USAGE 230 8.10
EQUALITY OPERATORS 231 8.10.1 EQUALITY OPERATORS ON VALUE TYPES 232
8.10.2 EQUALITY OPERATORS ON REFERENCE TYPES 232 9 COMMON DESIGN
PATTERNS 235 9.1 AGGREGATE COMPONENTS 235 9.1.1 COMPONENT-ORIENTED
DESIGN 237 9.1.2 FACTORED TYPES 240 9.13 AGGREGATE COMPONENT GUIDELINES
240 9.2 THE ASYNC PATTERN 243 9.2.1 ASYNC PATTERN BASIC IMPLEMENTATION
EXAMPLE 247 9.3 DISPOSE PATTERN 248 9.3.1 BASIC DISPOSE PATTERN 251
9.3.2 FINALIZABLE TYPES 256 9.4 FACTORIES 260 9.5 OPTIONAL FEATURE
PATTERN 264 9.6 TEMPLATE METHOD 267 9.7 TIMEOUTS 269 9.8 AND IN THE
END... 271 A C# CODING STYLE CONVENTIONS 273 A.I GENERAL STYLE
CONVENTIONS 274 XII CONTENTS A. 1.1 BRACE USAGE 274 A.I.2 SPACE USAGE
275 A. 1.3 INDENT USAGE 276 A. 2 NAMING CONVENTIONS 277 A3 COMMENTS 277
A.4 FILE ORGANIZATION 278 B USING FXCOP TO ENFORCE THE DESIGN GUIDELINES
281 B.I WHATLSFXCOP? 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 FXCOP RULES FOR
DESIGNING FOR EXTENSIBILITY 302 B.4.5 FXCOP RULES FOR EXCEPTIONS 303
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
|
adam_txt |
OF FRAMEWORK DESIGN GUIDELINES CONVENTIONS, IDIOMS, AND PATTERNS FOR
REUSABLE .NET LIBRARIES * KRZYSZTOF CWALINA * BRAD ABRAMS ADDISON-WESLEY
UPPER SADDLE RIVER, NJ * BOSTON * INDIANAPOLIS * SAN FRANCISCO NEW YORK
* TORONTO * MONTREAL * LONDON * MUNICH * PARIS * MADRID CAPETOWN *
SYDNEY * TOKYO * SINGAPORE * MEXICO CITY CONTENTS FIGURES XIII TABLES XV
FOREWORD XVII PREFACE XIX ACKNOWLEDGMENTS XXV ABOUT THE AUTHORS XXVII 1
INTRODUCTION 1 1.1 QUALITIES OF A WELL-DESIGNED FRAMEWORK 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-DESIGNED FRAMEWORKS ARE FULL OF
TRADE-OFFS 4 1.1. A WELL-DESIGNED FRAMEWORKS BORROW FROM THE PAST 5
1.1.5 WELL-DESIGNED FRAMEWORKS ARE DESIGNED TO EVOLVE 5 1.1.6
WELL-DESIGNED FRAMEWORKS ARE INTEGRATED 5 1.1.7 WELL-DESIGNED FRAMEWORKS
ARE CONSISTENT 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 A THE PRINCIPLE OF LAYERED ARCHITECTURE 29 2.3 SUMMARY 31
VII VIII % CONTENTS 3 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 CAPITALIZING COMPOUND WORDS AND COMMON
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-SPECIFIC NAMES 44 3.2.4 NAMING NEW VERSIONS OF
EXISTING APIS 46 3.3 NAMES OF ASSEMBLIES AND DLLS 48 3.4 NAMES OF
NAMESPACES 49 3.4.I NAMESPACES AND TYPE NAME CONFLICTS 51 3.5 NAMES OF
CLASSES, STRUCTS, AND INTERFACES 54 3.5.1 NAMES OF GENERIC TYPE
PARAMETERS 56 3.5.2 NAMES OF COMMON TYPES 57 3.5.3 NAMING ENUMERATIONS
59 3.6 NAMES OF TYPE MEMBERS 60 3.6.1 NAMES OF METHODS 60 3.6.2 NAMES OF
PROPERTIES 61 3.6.3 NAMES OF EVENTS 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 CONTENTS IX 4.7 STRUCT DESIGN 89 4.8
ENUM DESIGN 91 4.8.1 DESIGNING FLAG ENUMS 97 4.8.2 ADDING VALUES TO
ENUMS 100 4.9 NESTED TYPES 101 4.10 SUMMARY 104 5 MEMBER DESIGN 105 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 INDEXED
PROPERTY DESIGN 122 5.2.2 PROPERTY CHANGE NOTIFICATION EVENTS 124 5.3
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 FIELD DESIGN 139
5.6 OPERATOR OVERLOADS 141 5.6.1 OVERLOADING OPERATOR == 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 VALIDATING ARGUMENTS 152 5.7.3
PARAMETER PASSING 155 5.7.4 MEMBERS WITH VARIABLE NUMBER OF PARAMETERS
157 5.7.5 POINTER PARAMETERS 161 5.8 SUMMARY 162 6 DESIGNING FOR
EXTENSIBILITY 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
CONTENTS 6.1.4 VIRTUAL MEMBERS 168 6.1.5 ABSTRACTIONS (ABSTRACT TYPES
AND INTERFACES) 170 6.2 BASE CLASSES 172 6.3 SEALING 174 6.4 SUMMARY 177
7 EXCEPTIONS 179 7.1 EXCEPTION THROWING 183 7.2 CHOOSING THE RIGHT TYPE
OF EXCEPTION TO THROW 189 7.2.1 ERROR MESSAGE DESIGN 189 7.2.2 EXCEPTION
HANDLING 191 7.2.3 WRAPPING EXCEPTIONS 195 7.3 USING STANDARD EXCEPTION
TYPES 197 7.3.1 EXCEPTION AND SYSTEMEXCEPTION 197 7.3.2
APPLICATIONEXCEPTION 197 7.3.3 INVALIDOPERATIONEXCEPTION 198 7.3.A
ARGUMENTEXCEPTION, ARGUMENTNULLEXCEPTION, AND
ARGUMENTOUTOFRANGEEXCEPTION 198 7.3.5 NULLREFERENCEEXCEPTION,
INDEXOUTOFRANGEEXCEPTION, AND ACCESSVIOLATIONEXCEPTION 199 7.3.6
STACKOVERFLOWEXCEPTION 200 7.3.7 OUTOFMEMORYEXCEPTION 200 7.3.8
COMEXCEPTION, SEHEXCEPTION, AND OTHER CLR EXCEPTIONS 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 CONTENTS XI 8.3.3
CHOOSING BETWEEN ARRAYS AND COLLECTIONS 218 8.3.4 IMPLEMENTING CUSTOM
COLLECTIONS 219 8.4 ICLONEABLE 221 8.5 ICOMPARABLE AND IEQUATABLE 222
8.6 IDISPOSABLE 223 8.7 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. URI IMPLEMENTATION GUIDELINES 229 8.9 SYSTEM.XML USAGE 230 8.10
EQUALITY OPERATORS 231 8.10.1 EQUALITY OPERATORS ON VALUE TYPES 232
8.10.2 EQUALITY OPERATORS ON REFERENCE TYPES 232 9 COMMON DESIGN
PATTERNS 235 9.1 AGGREGATE COMPONENTS 235 9.1.1 COMPONENT-ORIENTED
DESIGN 237 9.1.2 FACTORED TYPES 240 9.13 AGGREGATE COMPONENT GUIDELINES
240 9.2 THE ASYNC PATTERN 243 9.2.1 ASYNC PATTERN BASIC IMPLEMENTATION
EXAMPLE 247 9.3 DISPOSE PATTERN 248 9.3.1 BASIC DISPOSE PATTERN 251
9.3.2 FINALIZABLE TYPES 256 9.4 FACTORIES 260 9.5 OPTIONAL FEATURE
PATTERN 264 9.6 TEMPLATE METHOD 267 9.7 TIMEOUTS 269 9.8 AND IN THE
END. 271 A C# CODING STYLE CONVENTIONS 273 A.I GENERAL STYLE
CONVENTIONS 274 XII CONTENTS A. 1.1 BRACE USAGE 274 A.I.2 SPACE USAGE
275 A. 1.3 INDENT USAGE 276 A. 2 NAMING CONVENTIONS 277 A3 COMMENTS 277
A.4 FILE ORGANIZATION 278 B USING FXCOP TO ENFORCE THE DESIGN GUIDELINES
281 B.I WHATLSFXCOP? 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 FXCOP RULES FOR
DESIGNING FOR EXTENSIBILITY 302 B.4.5 FXCOP RULES FOR EXCEPTIONS 303
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 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Cwalina, Krzysztof Abrams, Brad |
author_GND | (DE-588)132382342 (DE-588)132382377 |
author_facet | Cwalina, Krzysztof Abrams, Brad |
author_role | aut aut |
author_sort | Cwalina, Krzysztof |
author_variant | k c kc b a ba |
building | Verbundindex |
bvnumber | BV021403738 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.76.M52 |
callnumber-search | QA76.76.M52 |
callnumber-sort | QA 276.76 M52 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 201 ST 232 ST 253 |
ctrlnum | (OCoLC)61115543 (DE-599)BVBBV021403738 |
dewey-full | 005.2/768 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.2/768 |
dewey-search | 005.2/768 |
dewey-sort | 15.2 3768 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01956nam a2200469zc 4500</leader><controlfield tag="001">BV021403738</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20070320 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">060214s2006 xxud||| |||| 00||| eng d</controlfield><datafield tag="010" ind1=" " ind2=" "><subfield code="a">2005020508</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0321246756</subfield><subfield code="9">0-321-24675-6</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)61115543</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV021403738</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">xxu</subfield><subfield code="c">US</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-858</subfield><subfield code="a">DE-824</subfield><subfield code="a">DE-92</subfield><subfield code="a">DE-523</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.76.M52</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.2/768</subfield><subfield code="2">22</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 201</subfield><subfield code="0">(DE-625)143612:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 232</subfield><subfield code="0">(DE-625)143619:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 253</subfield><subfield code="0">(DE-625)143628:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Cwalina, Krzysztof</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)132382342</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Framework design guidelines</subfield><subfield code="b">conventions, idioms, and patterns for reusable .NET libraries</subfield><subfield code="c">Krzysztof Cwalina ; Brad Abrams</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Upper Saddle River, NJ ; Munich [u.a.]</subfield><subfield code="b">Addison-Wesley</subfield><subfield code="c">2006</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXXIII, 346 S.</subfield><subfield code="b">graph. Darst.</subfield><subfield code="e">DVD (12 cm)</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Microsoft .NET development series</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Includes bibliographical references (p. 323-325) and index</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Microsoft .NET Framework</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Microsoft dot net</subfield><subfield code="0">(DE-588)4645646-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Framework</subfield><subfield code="g">Informatik</subfield><subfield code="0">(DE-588)4464685-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Microsoft dot net</subfield><subfield code="0">(DE-588)4645646-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Framework</subfield><subfield code="g">Informatik</subfield><subfield code="0">(DE-588)4464685-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Abrams, Brad</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)132382377</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2=" "><subfield code="u">http://www.loc.gov/catdir/toc/ecip0516/2005020508.html</subfield><subfield code="3">Table of contents</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">GBV Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014655325&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-014655325</subfield></datafield></record></collection> |
id | DE-604.BV021403738 |
illustrated | Illustrated |
index_date | 2024-07-02T14:02:34Z |
indexdate | 2024-07-09T20:35:56Z |
institution | BVB |
isbn | 0321246756 |
language | English |
lccn | 2005020508 |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-014655325 |
oclc_num | 61115543 |
open_access_boolean | |
owner | DE-858 DE-824 DE-92 DE-523 |
owner_facet | DE-858 DE-824 DE-92 DE-523 |
physical | XXXIII, 346 S. graph. Darst. DVD (12 cm) |
publishDate | 2006 |
publishDateSearch | 2006 |
publishDateSort | 2006 |
publisher | Addison-Wesley |
record_format | marc |
series2 | Microsoft .NET development series |
spelling | Cwalina, Krzysztof Verfasser (DE-588)132382342 aut Framework design guidelines conventions, idioms, and patterns for reusable .NET libraries Krzysztof Cwalina ; Brad Abrams Upper Saddle River, NJ ; Munich [u.a.] Addison-Wesley 2006 XXXIII, 346 S. graph. Darst. DVD (12 cm) txt rdacontent n rdamedia nc rdacarrier Microsoft .NET development series Includes bibliographical references (p. 323-325) and index Microsoft .NET Framework Microsoft dot net (DE-588)4645646-6 gnd rswk-swf Framework Informatik (DE-588)4464685-9 gnd rswk-swf Microsoft dot net (DE-588)4645646-6 s Framework Informatik (DE-588)4464685-9 s DE-604 Abrams, Brad Verfasser (DE-588)132382377 aut http://www.loc.gov/catdir/toc/ecip0516/2005020508.html Table of contents GBV Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014655325&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Cwalina, Krzysztof Abrams, Brad Framework design guidelines conventions, idioms, and patterns for reusable .NET libraries Microsoft .NET Framework Microsoft dot net (DE-588)4645646-6 gnd Framework Informatik (DE-588)4464685-9 gnd |
subject_GND | (DE-588)4645646-6 (DE-588)4464685-9 |
title | Framework design guidelines conventions, idioms, and patterns for reusable .NET libraries |
title_auth | Framework design guidelines conventions, idioms, and patterns for reusable .NET libraries |
title_exact_search | Framework design guidelines conventions, idioms, and patterns for reusable .NET libraries |
title_exact_search_txtP | Framework design guidelines conventions, idioms, and patterns for reusable .NET libraries |
title_full | Framework design guidelines conventions, idioms, and patterns for reusable .NET libraries Krzysztof Cwalina ; Brad Abrams |
title_fullStr | Framework design guidelines conventions, idioms, and patterns for reusable .NET libraries Krzysztof Cwalina ; Brad Abrams |
title_full_unstemmed | Framework design guidelines conventions, idioms, and patterns for reusable .NET libraries Krzysztof Cwalina ; Brad Abrams |
title_short | Framework design guidelines |
title_sort | framework design guidelines conventions idioms and patterns for reusable net libraries |
title_sub | conventions, idioms, and patterns for reusable .NET libraries |
topic | Microsoft .NET Framework Microsoft dot net (DE-588)4645646-6 gnd Framework Informatik (DE-588)4464685-9 gnd |
topic_facet | Microsoft .NET Framework Microsoft dot net Framework Informatik |
url | http://www.loc.gov/catdir/toc/ecip0516/2005020508.html http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014655325&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT cwalinakrzysztof frameworkdesignguidelinesconventionsidiomsandpatternsforreusablenetlibraries AT abramsbrad frameworkdesignguidelinesconventionsidiomsandpatternsforreusablenetlibraries |