《NET设计规范》

《NET设计规范》 《NET设计规范》

  • 书名:《NET设计规范》:NET约定、惯用法与模式
  • 分类:编程
  • 作者:克瓦林纳
  • 出版社:人民邮电出版社
  • 出版年:2006-7
  • 售价:49.00元
  • 装订:平装
  • 页码:322

《NET设计规范》 内容介绍:

本书为框架设计师和广大开发人员设计高质量的软件提供了权威的指南。书中介绍了在设计框架时的最佳实践,提供了自顶向下的规范,其中所描述的规范普遍适用于规模不同、可重用程度不同的框架和软件。这些规范历经.net框架三个版本的长期开发,凝聚了数千名开发人员的经验和智慧。微软的各开发组正在使用这些规范开发下一代影响世界的软件产品。. 本书适用于框架设计师以及相关的专业技术人员,也适用于高等院校相关专业的学生和教师阅读参考。

作者克瓦林纳介绍:

krzysztof cwalina 微软公司公共语言运行库(clr)的项目经理。他曾为.net框架的首个版本设计api,并负责框架中的多个名字空间,包括system.collections、system.diagnostics、system.messaging,等等。他也是fxcop开发组的发起成员之一。目前,他正致力于在整个公司范围内开发推广设计规范,并将其应用到.net框架和winfx中。 brad abrams 微软公司公共语言运行库开发组和.net框架开发组的创始成员之一,目前是lead program manager。brad也是公共语言规范(cls)、.net框架设计规范及ecma\iso cli标准中程序库标准的主编。brad与他人合著了programming in the .net environment,他还是.net framework standard library annotated reference(卷1和卷2)的编辑。读者可以从他的blog:http://blogs.msdn.com/brada/中了解他最新的想法。 葛子昂,1998年毕业于南京理工大学计算机系,目前就职于微软亚洲工程院上海分院,致力于windows server的相关研发。之前曾先后任职于上海育碧电脑软件有限公司和上海旭上电子有限公司,从事游戏软件的开发及图形处理器的设计。

《NET设计规范》 目录大纲:

