.NET设计规范:约定、惯用法与模式

.NET设计规范:约定、惯用法与模式
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] ,
2010-05
版次: 1
ISBN: 9787115226518
定价: 69.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 370页
字数: 579千字
正文语种: 简体中文
原版书名: Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (2nd Edition)
129人买过
  •   数千名微软精锐开发人员的经验和智慧,最终浓缩在这本设计规范之中。与上一版相比,书中新增了许多评注,解释了相应规范的背景和历史,从中你能聆听到微软技术大师AndersHejlsberg、JeffreyRichter和PaulVick等的声音,读来令人兴味盎然。
      本书虽然是针对.NET平台上的框架设计的,但对其他平台的框架设计同样具有借鉴意义。新版根据.NETFramework3.0和3.5的新特性做了全面更新,主要关注的是直接影响框架可编程能力的设计问题。遵守这些规范对于使用.NETFramework创建高质量的应用程序至关重要。
      本书提供配套光盘,内含Designing.NETClassLibraries等13个演讲视频。此外,光盘还包括.NETFramework类和组件设计指南、API规范样例以及其他有用的资源和工具。   KrzysztofCwalina,微软公司.NETFramework开发组项目经理。他为.NETFramework设计了多个API。还开发了FxCop等框架开发工具。目前。他正致力于在微软内部开发推广设计规范,将其应用到.NETFramework中。同时负责核心.NETFrameworkAPI的交付。
      BradAbrams,微软公司CLR开发组和.NETFramework开发组的创始人之一,目前是项目经理主管。他参与制定了CLS、.NETFramework设计规范以及ECMA/ISOCLI标准中程序库标准,著有Programminginthe.NETEnvironment、.NETFrameworkStandardLibraryAnnotatedReference(卷1和卷2)等书。
      葛子昂,毕业于南京理工大学计算机系。现任微软中国研发集团服务器及开发工具事业部的软件开发主管。目前正从事WindowsWorkflowFoundation(WF)的相关开发。致力于为WF开发人员提供方便高效的开发工具。之前曾长期从事WindowsCommunicationFoundation(WCF)产品的相关研发。加入微软前先后任职于育碧电脑软件有限公司和旭上电子有限公司,从事计算机游戏及图形处理器的开发。具有丰富的开发经验。出版有译作《.NET设计规范》、《Windows核心编程(第5版)》、《设计模式沉思录》。 第1章概述1
    1.1精心设计的框架所具备的品质2
    1.1.1精心设计的框架是简单的2
    1.1.2精心设计的框架设计代价高3
    1.1.3精心设计的框架充满利弊权衡4
    1.1.4精心设计的框架应该借鉴过去的经验4
    1.1.5精心设计的框架要考虑未来发展4
    1.1.6精心设计的框架应具有良好的集成性5
    1.1.7精心设计的框架是一致的5
    第2章框架设计基础7
    2.1渐进框架9
    2.2框架设计的基本原则12
    2.2.1围绕场景进行设计的原则12
    2.2.2低门槛原则18
    2.2.3自说明对象模型原则22
    2.2.4分层架构原则28
    2.3小结30
    第3章命名规范31
    3.1大小写约定31
    3.1.1标识符的大小写规则32
    3.1.2首字母缩写词的大小写34
    3.1.3复合词和常用术语的大小写36
    3.1.4是否区分大小写37
    3.2通用命名约定38
    3.2.1单词的选择38
    3.2.2使用单词缩写和首字母缩写词40
    3.2.3避免使用编程语言特有的名字41
    3.2.4为已有API的新版本命名43
    3.3程序集和DLL的命名45
    3.4名字空间的命名46
    3.5类、结构和接口的命名50
    3.5.1泛型类型参数的命名53
    3.5.2常用类型的命名53
    3.5.3枚举类型的命名54
    3.6类型成员的命名56
    3.6.1方法的命名56
    3.6.2属性的命名57
    3.6.3事件的命名58
    3.6.4字段的命名59
    3.7参数的命名60
    3.8资源的命名61
    3.9小结62
    第4章类型设计规范63
    4.1类型和名字空间65
    4.2类和结构之间的选择70
    4.3类和接口之间的选择73
    4.4抽象类的设计79
    4.5静态类的设计80
    4.6接口的设计82
    4.7结构的设计84
    4.8枚举的设计86
    4.8.1标记枚举的设计92
    4.8.2给枚举添加值95
    4.9嵌套类型97
    4.10类型和程序集元数据98
    4.11小结100
    第5章成员设计101
    5.1成员设计的通用规范101
    5.1.1成员重载101
    5.1.2显式地实现接口成员107
    5.1.3属性和方法之间的选择110
    5.2属性的设计115
    5.2.1索引属性的设计117
    5.2.2当属性发生改变时的通知事件119
    5.3构造函数的设计121
    5.4事件的设计128
    5.5字段的设计134
    5.6扩展方法136
    5.7操作符重载142
    5.7.1重载operator==146
    5.7.2类型转换操作符146
    5.8参数的设计147
    5.8.1枚举和布尔参数之间的选择149
    5.8.2参数的验证151
    5.8.3参数的传递154
    5.8.4参数数量可变的成员156
    5.8.5指针参数159
    5.9小结161
    第6章扩展性设计162
    6.1扩展机制162
    6.1.1非密封类162
    6.1.2受保护的成员164
    6.1.3事件与回调函数165
    6.1.4虚成员169
    6.1.5抽象(抽象类型与抽象接口)171
    6.2基类173
    6.3密封174
    6.4小结177
    第7章异常178
    7.1抛出异常182
    7.2为抛出的异常选择合适的类型187
    7.2.1错误消息的设计190
    7.2.2异常处理191
    7.2.3封装异常196
    7.3标准异常类型的使用197
    7.3.1Exception与SystemExcep-tion198
    7.3.2ApplicationException198
    7.3.3InvalidOperationException198
    7.3.4ArgumentException、ArgumentNullException及ArgumentOutOfRange-Exception199
    7.3.5NullReferenceException、IndexOutOfRangeException及AccessViolationException199
    7.3.6StackOverflowException200
    7.3.7OutOfMemoryException201
    7.3.8ComException、SEHException以及ExecutionEngine-Exception202
    7.4自定义异常的设计202
    7.5异常与性能203
    7.5.1Tester-Doer模式204
    7.5.2Try-Parse模式205
    7.6小结206
    第8章使用规范207
    8.1数组207
    8.2修饰属性208
    8.3集合211
    8.3.1集合参数213
    8.3.2集合属性与返回值214
    8.3.3数组与集合之间的选择218
    8.3.4自定义集合的实现218
    8.4DateTime和DateTimeOffset220
    8.5ICloneable222
    8.6IComparable与IEquatable223
    8.7IDisposable225
    8.8Nullable225
    8.9Object226
    8.9.1Object.Equals226
    8.9.2Object.GetHashCode228
    8.9.3Object.ToString229
    8.10序列化231
    8.10.1选择要支持的序列化技术232
    8.10.2对数据协定序列化的支持233
    8.10.3对XML序列化的支持237
    8.10.4对运行时序列化的支持238
    8.11Uri239
    8.12System.Xml的使用241
    8.13相等性操作符242
    8.13.1值类型的相等性操作符243
    8.13.2引用类型的相等性操作符243
    第9章常用的设计模式244
    9.1聚合组件244
    9.1.1面向组件的设计245
    9.1.2因子类型248
    9.1.3聚合组件规范249
    9.2Async模式251
    9.2.1选择合适的Async模式251
    9.2.2经典Async模式253
    9.2.3Async模式的基本实现样例256
    9.2.4基于事件的Async模式257
    9.2.5对输出参数和引用参数的支持259
    9.2.6对取消操作的支持260
    9.2.7对进度报告的支持260
    9.2.8对增量结果的支持262
    9.3依赖属性263
    9.3.1依赖属性的设计264
    9.3.2附加依赖属性的设计266
    9.3.3依赖属性的验证267
    9.3.4依赖属性的改变通知268
    9.3.5依赖属性的强制赋值269
    9.4Dispose模式269
    9.4.1基本Dispose模式272
    9.4.2可终结类型277
    9.5Factory模式281
    9.6对LINQ的支持285
    9.6.1LINQ概要285
    9.6.2支持LINQ的几种方法286
    9.6.3通过IEnumerable来支持LINQ287
    9.6.4通过IQueryable来支持LINQ287
    9.6.5通过Query模式来支持LINQ288
    9.7OptionalFeature模式291
    9.8SimulatedCovariance模式294
    9.9TemplateMethod模式299
    9.10超时301
    9.11可供XAML使用的类型303
    9.12结束语305
    附录AC#编程风格约定306
    附录B通过FxCop来实施设计规范313
    附录CAPI规格书样例343
    术语表350
    推荐读物354
    索引356
  • 内容简介:
      数千名微软精锐开发人员的经验和智慧,最终浓缩在这本设计规范之中。与上一版相比,书中新增了许多评注,解释了相应规范的背景和历史,从中你能聆听到微软技术大师AndersHejlsberg、JeffreyRichter和PaulVick等的声音,读来令人兴味盎然。
      本书虽然是针对.NET平台上的框架设计的,但对其他平台的框架设计同样具有借鉴意义。新版根据.NETFramework3.0和3.5的新特性做了全面更新,主要关注的是直接影响框架可编程能力的设计问题。遵守这些规范对于使用.NETFramework创建高质量的应用程序至关重要。
      本书提供配套光盘,内含Designing.NETClassLibraries等13个演讲视频。此外,光盘还包括.NETFramework类和组件设计指南、API规范样例以及其他有用的资源和工具。
  • 作者简介:
      KrzysztofCwalina,微软公司.NETFramework开发组项目经理。他为.NETFramework设计了多个API。还开发了FxCop等框架开发工具。目前。他正致力于在微软内部开发推广设计规范,将其应用到.NETFramework中。同时负责核心.NETFrameworkAPI的交付。
      BradAbrams,微软公司CLR开发组和.NETFramework开发组的创始人之一,目前是项目经理主管。他参与制定了CLS、.NETFramework设计规范以及ECMA/ISOCLI标准中程序库标准,著有Programminginthe.NETEnvironment、.NETFrameworkStandardLibraryAnnotatedReference(卷1和卷2)等书。
      葛子昂,毕业于南京理工大学计算机系。现任微软中国研发集团服务器及开发工具事业部的软件开发主管。目前正从事WindowsWorkflowFoundation(WF)的相关开发。致力于为WF开发人员提供方便高效的开发工具。之前曾长期从事WindowsCommunicationFoundation(WCF)产品的相关研发。加入微软前先后任职于育碧电脑软件有限公司和旭上电子有限公司,从事计算机游戏及图形处理器的开发。具有丰富的开发经验。出版有译作《.NET设计规范》、《Windows核心编程(第5版)》、《设计模式沉思录》。
  • 目录:
    第1章概述1
    1.1精心设计的框架所具备的品质2
    1.1.1精心设计的框架是简单的2
    1.1.2精心设计的框架设计代价高3
    1.1.3精心设计的框架充满利弊权衡4
    1.1.4精心设计的框架应该借鉴过去的经验4
    1.1.5精心设计的框架要考虑未来发展4
    1.1.6精心设计的框架应具有良好的集成性5
    1.1.7精心设计的框架是一致的5
    第2章框架设计基础7
    2.1渐进框架9
    2.2框架设计的基本原则12
    2.2.1围绕场景进行设计的原则12
    2.2.2低门槛原则18
    2.2.3自说明对象模型原则22
    2.2.4分层架构原则28
    2.3小结30
    第3章命名规范31
    3.1大小写约定31
    3.1.1标识符的大小写规则32
    3.1.2首字母缩写词的大小写34
    3.1.3复合词和常用术语的大小写36
    3.1.4是否区分大小写37
    3.2通用命名约定38
    3.2.1单词的选择38
    3.2.2使用单词缩写和首字母缩写词40
    3.2.3避免使用编程语言特有的名字41
    3.2.4为已有API的新版本命名43
    3.3程序集和DLL的命名45
    3.4名字空间的命名46
    3.5类、结构和接口的命名50
    3.5.1泛型类型参数的命名53
    3.5.2常用类型的命名53
    3.5.3枚举类型的命名54
    3.6类型成员的命名56
    3.6.1方法的命名56
    3.6.2属性的命名57
    3.6.3事件的命名58
    3.6.4字段的命名59
    3.7参数的命名60
    3.8资源的命名61
    3.9小结62
    第4章类型设计规范63
    4.1类型和名字空间65
    4.2类和结构之间的选择70
    4.3类和接口之间的选择73
    4.4抽象类的设计79
    4.5静态类的设计80
    4.6接口的设计82
    4.7结构的设计84
    4.8枚举的设计86
    4.8.1标记枚举的设计92
    4.8.2给枚举添加值95
    4.9嵌套类型97
    4.10类型和程序集元数据98
    4.11小结100
    第5章成员设计101
    5.1成员设计的通用规范101
    5.1.1成员重载101
    5.1.2显式地实现接口成员107
    5.1.3属性和方法之间的选择110
    5.2属性的设计115
    5.2.1索引属性的设计117
    5.2.2当属性发生改变时的通知事件119
    5.3构造函数的设计121
    5.4事件的设计128
    5.5字段的设计134
    5.6扩展方法136
    5.7操作符重载142
    5.7.1重载operator==146
    5.7.2类型转换操作符146
    5.8参数的设计147
    5.8.1枚举和布尔参数之间的选择149
    5.8.2参数的验证151
    5.8.3参数的传递154
    5.8.4参数数量可变的成员156
    5.8.5指针参数159
    5.9小结161
    第6章扩展性设计162
    6.1扩展机制162
    6.1.1非密封类162
    6.1.2受保护的成员164
    6.1.3事件与回调函数165
    6.1.4虚成员169
    6.1.5抽象(抽象类型与抽象接口)171
    6.2基类173
    6.3密封174
    6.4小结177
    第7章异常178
    7.1抛出异常182
    7.2为抛出的异常选择合适的类型187
    7.2.1错误消息的设计190
    7.2.2异常处理191
    7.2.3封装异常196
    7.3标准异常类型的使用197
    7.3.1Exception与SystemExcep-tion198
    7.3.2ApplicationException198
    7.3.3InvalidOperationException198
    7.3.4ArgumentException、ArgumentNullException及ArgumentOutOfRange-Exception199
    7.3.5NullReferenceException、IndexOutOfRangeException及AccessViolationException199
    7.3.6StackOverflowException200
    7.3.7OutOfMemoryException201
    7.3.8ComException、SEHException以及ExecutionEngine-Exception202
    7.4自定义异常的设计202
    7.5异常与性能203
    7.5.1Tester-Doer模式204
    7.5.2Try-Parse模式205
    7.6小结206
    第8章使用规范207
    8.1数组207
    8.2修饰属性208
    8.3集合211
    8.3.1集合参数213
    8.3.2集合属性与返回值214
    8.3.3数组与集合之间的选择218
    8.3.4自定义集合的实现218
    8.4DateTime和DateTimeOffset220
    8.5ICloneable222
    8.6IComparable与IEquatable223
    8.7IDisposable225
    8.8Nullable225
    8.9Object226
    8.9.1Object.Equals226
    8.9.2Object.GetHashCode228
    8.9.3Object.ToString229
    8.10序列化231
    8.10.1选择要支持的序列化技术232
    8.10.2对数据协定序列化的支持233
    8.10.3对XML序列化的支持237
    8.10.4对运行时序列化的支持238
    8.11Uri239
    8.12System.Xml的使用241
    8.13相等性操作符242
    8.13.1值类型的相等性操作符243
    8.13.2引用类型的相等性操作符243
    第9章常用的设计模式244
    9.1聚合组件244
    9.1.1面向组件的设计245
    9.1.2因子类型248
    9.1.3聚合组件规范249
    9.2Async模式251
    9.2.1选择合适的Async模式251
    9.2.2经典Async模式253
    9.2.3Async模式的基本实现样例256
    9.2.4基于事件的Async模式257
    9.2.5对输出参数和引用参数的支持259
    9.2.6对取消操作的支持260
    9.2.7对进度报告的支持260
    9.2.8对增量结果的支持262
    9.3依赖属性263
    9.3.1依赖属性的设计264
    9.3.2附加依赖属性的设计266
    9.3.3依赖属性的验证267
    9.3.4依赖属性的改变通知268
    9.3.5依赖属性的强制赋值269
    9.4Dispose模式269
    9.4.1基本Dispose模式272
    9.4.2可终结类型277
    9.5Factory模式281
    9.6对LINQ的支持285
    9.6.1LINQ概要285
    9.6.2支持LINQ的几种方法286
    9.6.3通过IEnumerable来支持LINQ287
    9.6.4通过IQueryable来支持LINQ287
    9.6.5通过Query模式来支持LINQ288
    9.7OptionalFeature模式291
    9.8SimulatedCovariance模式294
    9.9TemplateMethod模式299
    9.10超时301
    9.11可供XAML使用的类型303
    9.12结束语305
    附录AC#编程风格约定306
    附录B通过FxCop来实施设计规范313
    附录CAPI规格书样例343
    术语表350
    推荐读物354
    索引356
