• 您的位置我爱Aspx >> 书籍 >> 框架设计(第2版):CLR Via C#
  • 框架设计(第2版):CLR Via C#

  • 作者:未知  来源:网络  日期:2007-3-18 22:52:24  关键字:c#
  • 【作者】(美)Jeffrey Richter著 周靖 张杰良 译

    【出版社】清华大学出版社

    【ISBN】7302140162

    【出版日期】2006年10月

     

    【版别版次】2006年10月第一版第一次印刷

    著名技术作家Jeff Richter 新作,助您迅速掌握CLR
    在经典畅销书《Microsoft .NET框架程序设计》的最新版中,深入剖析了.NET Framework和CLR 2.0的内部机制。Jeffrey是深受爱戴的编程专家,同时也是Microsoft .NET开发团队的顾问。本书是他多年开发和咨询经验的结晶,是开发人员开发任何一类应用程序(包括ASP.NET、Windows窗体、Microsoft SQL Server,Web服务和控制台应用程序)的理想参考。
    通过本书提供的动手指导和丰富的C#范例代码,开发人员可掌握难解的主题,开发出高性能的应用程序。
    本书特色主题:
    • 构建、部署、管理应用程序、组件和共享程序集并对其进行版本控制
    • 用常量、字段、构造函数、方法、属性和事件来设计类型
    • 高效使用CLR的特殊类型,如枚举器、数组和字符串等
    • 声明、创建和使用委托来揭示回调函数
    • 用接口和泛型来定义和部署可重用的算法
    • 定义、使用和检测自定义属性
    • 使用异常处理来构建健壮、稳定、安全性更强的组件
    • 用垃圾收集机制自动管理内存,并使用本地资源
    • 应用CLR宿主、应用程序域、程序集加载和反射,构建动态可扩展的应用程序。
    ?范例代码均可从http://wintellect.com获得

    目    录


    第Ⅰ部分  CLR基础

     
    第1章  CLR的执行模型 3
    1.1  将源代码编译成托管模块 3
    1.2  将托管模块合并成程序集 6
    1.3  加载公共语言运行库 7
    1.4  执行程序集的代码 9
    1.4.1  IL和验证 14
    1.4.2  不安全的代码 15
    1.5  本地代码生成器:NGen.exe 16
    1.6  Framework类库入门 18
    1.7  通用类型系统 20
    1.8  公共语言规范(CLS) 22
    1.9  与非托管代码的互操作性 26
    第2章  生成、打包、部署和管理
    应用程序及类型 28
    2.1  .NET Framework部署目标 28
    2.2  将类型集成到模块中 29
    2.3  元数据概述 32
    2.4  合并模块以构成一个程序集 38
    2.4.1  使用Visual Studio IDE在项目
    中添加程序集 43
     
    2.4.2  使用程序集链接器 44
    2.4.3  在程序集中包含
    资源文件 45
    2.5  程序集版本资源信息 46
    2.6  语言文化 49
    2.7  简单应用程序部署
    (私有部署的程序集) 50
    2.8  简单管理控制(配置) 51
    第3章  共享程序集和
    强命名程序集 54
    3.1  两种程序集,两种部署 55
    3.2  为程序集指派强名称 56
    3.3  全局程序集缓存 61
    3.4  在生成的程序集中引用
    一个强命名程序集 66
    3.5  强命名程序集能防范篡改 67
    3.6  延迟签名 68
    3.7  私有部署强命名程序集 70
    3.8  运行库如何解析类型引用 71
    3.9  高级管理控制(配置) 73
     

    第Ⅱ部分  类型的使用

     
    第4章  类型基础 81
    4.1  所有类型都是从
    System.Object派生的 81
    4.2  强制类型转换 83
    4.3  命名空间和程序集 86
    4.4  运行时的相互关系 90
    第5章  基元、引用和值类型 98
    5.1  编程语言的基元类型 98
    5.2  引用类型和值类型 103
    5.3  值类型的装箱和拆箱 108
    5.4  使用接口更改已装箱值类型中的字段
    (以及为什么不应该这样做) 118
    5.5  对象相等性和身份标识 120
     
    5.6  对象哈希码 123
     

    第Ⅲ部分  类型的设计

     
    第6章  类型和成员基础 127
    6.1  类型成员的种类 127
    6.2  类型的可见性 130
    6.3  成员的可访问性 131
    6.4  静态类 133
    6.5  部分类、结构和接口 134
    6.6  组件、多态和版本控制 135
    6.6.1  CLR如何调用虚方法、
    属性和事件 137
    6.6.2  巧妙使用类型的可见性和
    成员的可访问性 140
    6.6.3  类型版本控制过程中虚
    方法的处理 143
    第7章  常量和字段 147
    7.1  常量 147
    7.2  字段 148
    第8章  方法:构造器、操作符、
    转换操作符 和参数 151
    8.1  实例构造器和类(引用类型) 151
    8.2  实例构造器和结构(值类型) 154
    8.3  类型构造器 156
    8.4  操作符重载 161
    8.5  转换操作符方法 164
    8.6  通过引用向方法传递参数 167
    8.7  向方法传递可变数量的参数 172
    8.8  声明方法的参数类型 174
     
    8.9  常量方法和参数 175
    第9章  属性 176
    9.1  无参属性 176
    9.2  有参属性 180
    9.3  调用属性访问器方法的性能 184
    9.4  属性访问器的可访问性 185
    9.5  泛型属性访问器方法 185
    第10章  事件 186
    10.1  设计一个对外提供事件的类型 187
    10.1.1  第一步:定义一个类型
    用于存放所有需要发送
    给事件通知接收者的
    附加信息 187
    10.1.2  第二步:定义事件成员 188
    10.1.3  第三步:定义一个负责
    引发事件的方法来通知已
    订阅事件的对象事件
    已经发生 189
    10.1.4  第四步:定义一个方法,
    将输入转化为期望事件 190
    10.2  如何实现事件 190
    10.3  设计一个监听事件的类型 192
    10.4  事件与线程安全 193
    10.5  显式控制事件的订阅与注销 194
    10.6  设计一个定义多个事件的类型 196
     

    第Ⅳ部分  基本类型

     
    第11章  字符、字符串和文本 201
    11.1  字符 201
    11.2  System.String类型 204
    11.2.1  构造字符串 204
    11.2.2  字符串是不可变的 206
    11.2.3  比较字符串 206
    11.2.4  字符串留用 212
    11.2.5  字符串池 214
    11.2.6  检查字符串的字符
    和文本元素 214
    11.2.7  其他字符串操作 216
    11.3  高效率地动态构造一个字符串 217
    11.3.1  构造一个
    StringBuilder对象 217
    11.3.2  StringBuilder的成员 218
    11.4  获取对象的字符串表示 220
    11.4.1  特定的格式和语言 220
    11.4.2  将多个对象格式化
    成单个字符串 224
    11.4.3  提供定制格式化器 225
    11.5  解析字符串来获取一个对象 227
    11.6  编码:在字符和字节之间转换 229
    11.6.1  字符和字节流的
    编码/解码 234
    11.6.2  Base-64字符串编码
    和解码 235
    11.7  安全字符串 236
    第12章  枚举类型和位标志 239
    12.1  枚举类型 239
    12.2  位标志 244
    第13章  数组 247
    13.1  数组的类型转换 249
    13.2  所有数组都隐式继承自
    System.Array 251
    13.3  所有数组都隐式实现IEnumerable,
    ICollection和Ilist 252
    13.4  数组的传递与返回 253
    13.5  创建下界非0的数组 253
    13.6  数组访问性能 254
    13.7  非安全数组访问和
    固定长度数组 258
    第14章  接口 261
    14.1  类和接口的继承 261
    14.2  定义接口 262
    14.3  接口的继承 263
    14.4  调用接口方法详解 265
    14.5  接口方法的隐式和显式实现
    (幕后细节) 266
    14.6  泛型接口 267
    14.7  泛型接口和接口约束 269
    14.8  实现具有相同方法名和签名的
    多个接口 270
    14.9  用显式接口方法实现改进编译时
    类型安全 271
    14.10  谨慎使用显式接口方法实现 272
    14.11  设计:基类还是接口 275
    第15章  委托 277
    15.1  初识委托 277
    15.2  使用委托来回调静态方法 279
    15.3  使用委托回调实例方法 280
    15.4  委托揭秘 281
    15.5  使用委托回调多个方法(链式) 285
    15.6  C#对委托链的支持 288
    15.7  对委托链调用进行更多控制 289
    15.8  C#为委托提供的语法便利 291
    15.8.1  语法快捷方式1:
    不需要构造委托对象 291
    15.8.2  语法快捷方式2:
    不需要定义回调方法 292
    15.8.3  语法快捷方式3:
    不需要指定回调方法
    的参数 293
    15.8.4  语法快捷方式4:
    不需要将局部变量人工封装
    到类中,即可将它们
    传给一个回调方法 294
    15.9  委托和反射 296
    第16章  泛型 300
    16.1  FCL中的泛型 304
    16.2  Wintellect的Power Collections库 305
    16.3  泛型基础结构 306
    16.3.1  开放和封闭式类型 307
    16.3.2  泛型类型和继承 308
    16.3.3  泛型类型同一性 310
    16.3.4  代码爆炸 311
    16.4  泛型接口 311
    16.5  泛型委托 312
    16.6  泛型方法 313
    16.7  泛型和其他成员 315
    16.8  可验证性和限制 315
    16.8.1  主要约束 317
    16.8.2  次要约束 318
    16.8.3  构造器约束 319
    16.8.4  其他可验证性问题 320
    第17章  自定义属性 323
    17.1  使用自定义属性 324
    17.2  定义自己的属性 327
    17.3  属性构造器和Field/Property
    数据类型 330
    17.4  检测自定义属性的使用 331
     
    17.5  两个属性实例的相互匹配 334
    17.6  检测自定义属性的使用,同时
    不创建Attribute派生对象 337
    17.7  条件属性类 339
    第18章  可空值类型 341
    18.1  C#对可空值类型的支持 342
    18.2  C#的空接合操作符 344
    18.3  CLR对可空值类型的特殊支持 344
    18.3.1  对可空值类型进行装箱 344
    18.3.2  对可空值类型进行拆箱 345
    18.3.3  通过可空值类型来
    调用GetType 346
    18.3.4  通过可空值类型
    调用接口方法 346
     

    第Ⅴ部分  CLR实用特性

     
    第19章  异常 349
    19.1  异常处理的演变 350
    19.2  异常处理机制 351
    19.2.1  try块 352
    19.2.2  catch块 352
    19.2.3  finally块 354
    19.3  符合公共语言规范(CLS)的异常与 
    不符合CLS的异常 354
    19.4  异常的准确定义 356
    19.5  System.Exception类 358
    19.6  FCL中预定义的异常类 359
    19.7  抛出异常 361
    19.8  定义自己的异常类 361
    19.9  如何正确地使用异常 364
    19.9.1  验证方法的参数 364
    19.9.2  合理使用finally块 367
    19.9.3  避免捕获所有的异常 368
    19.9.4  从异常中顺利恢复 369
    19.9.5  当异常无法修复时,
    回滚局部完成的操作 369
    19.9.6  隐藏实现细节,
    维持“约定” 370
    19.10  性能考虑 372
    19.11  未处理异常 374
    19.12  异常堆栈跟踪 376
    19.13  调试异常 378
    第20章  自动内存管理(垃圾收集) 380
    20.1  理解垃圾收集平台的
    基本工作原理 380
    20.2  垃圾收集算法 383
    20.3  垃圾收集与调试 387
    20.4  使用终结操作来释放本地资源 389
    20.4.1  确保终结操作使用
    CriticalFinalizerObject
    类型 390
    20.4.2  SafeHandle类型及其
    派生类型 391
    20.4.3  使用SafeHandle类型实现
    非托管代码之间的
    互操作 393
    20.5  对托管资源使用终结操作 395
    20.6  哪些事件会导致Finalize
    方法的调用 397
    20.7  终结操作内部揭秘 398
    20.8  释放模式:强制对象清理资源 401
    20.9  使用实现了释放模式的类型 404
    20.10  C#的using语句 407
    20.11  一个有趣的依赖问题 409
    20.12  人工监视和控制对象的生存期 410
    20.13  对象复苏 417
    20.14  对象的代 418
    20.15  使用本地资源的其他
     垃圾收集特性 423
    20.16  预测需求较多内存的操作
     能否成功 426
    20.17  编程控制垃圾收集器 427
    20.18  与垃圾收集器性能相关的
     其他一些话题 430
    20.18.1  免同步的多线程分配 431
    20.18.2  可扩展并行收集 431
    20.18.3  并发收集 431
    20.18.4  大尺寸对象 432
    20.19  监视垃圾收集 433
    第21章  CLR寄宿和应用程序域 435
    21.1  CLR寄宿 435
    21.2  应用程序域 438
    21.3  应用程序域的卸载 450
    21.4  宿主如何使用应用程序域 451
    21.4.1  控制台和Windows窗体
    应用程序 451
    21.4.2  Microsoft Internet 
    Explorer 452
    21.4.3  Microsoft ASP.NET Web
    窗体和XML Web服务
    应用程序 452
    21.4.4  Microsoft SQL Server 
    2005 453
    21.4.5  预测与展望 453
    21.5  高级宿主控制 453
    21.5.1  使用托管代码管理CLR 453
    21.5.2  编写健壮的宿主
    应用程序 454
    21.5.3  宿主如何恢复线程 455
    第22章  程序集的加载与反射 459
    22.1  程序集的加载 459
    22.2  使用反射构建动态可扩展
    应用程序 463
    22.3  反射的性能 463
    22.3.1  发现程序集中定义
    的类型 464
    22.3.2  类型对象的准确含义 465
    22.3.3  构建派生自Exception
    的类型的层次结构 467
    22.3.4  构建类型的实例 468
    22.4  设计支持插件的应用程序 470
    22.5  使用反射发现类型的成员 473
    22.5.1  发现类型成员 473
    22.5.2  BindingFlags:筛选返回
    成员的类型 477
    22.5.3  发现类型的接口 478
    22.5.4  调用类型的成员 480
    22.5.5  一次绑定、多次调用 483
    22.5.6  使用绑定句柄来
    减小工作集 487
    第23章  执行异步操作 490
    23.1  CLR如何使用Windows线程 490
    23.2  高效线程使用圣典 491
    23.3  CLR线程池简介 493
    23.4  限制线程池中线程的数量 494
    23.5  使用线程池执行受计算限制
    的异步操作 495
    23.6  使用专用线程执行受计算限制
    的异步操作 497
    23.7  定期执行受计算限制的异步操作 499
    三个定时器的史话 500
    23.8  异步编程模型简介 501
    23.9  使用APM执行受I/O限制
    的异步操作 502
    23.10  APM的三个聚集技巧 504
    23.10.1  APM的等待直至
    完成聚集技巧 504
    23.10.2  APM的轮询聚集技巧 506
    23.10.3  APM的方法回调聚
    集技巧 508
    23.11  使用APM执行受计算限制
     的异步操作 512
    23.12  APM与异常 514
    23.13  对APM的重要说明 514
    23.14  执行上下文 516
    第24章  线程同步 519
    24.1  内存一致性、易失内存访问
    与易失字段 520
    24.1.1  易失读取和写入 522
    24.1.2  C#对易失字段的支持 524
    24.2  互锁方法 526
    24.3  Monitor类与同步块 527
     
    24.3.1  “伟大想法” 527
    24.3.2  “伟大想法”的实现 528
    24.3.3  使用Monitor类管理
    同步块 529
    24.3.4  Microsoft最初计划
    的同步方式 530
    24.3.5  使用C#的lock语句
    简化代码 531
    24.3.6  Microsoft最初计划
    同步静态成员的方式 532
    24.3.7  为什么“伟大想法”
    思想毫无伟大之处 533
    24.3.8  著名的双检锁技巧 535
    24.4  ReaderWriterLock类 537
    24.5  使用托管代码中的Windows
    内核对象 538

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:Visual C# 2005文件IO与数据存取秘诀
    下一篇:最优化ASP.NET ——面向对象开发实践