第1章 概述 1
1.1 精心设计的框架所具备的品质 2
1.1.1 精心设计的框架是简单的 2
1.1.2 精心设计的框架设计代价高 3
1.1.3 精心设计的框架充满利弊权衡 3
1.1.4 精心设计的框架应该借鉴过去 4
1.1.5 精心设计的框架要考虑未来发展 4
1.1.6 精心设计的框架应具有良好的集成性 4
1.1.7 精心设计的框架是一致的 4
第2章 框架设计基础 6
2.1 渐进框架 7
2.2 框架设计的基本原则 10
2.2.1 场景驱动设计的原则 11
2.2.2 低门槛原则 17
2.2.3 自说明对象模型原则 20
2.2.4 分层架构原则 25
2.3 小结 27
第3章 命名规范 28
3.1 大小写约定 29
3.1.1 标识符的大小写规则 29
.3.1.2 首字母缩写词的大小写 31
3.1.3 复合词和常用术语的大小写 33
3.1.4 是否区分大小写 35
3.2 通用命名约定 35
3.2.1 单词的选择 36
3.2.2 使用单词缩写和首字母缩写词 37
3.2.3 避免使用语言特有的名字 38
3.2.4 为已有api的新版本命名 39
3.3 程序集和dll的命名 42
3.4 名字空间的命名 43
3.5 类、结构和接口的命名 47
3.5.1 泛型类型参数的命名 49
3.5.2 常用类型的命名 50
3.5.3 枚举类型的命名 51
3.6 类型成员的命名 53
3.6.1 方法的命名 53
3.6.2 属性的命名 54
3.6.3 事件的命名 55
3.6.4 字段的命名 57
3.7 参数的命名 57
3.8 资源的命名 58
3.9 小结 59
第4章 类型设计规范 60
4.1 类型和名字空间 62
4.2 类和结构之间的选择 67
4.3 类和接口之间的选择 69
4.4 抽象类的设计 76
4.5 静态类的设计 78
4.6 接口的设计 79
4.7 结构的设计 81
4.8 枚举的设计 83
4.8.1 标记枚举的设计 89
4.8.2 给枚举添加值 93
4.9 嵌套类型 94
4.10 小结 96
第5章 成员设计 97
5.1 成员设计的一般规范 97
5.1.1 成员重载 97
5.1.2 显式地实现接口成员 102
5.1.3 属性和方法之间的选择 106
5.2 属性的设计 112
5.2.1 索引属性的设计 113
5.2.2 属性改变的通知事件 115
5.3 构造函数的设计 117
5.4 事件的设计 123
5.5 字段的设计 130
5.6 操作符重载 132
5.6.1 重载operator== 136
5.6.2 类型转换操作符 136
5.7 参数的设计 138
5.7.1 枚举和布尔参数之间的选择 140
5.7.2 参数的验证 142
5.7.3 参数的传递 145
5.7.4 参数数量可变的成员 147
5.7.5 指针参数 150
5.8 小结 152
第6章 为扩展性而设计 153
6.1 扩展机制 153
6.1.1 非密封类 153
6.1.2 保护成员 155
6.1.3 事件与回调函数 156
6.1.4 虚成员 158
6.1.5 抽象(抽象类型与抽象接口) 160
6.2 基类 162
6.3 密封 163
6.4 小结 166
第7章 异常 167
7.1 抛出异常 171
7.2 为抛出的异常选择合适的类型 175
7.2.1 错误消息的设计 176
7.2.2 异常处理 177
7.2.3 对异常进行封装 182
7.3 标准异常类型的使用 184
7.3.1 exception与systemexception 184
7.3.2 applicationexception 184
7.3.3 invalidoperationexception 184
7.3.4 argumentexception、argumentnullexception 及argumentoutofrangeexception 185
7.3.5 nullreferenceexception、indexoutofrangeexception及accessviolationexception 186
7.3.6 stackoverflowexception 186
7.3.7 outofmemoryexception 187
7.3.8 comexception、sehexception及其他clr异常 188
7.3.9 executionengineexception 188
7.4 自定义异常的设计 188
7.5 异常与性能 190
7.5.1 tester-doer模式 190
7.5.2 try-parse模式 191
7.6 小结 192
第8章 使用规范 193
8.1 数组 193
8.2 attribute 195
8.3 集合 198
8.3.1 集合参数 199
8.3.2 集合属性与返回值 200
8.3.3 数组与集合之间的选择 204
8.3.4 自定义集合的实现 205
8.4 icloneable 207
8.5 icomparable[t]与iequatable[t] 208
8.6 idisposable 210
8.7 对象 210
8.7.1 object.equals 210
8.7.2 object.gethashcode 212
8.7.3 object.tostring 213
8.8 uri 214
8.9 system.xml的使用 216
8.10 相等性操作符 218
8.10.1 值类型的相等性操作符 218
8.10.2 引用类型的相等性操作符 219
第9章 常用的设计模式 220
9.1 聚合组件 220
9.1.1 面向组件的设计 222
9.1.2 因子类型 224
9.1.3 聚合组件规范 224
9.2 async模式 227
9.3 dispose模式 232
9.3.1 基本dispose模式 234
9.3.2 可终结类型 240
9.4 factory模式 243
9.5 optional feature模式 247
9.6 template method模式 251
9.7 超时 252
9.8 结束语 254
附录a c#编程风格约定 255
a.1 通用风格约定 255
a.1.1 花括号的使用 255
a.1.2 空格的使用 257
a.1.3 缩进的使用 259
a.2 命名约定 259
a.3 注释 260
a.4 文件的组织 261
附录b 通过fxcop来实施设计规范 263
b.1 fxcop是什么? 263
b.2 fxcop的发展过程 264
b.3 fxcop的工作原理 265
b.4 fxcop规范的覆盖范围 265
b.4.1 与命名规范有关的fxcop规则 265
b.4.2 与类型设计规范有关的fxcop规则 274
b.4.3 与成员的设计有关的fxcop规则 277
b.4.4 与为扩展性而设计有关的fxcop规则 284
b.4.5 与异常有关的fxcop规则 285
b.4.6 与使用规范有关的fxcop规则 287
b.4.7 与设计模式有关的fxcop规则 291
附录c api规范样例 292
术语表 299
推荐读物 303
索引 305


微信扫一扫关注公众号

0 个评论

要评论图书请先登录注册

你也许想看:

Object-Oriented Software Construction

《Object-Oriented Software Construction》

Bertrand Meyer.Prentice Hall.2000-03-21

“Contents Preface V Foreword To The Second Edition Xiii About...”

The Definitive Guide to Drupal 7

《The Definitive Guide to Drupal 7》

Benjamin Melancon,Allie Micka,Amye Scavarda,Benjamin Doherty,Bojhan Somers,Jacine Rodriguez,Karoly Negyesi,Moshe Weitzman,Roy Scholten,Ryan Szrama,Sam Boyer,Stephane Corlosquet,Amanda Miller-Johnson,Andrew Grice,Dan Hakimzadeh.APRESS.2011-5-11

“The Definitive Guide to Drupal 7 is the most comprehensive b...”

LLVM Cookbook

《LLVM Cookbook》

