搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
.NET设计规范:约定、惯用法与模式
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787115226518
  • 作      者:
    (美)Krzysztof Cwalina,(美)Brad Abrams著
  • 出 版 社 :
    人民邮电出版社
  • 出版日期:
    2010
收藏
编辑推荐
  数千名微软精锐开发人员的经验和智慧。最终浓缩在这本设计规范之中。与上一版相比。书中新增了许多评注.解释了相应规范的背景和历史,从中你能聆听到微软技术大师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开发者的必备图书。
展开
作者简介
  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版)》、《设计模式沉思录》。
展开
内容介绍
  数千名微软精锐开发人员的经验和智慧,最终浓缩在这本设计规范之中。与上一版相比,书中新增了许多评注,解释了相应规范的背景和历史,从中你能聆听到微软技术大师Anders Hejlsberg、Jeffrey Richter和Paul Vick等的声音,读来令人兴味盎然。
  本书虽然是针对.NET平台上的框架设计的,但对其他平台的框架设计同样具有借鉴意义。新版根据.NET Framework 3.0和3.5的新特性做了全面更新,主要关注的是直接影响框架可编程能力的设计问题。遵守这些规范对于使用.NET Framework创建高质量的应用程序至关重要。
  本书提供配套光盘,内含Designing .NET Class Libraries等13个演讲视频。此外,光盘还包括.NET Framework类和组件设计指南、API规范样例以及其他有用的资源和工具。
展开
精彩书评
  “本书第1版出版以后.立即成为整个Mono社区传诵的经典……这一版弥补了上一版的很多不足,而众多参与规范制定的核心.NET架构师及顶尖程序员所做的评注也极大地丰富了本书的内涵。”
  ——Miguel de Icaza.GNOME和Mono项目创建者
  “本书绝对是所有.NET开发人员的必读之作。它总结了.NET本身设计和开发过程中获得的经验和教训,不仅使你对.NET能够知其所以然。还能极大地帮助你更高效地使用.NET类库。”
  ——Jeffrey Richter。微软技术大师,名著《windows核心编程》作者
展开
精彩书摘
  如果框架的设计者能够站在其使用者背后解释应该如何使用框架,那么规范就没有存在的必要了。规范为我们这些框架设计者提供了一套工具,可以在自己和使用框架的开发者之间形成一种共同语言。例如,将一个操作定义为属性而不是方法可以向用户传达重要的信息,告诉他们应该如何使用该操作。
  在PC时代的早期,开发应用程序的主要工具是程序设计语言编译器、少量的标准程序库以及未经封装的操作系统应用程序编程接口(API),这些是很基本的底层编程工具。
  即使开发人员用如此基本的工具构建应用程序,重复的代码也会越来越多,而通过用更高层的API对代码进行抽象,可以消除这种重复。操作系统供应商们注意到提供此类更高层的API,可以使开发人员更容易地为他们的系统开发应用程序。能够在该系统上运行的应用程序的数量会随之增加,进而使得系统对最终用户更具有吸引力,因为最终用户需要多种多样的应用程序。此外,独立的工具及组件供应商也很快意识到了由提升API的抽象层次所带来的商机。
  与此同时,工业界开始逐渐地接受了面向对象设计以及它所强调的扩展性和重用性①。当可重用程序库的供应商为了开发其高API而采纳OOP(Object.OrientedProgramming,面向对象编程)时,就产生了框架(framework)的概念。自从有了框架,开发人员不再需要从头开始编写应用程序。框架会提供所需的大部分部件,这些部件经过开发人员的定制和拼装②,就成为了最终的应用程序。
展开
目录
第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.1 Exception与SystemExcep- tion 198
7.3.2 ApplicationException 198
7.3.3 InvalidOperationException 198
7.3.4 ArgumentException、ArgumentNullException及ArgumentOutOfRange-Exception 199
7.3.5 NullReferenceException、IndexOutOfRangeException及AccessViolationException 199
7.3.6 StackOverflowException 200
7.3.7 OutOfMemoryException 201
7.3.8 ComException、SEHException以及ExecutionEngine-Exception 202
7.4 自定义异常的设计 202
7.5 异常与性能 203
7.5.1 Tester-Doer模式 204
7.5.2 Try-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.4 DateTime和DateTimeOffset 220
8.5 ICloneable 222
8.6 IComparable与IEquatable 223
8.7 IDisposable 225
8.8 Nullable 225
8.9 Object 226
8.9.1 Object.Equals 226
8.9.2 Object.GetHashCode 228
8.9.3 Object.ToString 229
8.10 序列化 231
8.10.1 选择要支持的序列化技术 232
8.10.2 对数据协定序列化的支持 233
8.10.3 对XML序列化的支持 237
8.10.4 对运行时序列化的支持 238
8.11 Uri 239
8.12 System.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.2 Async模式 251
9.2.1 选择合适的Async模式 251
9.2.2 经典Async模式 253
9.2.3 Async模式的基本实现样例 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.4 Dispose模式 269
9.4.1 基本Dispose模式 272
9.4.2 可终结类型 277
9.5 Factory模式 281
9.6 对LINQ的支持 285
9.6.1 LINQ概要 285
9.6.2 支持LINQ的几种方法 286
9.6.3 通过IEnumerable来支持LINQ 287
9.6.4 通过IQueryable来支持LINQ 287
9.6.5 通过Query模式来支持LINQ 288
9.7 Optional Feature模式 291
9.8 Simulated Covariance模式 294
9.9 Template Method模式 299
9.10 超时 301
9.11 可供XAML使用的类型 303
9.12 结束语 305
附录A C#编程风格约定 306
附录B 通过FxCop来实施设计规范 313
附录C API规格书样例 343
术语表 350
推荐读物 354
索引 356  << 隐藏目录详情
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证