.NET设计规范

当前位置:首页 > 网络编程 > 编程语言与程序设计 > .NET设计规范

出版社:人民邮电出版社
出版日期:2006-7
ISBN:9787115149299
作者:克瓦林纳
页数:322页

媒体关注与评论

  “在微软,本书所讲述的规范已经指导我们经历了.NET框架三个版本和无数其他项目的开发,而且它正在指导着下一代Windows操作系统API——WinFX的开发。我希望你也能凭借此书,开发出容易理解和使用的软件。”  ——Anders Hejlsberg,微软杰出工程师,C#和Delphi之父  “本书是所有.NET开发人员的必读之作,这些来自微软.NET开发小组的真知灼见对于理解.NET之所以然至关重要,不仅能帮助开发人员设计自己的类库和框架、组件,而且有助于更加高效地使用.NET框架。”  ——Jeffrey Richter,著名技术作家,《Microsoft .NET框架程序设计》、《Windows核心编程》作者

内容概要

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的相关研发。之前曾先后任职于上海育碧电脑软件有限公司和上海旭上电子有限公司,从事游戏软件的开发及图形处理器的设计。

书籍目录

第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

编辑推荐

  《.NET设计规范:.NET约定惯用法与模式》包含许多评注,它们有的解释了相应规范的利弊权衡,有的介绍了其历史,有的给出了进一步的说明,有的提出了自己的批评意见。所有评注都来自经验丰富的框架设计师、业界专家及用户,这些源于开发一线的故事,为书中的许多规范增色不少。2006年JOLT生产效率大奖得主!来自微软。NET框架设计组的智慧结晶, 洞悉。NET技术内幕,.NET开发者的必备图书。

作者简介

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

图书封面


 .NET设计规范下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计6条)

  •     书是以 "要...", "不要..." 组织的, 但精华在于, 关于为什么会这样, 以及达成这个规范经历过什么, 做了详尽的介绍, 这点在 MSDN 上是没有的, 或者限于篇幅, 写得很简略另外有收获的地方是, 读完全书, 对于 C# 的使用规范, 有了个系统的认识, 心里大体有谱了.关于设计, 很多书在讲, 编码规范, 也司空见惯, 但是针对语言讲常用法的书不多.而当一位有经验的程序员, 接触一门新的语言时, 最需要的就是这方面的知识, 结果很多时候, 只能凭自己慢慢摸索, 或依靠其他语言上积累的经验, 或者看语言教程中的示例, 或者看开源项目中的用法, 但都容易显得零碎, 不够系统, 总有点踹踹然的感觉.很高兴, 这本书我认为能够承担起 C# 上的这个职责, 就好比 <<Effective ...>> 在 C++ 上一样.
  •     整本书的大部分内容都在讲.Net Framework中是如何考虑变量命名和一些编码相关的决策,设计的东西太少了,或者说我看此书时是希望该书可以讨论.Net Framework类是如何设计,又如何一起协作,以及实现这些协作做了那些权衡,备选的方案为什么不是最优的东西,这些信息太少了!
  •     在书店浏览下这本书后就耗不犹豫的买了下来,在我看来这本书最大的好处并不紧紧是在告诉你“要...”“不要...”规范,有关于这些规范的内容也可以在MSDN上找到。书中精彩的部分在于Jeffrey Richter等人的注释,你可以明白如:1)Dispose模式中GC.SuppressFinalize方法放在哪里,此处Jeffrey Richter给出了不同于《 Applied Microsoft .NET Framework programming 》中的方案;2)使用工厂方法和构造函数来需要的思考的地方;......规范的考虑并不在于技术很detail的地方,要想设计一个高效的,合理的,别人易于使用的类库,那么请不要错过这本书!

精彩短评 (总计20条)

  •     光看设计模式也太枯燥了,结合设计模式再学习这本书可能会更好
  •     若说《CLR VIA C#》是讲语法及语法背后的事情,那么这本就是讲编程规则的:语法要/不要怎样用以及为什么要/不要的问题。最新版本为第2版,这个版本的有点老了。
  •     TP393.409/05 一层东
  •     读过影印版,书印得糟透了,可惜了一本好书!
  •     很多规范不只适用于.net。第一章中的建议很经典。让我反思了很多以前的编码模式。书中大师的点评则很到位,增加了一定的趣味性。
  •     一年多前读过一遍,等有时间时还想再读一遍,到时肯定还有更多收获
  •     写.net的人必须要看,微软的开发规范要好好学习
  •     可以读读。
  •     买了2年没动,真正看起来只花了3天,当然不是说就都吸收了。从框架设计的角度,看FCL的演变,其实收获不少。
  •     收益不是很多
  •     大致浏览了一遍,后面就开始写php了,所以没看全
  •     翻译很不错, 当然内容更不错
  •     好书
  •     看的第一本关于编码规范的书,对我之后的coding影响很深
  •     .net 码农行为守则,大神点评还是很有用的
  •     有点意思,可以一观
  •     公用API设计规范 不一样哦 专家批注是特色
  •     完整的读过,只是貌似记不起来多少东西了。
  •     这本就是比一般好一点吧,现在微软技术书籍,就喜欢搞自己的人出来吹的一塌糊涂,其实,很有多不怎么样。.NET在2.0之后其实没什么本质上的进步了,也不可能像java那样,搞开源框架。这本书是讲框架和类库设计的,讲的还是蛮不错,可以看看。相关内容还是参考代码大全更好,因为这个也不能保证是最佳实践哦。
  •     一星期看完,HOHO..NET设计很优美
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024