Mayur Pandey,Suyog Sarda.Packt Publishing.2015-6-30

“If you are a compiler developer who wants to use the strong ...”

iOS Drawing

《iOS Drawing》

.Addison-Wesley Professional.2013-10

“Covers iOS 7 and Xcode 5 Apple lavished iOS with a rich and ...”

C#高级编程(第4版)

《C#高级编程(第4版)》

Christian Nagel Bill Evjen Jay Glynn等.清华大学出版社.2006-10

“C#经典名著!也是Wrox红皮书中最畅销的品种之一,从第一版开始就名满天下;其第3版被中华读书报、CSDN、《程序员》等...”

我的第一本编程书

《我的第一本编程书》

[日]平山尚.人民邮电出版社.2016-7

“写这本书之前,作者一直在摸索一种最有利于入门者学编程的方法,并应用到教学当中。经过两年的教学实践,他确信他的方法是有效的...”

App研发录:架构设计、Crash分析和竞品技术分析

《App研发录:架构设计、Crash分析和竞品技术分析》

包建强.机械工业出版社.2015-10-21

“本书是作者多年App开发的经验总结,从App架构的角度,重点总结了Android应用开发中常见的实用技巧和疑难问题解决方...”

学习Python(第5版)(影印版)

《学习Python(第5版)(影印版)》

Mark Lutz.东南大学出版社.2014-1

“《学习Python(第5版)(影印版)(套装共2册)》将让你获得针对核心Python语言的一次全面而又深入的介绍。基于作...”

Engineering Software as a Service

《Engineering Software as a Service》

Armando Fox,David Patterson.Strawberry Canyon LLC.2013-4-16

“”

Text Processing in Python

《Text Processing in Python》

David Mertz.Addison-Wesley Professional.2003-6-12

“Text Processing in Python describes techniques for manipulat...”

Android系统源代码情景分析(修订版)(含CD光盘1张)

《Android系统源代码情景分析(修订版)(含CD光盘1张)》

罗升阳 著.电子工业出版社.2016-1

“在内容上,《Android系统源代码情景分析(修订版)(含CD光盘1张)》结合使用情景,全面、深入、细致地分析了Andr...”

写给大家看的C++书

《写给大家看的C++书》

Larry Ullman,Andreas Signer.人民邮电出版社.2009.7

“在这个信息技术无所不在的时代,编程能力正在变得越来越重要。C++以高性能、易移植而著称,而且同时支持过程式、面向对象和泛...”

iOS 9 by Tutorials

《iOS 9 by Tutorials》

Aaron Douglas, Caroline Begbie, Chris Wagner, Derek Selander, Evan Dekhayser, James Frost, Jawwad Ahmad, Pietro Rea, Soheil Azarpour, Vincent Ngo.Razeware LLC.2015-10-7

“Learn the New iOS 9 APIs! iOS 9 introduces a ton of great ne...”

The Joy of Clojure

《The Joy of Clojure》

Michael Fogus,Chris Houser.Manning Publications.2011-4-4

“Clojure is a dynamic programming language that targets the J...”

Fluent Python

《Fluent Python》

Luciano Ramalho.O'Reilly Media.2015-8-20

“Learn how to write idiomatic, effective Python code by lever...”

Effective Ruby:改善Ruby程序的48条建议

《Effective Ruby:改善Ruby程序的48条建议》

Peter J. Jones.机械工业出版社.2016-1

“如果你是经验丰富的Rub程序员,本书能帮助你发挥Ruby的全部力量来编写更稳健、高效、可维护和易执行的代码。Peter ...”

有趣的二进制

《有趣的二进制》

[ 日] 爱甲健二.人民邮电出版社.2015-10

“《有趣的二进制:软件安全与逆向分析》通过逆向工程,揭开人们熟知的软件背后的机器语言的秘密,并教给读者读懂这些二进制代码的...”

编程人生(下卷)

《编程人生(下卷)》

[美] Peter Seibel.人民邮电出版社.2014-12

“这是一本访谈笔录,记录了当今最具个人魅力的15 位软件先驱的编程生涯。包括Donald Knuth、Jamie Zawi...”

C++ Design Patterns and Derivatives Pricing

《C++ Design Patterns and Derivatives Pricing》

Mark S. Joshi.Cambridge University Press.2004-9-6

“”

逆向工程实战

《逆向工程实战》

[美] Bruce Dang,[法] Alexandre Gazet,[美] Elias Bachaalany,[法] Sébastien Josse.人民邮电出版社.2015-8

“本书是一本涵盖x86、x64和ARM操作系统的逆向工程类图书,由浅入深地讲解了包括Windows内核模式代码的恶意软件和...”