查看详情
系列丛书 / 更多
.NET设计规范:约定、惯用法与模式
机器学习实战
[美]Peter Harrington 著;李锐、李鹏、曲亚东 译
.NET设计规范:约定、惯用法与模式
图灵程序设计丛书:Python基础教程
[挪威]Magnus Lie Hetland 著;司维、曾军崴、谭颖华 译
.NET设计规范:约定、惯用法与模式
JavaScript高级程序设计(第3版)
[美]Nicholas C.Zakas 著;李松峰、曹力 译
.NET设计规范:约定、惯用法与模式
Python编程:从入门到实践
[美]埃里克·马瑟斯(Eric Matthes) 著;袁国忠 译
.NET设计规范:约定、惯用法与模式
R语言实战(第2版)
[美]卡巴科弗(Robert I. Kabacoff) 著;王小宁、刘撷芯、黄俊文 译
.NET设计规范:约定、惯用法与模式
大数据:互联网大规模数据挖掘与分布式处理
[美]Anand、[美]Jeffrey David Ullman 著;王斌 译
.NET设计规范:约定、惯用法与模式
算法(第4版)
[美]Robert、[美]Kevin Wayne 著;谢路云 译
.NET设计规范:约定、惯用法与模式
Spark快速大数据分析
[美]卡劳(Holden Karau)、[美]肯维尼斯科(Andy Konwinski)、[美]温德尔(Patrick Wendell)、[加拿大]扎哈里亚(Matei Zaharia) 著;王道远 译
.NET设计规范:约定、惯用法与模式
MySQL必知必会
[英]福塔(Ben Forta) 著;刘晓霞、钟鸣 译
.NET设计规范:约定、惯用法与模式
图解HTTP
[日]上野·宣 著;于均良 译
.NET设计规范:约定、惯用法与模式
Objective-C基础教程 第2版
[美]Scott、[美]Waqar、[美]Mark Dalrymple 著;周庆成 译
.NET设计规范:约定、惯用法与模式
算法图解
袁国忠 译
相关图书 / 更多
.NET设计规范:约定、惯用法与模式
.NET并发编程实战
叶伟民 译;[美]里卡尔多·特雷尔(Riccardo Terrell) 著
.NET设计规范:约定、惯用法与模式
.NETCore底层入门
老农、刘浩杨 著
.NET设计规范:约定、惯用法与模式
.NET性能优化
[美]萨沙·戈德斯汀(Sasha Goldshtein) 迪马·祖巴列夫(Dim
.NET设计规范:约定、惯用法与模式
.NETCore实战:手把手教你掌握380个精彩案例/微软技术开发者丛书
周家安 编
.NET设计规范:约定、惯用法与模式
.NET框架程序开发与应用
张永财 著
.NET设计规范:约定、惯用法与模式
.NET项目开发教程
余秋明 著
.NET设计规范:约定、惯用法与模式
.Net项目开发实践
周清平、颜一鸣、刘彬 编
.NET设计规范:约定、惯用法与模式
.NETCompactFrameworkPocketGuide(PocketReference(O'Reilly))
Wei-Meng Lee 著
.NET设计规范:约定、惯用法与模式
.NET内存管理宝典
康拉德·科克萨(Konrad Kokosa) 著
.NET设计规范:约定、惯用法与模式
.NET 框架开发人员参考手册 (系统构架分册)
张志学
.NET设计规范:约定、惯用法与模式
.NET Core 2.0 应用程序高级调试——完全掌握Linux、macOS和 Windows跨平台调试技术
李争
.NET设计规范:约定、惯用法与模式
.NET Web企业应用开发实战
黄锐军
您可能感兴趣 / 更多
.NET设计规范:约定、惯用法与模式
宇宙视觉史:从宇宙大爆炸到时间的尽头
[美]查尔斯·刘 著;高爽 译者;[美]马克西姆· 马洛维奇科 绘;未读 出品
.NET设计规范:约定、惯用法与模式
写出我心 普通人如何通过写作表达自己(平装本)
[美]娜塔莉·戈德堡(Natalie Goldberg)
.NET设计规范:约定、惯用法与模式
写出我心3 写作疗愈的真正秘密
[美]娜塔莉·戈德堡(Natalie Goldberg)
.NET设计规范:约定、惯用法与模式
神套路:为什么我们总被带节奏(狂热与网红时代醍醐灌顶之作,教给普通人安身立命的不二法门!)
[美]阿里·阿莫萨维 著;[哥伦比亚]亚历杭德罗·希拉尔多 绘
.NET设计规范:约定、惯用法与模式
阿伦森自传
[美]埃利奥特·阿伦森(Elliot Aronson) 著;沈捷 译;湛庐文化 出品
.NET设计规范:约定、惯用法与模式
街头官僚:公共服务中的个人困境
[美]迈克尔·李普斯基(Michael Lipsky)
.NET设计规范:约定、惯用法与模式
史前至蒙古帝国时期的内欧亚大陆史
[美]大卫·克里斯蒂安 著;潘玲 译;杨建华 校
.NET设计规范:约定、惯用法与模式
意大利文艺复兴新艺术史
[美]迈克尔·韦恩·科尔 著;[美]斯蒂芬·J·坎贝尔;邵亦杨
.NET设计规范:约定、惯用法与模式
老人与海 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]海明威
.NET设计规范:约定、惯用法与模式
养育的觉醒:全面激发孩子自驱力,教你如何心平气和做妈妈
[美]凯文·莱曼 著;唐晓璐 译;斯坦威 出品
.NET设计规范:约定、惯用法与模式
自律我也能做到(全9册)
[美]康妮·科维尔·米勒 著;[阿根廷]维多利亚·阿萨纳利 绘
.NET设计规范:约定、惯用法与模式
你在等什么?
[美]斯科特·明钦 著;[中]易万 译;[美]马特 ·斐兰 绘