微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.NET设计规范:约定、惯用法与模式 :(第2版)(.NET开发者的必备图书,洞悉.NET技术内幕)

.NET设计规范:约定、惯用法与模式 :(第2版)(.NET开发者的必备图书,洞悉.NET技术内幕)


基本信息

原书名: Framework Design Guidelines: Conventions,Idioms,and Patterns for Reusable .NET Libraries (2nd Edition)
原出版社: Addison-Wesley Professional
作者: (美)Krzysztof Cwalina Brad Abrams [作译者介绍]
译者: 葛子昂[同译者作品]
丛书名: 图灵程序设计丛书
出版社:人民邮电出版社
ISBN:9787115226518
上架时间:2010-5-14
出版日期:2010 年5月
开本:16开
更多详细信息请查看:http://www.china-pub.com/196659
更有精彩样张抢先试读:http://www.china-pub.com/computers/common/mianfeisd.asp?id=196659


媒体评论

“本书第1版出版以后,立即成为整个Mono社区传诵的经典……这一版弥补了上一版的很多不足,而众多参与规范制定的核心.NET架构师和顶尖程序员所做的评注也极大地丰富了本书的内涵。”
——Miguel de Icaza,墨西哥自由软件开发者,GNOME和Mono项目创建者

“本书绝对是所有.NET开发人员的必读之作。它总结了.NET本身设计和开发过程中获得的经验和教训,不仅使你对.NET能够知其所以然,还能极大地帮助你更高效地使用.NET类库。”
——Jeffrey Richter,微软技术大师,名著《Windows核心编程》作者


内容简介

数千名微软精锐开发人员的经验和智慧,最终浓缩在这本设计规范之中。与上一版相比,书中新增了许多评注,解释了相应规范的背景和历史,从中你能聆听到微软技术大师Anders Hejlsberg、Jeffrey Richter和Paul Vick等的声音,读来令人兴味盎然。
本书虽然是针对.NET平台上的框架设计的,但对其他平台的框架设计同样具有借鉴意义。新版根据.NET Framework 3.0和3.5的新特性做了全面更新,主要关注的是直接影响框架可编程能力的设计问题。遵守这些规范对于使用.NET Framework创建高质量的应用程序至关重要。
本书提供配套光盘,内含Designing .NET Class Libraries等13个演讲视频。此外,光盘还包括.NET Framework类和组件设计指南、API规范样例以及其他有用的资源和工具。


目录

第1章 概述 1 1.1 精心设计的框架所具备的品质 2 第2章 框架设计基础 7 2.1 渐进框架 9 2.2 框架设计的基本原则 12 2.3 小结 30 第3章 命名规范 31 3.1 大小写约定 31 3.2 通用命名约定 38 3.3 程序集和DLL的命名 45 3.4 名字空间的命名 46 3.5 类、结构和接口的命名 50 3.6 类型成员的命名 56 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.9 嵌套类型 97 4.10 类型和程序集元数据 98 4.11 小结 100 第5章 成员设计 101 5.1 成员设计的通用规范 101 5.2 属性的设计 115 5.3 构造函数的设计 121 5.4 事件的设计 128 5.5 字段的设计 134 5.6 扩展方法 136 5.7 操作符重载 142 5.8 参数的设计 147 5.9 小结 161 第6章 扩展性设计 162 6.1 扩展机制 162 6.2 基类 173 6.3 密封 174 6.4 小结 177 第7章 异常 178 7.1 抛出异常 182 7.2 为抛出的异常选择合适的类型 187 7.3 标准异常类型的使用 197 7.4 自定义异常的设计 202 7.5 异常与性能 203 7.6 小结 206 第8章 使用规范 207 8.1 数组 207 8.2 修饰属性 208 8.3 集合 211 8.4 DateTime和DateTimeOffset 220 8.5 ICloneable 222 8.6 IComparable[T]与IEquatable[T] 223 8.7 Idisposable 225 8.8 Nullable[T] 225 8.9 Object 226 8.10 序列化 231 8.11 Uri 239 8.12 System.Xml的使用 241 8.13 相等性操作符 242 第9章 常用的设计模式 244 9.1 聚合组件 244 9.2 Async模式 251 9.3 依赖属性 263 9.4 dispose模式 269 9.5 Factory模式 281 9.6 对LINQ的支持 285 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图:提供一种方法顺序访问一个聚合对象中的每个元素,而又不想暴露该对象的内部表示。应用:STL标准库迭代器实现、Java集合类型迭代器等模式结构:心得:迭代器模式的目的是在不获知集合对象内部细节的同时能对集合元素进行遍历操作
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(BlockingIO):即传统的IO模型。(2)同步非阻塞IO(Non-blockingIO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的N
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定义一系列算法,把他们封装起来,并且使他们可以相互替换,使算法可以独立于使用它的客户而变化。应用:排序的比较方法、封装针对类的不同的算法、消除条件判断、寄存器分配算法等。模式结构:心得:对对象(Context)的处理操作可
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个作用于某对象结构中的各元素的操作,它使你在不改变各元素的类的前提下定义作用于这些元素的新操作。应用:作用于编译器语法树的语义分析算法。模式结构:心得:访问者模式是要解决对对象添加新的操作和功能时候,如何尽可能不修改对象的类的一种方
命令模式(Command)命令模式(Command)[Action/Transaction]意图:将一个请求封装为一个对象,从而可用不同的请求对客户参数化。对请求排队或记录请求日志,以及支持可撤消的操作。应用:用户操作日志、撤销恢复操作。模式结构:心得:命令对象的抽象接口(Command)提供的两个
生成器模式(Builder)生成器模式(Builder)意图:将一个对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。 应用:编译器词法分析器指导生成抽象语法树、构造迷宫等。模式结构:心得:和工厂模式不同的是,Builder模式需要详细的指导产品的生产。指导者(Director)使用C
设计模式学习心得《设计模式:可复用面向对象软件的基础》一书以更贴近读者思维的角度描述了GOF的23个设计模式。按照书中介绍的每个设计模式的内容,结合网上搜集的资料,我将对设计模式的学习心得总结出来。网络上关于设计模式的资料和文章汗牛充栋,有些文章对设计模式介绍生动形象。但是我相信“一千个读者,一千个
工厂方法模式(Factory Method)工厂方法模式(Factory Method)[Virtual Constructor]意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实力化延迟到子类。应用:多文档应用管理不同类型的文档。模式结构:心得:面对同一继承体系(Produc
单例模式(Singleton)单例模式(Singleton)意图:保证一个类只有一个实例,并提供一个访问它的全局访问点。应用:Session或者控件的唯一示例等。模式结构:心得:单例模式应该是设计模式中最简单的结构了,它的目的很简单,就是保证自身的实例只有一份。实现这种目的的方式有很多,在Java中
装饰者模式(Decorator)装饰者模式(Decorator)[Wrapper]意图:动态的给一个对象添加一些额外的职责,就增加功能来说,比生成子类更为灵活。应用:给GUI组件添加功能等。模式结构:心得:装饰器(Decorator)和被装饰的对象(ConcreteComponent)拥有统一的接口