图书介绍
C#揭秘PDF|Epub|txt|kindle电子书版本网盘下载
![C#揭秘](https://www.shukui.net/cover/70/33264350.jpg)
- (美)JOEMAYO编著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115222213
- 出版时间:2010
- 标注页数:696页
- 文件大小:77MB
- 文件页数:718页
- 主题词:C语言-程序设计
PDF下载
下载说明
C#揭秘PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 C#基础2
第1章 .NET平台简介2
1.1 .NET是什么2
1.2 CLR3
1.2.1 为什么CLR如此重要3
1.2.2 CLR特性4
1.2.3 CLR执行过程4
1.3 .NET FCL6
1.4 C#和其他.NET语言7
1.5 CTS7
1.6 CLS7
1.7 小结8
第2章 C#和Visual Studio 2008概述9
2.1 编写一个简单的C#程序9
2.2 创建一个VS2008项目12
2.2.1 运行新项目向导12
2.2.2 理解解决方案和项目14
2.2.3 使用VS2008编写代码15
2.2.4 生成和运行程序16
2.2.5 设置编译器选项18
2.3 注释代码19
2.3.1 多行注释19
2.3.2 单行注释19
2.3.3 XML文档注释19
2.4 标识符和关键字21
2.4.1 标识符21
2.4.2 关键字22
2.5 约定和风格22
2.6 变量和类型23
2.6.1 变量23
2.6.2 简单类型24
2.7 明确赋值27
2.8 与程序交互28
2.8.1 与控制台屏幕通信28
2.8.2 与命令行通信28
2.8.3 VS2008中的命令行选项28
2.8.4 从程序返回值30
2.9 小结30
第3章 编写C#表达式和语句31
3.1 C#运算符31
3.1.1 一元运算符31
3.1.2 二元运算符33
3.1.3 关系运算符34
3.1.4 逻辑运算符36
3.1.5 赋值运算符38
3.1.6 三元运算符38
3.1.7 其他运算符39
3.2 语句40
3.3 块和作用域40
3.4 标签41
3.5 运算符优先级和结合性41
3.6 选择和循环语句42
3.6.1 if语句42
3.6.2 switch语句44
3.6.3 C#循环45
3.6.4 goto语句48
3.6.5 break语句49
3.6.6 continue语句50
3.6.7 return语句50
3.7 小结51
第4章 理解引用类型和值类型52
4.1 引用类型和值类型简介52
4.2 统一类型系统53
4.2.1 统一类型系统的工作原理53
4.2.2 使用object进行通用编程54
4.2.3 装箱和拆箱对性能的潜在影响54
4.3 引用类型和值类型的内存分配56
4.3.1 引用类型内存分配57
4.3.2 值类型内存分配58
4.4 引用类型和值类型赋值58
4.4.1 引用类型赋值58
4.4.2 值类型赋值61
4.5 引用类型和值类型之间的更多区别62
4.5.1 引用类型和值类型继承的区别62
4.5.2 引用类型和值类型构建和终结的区别62
4.5.3 引用类型和值类型对象大小的考虑63
4.6 C#和.NET框架类型63
4.6.1 C#别名和CTS63
4.6.2 使用System.Guid64
4.6.3 操作System.DateTime65
4.7 可空类型69
4.8 小结70
第5章 操作字符串71
5.1 C#字符串类型71
5.1.1 格式化字符串72
5.1.2 比较字符串74
5.1.3 检查字符串是否相等75
5.1.4 连接字符串75
5.1.5 复制字符串76
5.1.6 检查字符串内容77
5.1.7 提取字符串信息77
5.1.8 填充和移除字符串输出78
5.1.9 更改字符串内容79
5.1.10 分离和结合字符串80
5.1.11 操作字符串字符81
5.1.12 通过驻留池影响CLR的字符串处理82
5.2 StringBuilder类83
5.2.1 Append方法83
5.2.2 AppendFormat方法83
5.2.3 EnsureCapacity方法84
5.2.4 ToString()方法84
5.3 正则表达式84
5.3.1 基本的正则表达式操作85
5.3.2 深入了解正则表达式85
5.3.3 练习正则表达式的应用程序86
5.4 小结88
第6章 数组和枚举89
6.1 数组89
6.1.1 一维数组90
6.1.2 多维数组91
6.1.3 交错数组92
6.2 System.Array类93
6.2.1 数组边界93
6.2.2 搜索和排序94
6.3 使用枚举类型95
6.4 System.Enum结构97
6.4.1 枚举类型、整型和字符串之间的转换97
6.4.2 迭代枚举类型成员98
6.4.3 其他System.Enum成员98
6.5 小结99
第7章 用Visual Studio 2008调试应用程序100
7.1 单步调试代码100
7.1.1 调试示例程序100
7.1.2 设置断点100
7.1.3 检查程序状态101
7.1.4 单步调试代码103
7.1.5 其他必备的调试命令104
7.1.6 使用调试器找出程序错误104
7.1.7 附加到进程107
7.2 小结109
第二部分 使用C#面向对象编程第8章 设计对象112
8.1 对象成员112
8.2 实例和静态成员113
8.3 字段113
8.3.1 常量字段114
8.3.2 readonly字段114
8.4 方法114
8.5 属性115
8.5.1 声明属性115
8.5.2 使用属性115
8.5.3 自动实现属性116
8.5.4 VS2008属性代码段116
8.6 索引器116
8.7 回顾一下哪里适合使用分部类型117
8.8 静态类118
8.9 System.Object类118
8.9.1 检查对象类型118
8.9.2 比较引用119
8.9.3 检查相等性119
8.9.4 获得散列值119
8.9.5 克隆对象120
8.9.6 将对象作为字符串使用120
8.10 小结121
第9章 设计面向对象程序122
9.1 继承122
9.1.1 基类123
9.1.2 调用基类成员123
9.1.3 隐藏基类成员124
9.1.4 版本控制124
9.1.5 密封类126
9.2 封装对象内部信息127
9.2.1 数据隐藏127
9.2.2 使用修饰符支持封装127
9.2.3 用于对象的访问修饰符130
9.2.4 包含和继承130
9.3 多态131
9.3.1 仔细查看多态解决的问题131
9.3.2 使用多态来解决问题133
9.3.3 属性多态135
9.3.4 索引器多态135
9.3.5 覆写System.Object类成员136
9.4 小结138
第10章 编写方法和自定义操作符139
10.1 方法139
10.1.1 定义方法139
10.1.2 本地变量140
10.1.3 方法参数141
10.2 重载方法146
10.3 操作符重载147
10.3.1 用于自定义类型的算数操作符重载147
10.3.2 自定义类型上的逻辑操作符重载149
10.3.3 其他操作符重载技巧150
10.4 转换和转换操作符重载151
10.4.1 隐式转换与显式转换151
10.4.2 自定义值类型转换操作符154
10.4.3 自定义引用类型转换操作符156
10.5 部分方法157
10.6 扩展方法158
10.7 小结159
第11章 错误处理和异常处理161
11.1 为什么需要异常处理161
11.2 异常处理的语法:try/catch块的基础162
11.3 使用finally块确保资源清理163
11.4 处理异常164
11.4.1 处理不同的异常类型164
11.4.2 处理并传递异常165
11.4.3 从异常中恢复167
11.5 自定义异常169
11.6 checked和unchecked语句171
11.7 小结173
第12章 使用委托和事件进行基于事件的编程174
12.1 揭示委托174
12.1.1 定义委托175
12.1.2 创建委托的方法处理器175
12.1.3 在委托上附加处理器175
12.1.4 通过委托调用方法176
12.1.5 使用委托实现多播176
12.1.6 检查委托的相等性178
12.2 实现委托推断178
12.3 匿名方法179
12.4 事件180
12.4.1 定义事件处理程序180
12.4.2 注册事件181
12.4.3 实现事件182
12.4.4 触发事件184
12.4.5 修改事件的add/remove方法186
12.5 小结190
第13章 使用命名空间命名和组织类型191
13.1 为什么需要命名空间191
13.1.1 组织代码192
13.1.2 避免命名冲突192
13.2 命名空间指令192
13.2.1 using指令192
13.2.2 别名指令193
13.3 创建命名空间194
13.4 命名空间成员197
13.5 作用域与可见性197
13.6 命名空间别名修饰符198
13.7 外部命名空间别名199
13.8 小结200
第14章 抽象类和接口201
14.1 抽象类201
14.2 抽象类与接口的不同203
14.3 实现接口203
14.4 定义接口类型204
14.4.1 方法204
14.4.2 属性204
14.4.3 索引205
14.4.4 事件205
14.5 隐式实现接口205
14.5.1 单个类的接口实现205
14.5.2 模拟多态行为208
14.6 显式实现接口213
14.7 接口映射217
14.8 接口继承219
14.9 小结221
第三部分 应用C#高级语言特性第15章 管理对象生命周期224
15.1 对象初始化224
15.1.1 实例构造函数224
15.1.2 构造函数的重载226
15.1.3 默认构造函数227
15.1.4 私有构造函数227
15.1.5 继承和实例化的顺序228
15.1.6 静态构造函数228
15.2 对象初始化器229
15.3 对象终结器229
15.4 自动内存管理230
15.4.1 内存分配230
15.4.2 垃圾收集器揭秘231
15.4.3 GC优化231
15.5 正确的资源清理方式232
15.5.1 终结器带来的问题233
15.5.2 Dispose模式233
15.5.3 using语句234
15.6 和垃圾收集器交互235
15.7 小结237
第16章 特性与反射238
16.1 特性238
16.1.1 使用特性239
16.1.2 使用多个特性239
16.2 特性参数240
16.2.1 定位参数240
16.2.2 命名参数241
16.3 特性目标241
16.4 创建自定义特性242
16.5 反射245
16.6 在特性上反射251
16.6.1 动态创建代码251
16.6.2 使用Reflection.Emit构建253
16.7 小结256
第17章 泛型与迭代器257
17.1 非泛型集合257
17.2 理解泛型的优点258
17.2.1 泛型解决的问题258
17.2.2 泛型是面向对象的260
17.2.3 在数组、非泛型集合和泛型集合之间选择261
17.3 构建泛型类型262
17.3.1 使用泛型实现单链表262
17.3.2 超越集合应用泛型268
17.3.3 使用泛型定义类型270
17.4 实现迭代器273
17.4.1 GetEnumerator迭代器273
17.4.2 方法迭代器274
17.4.3 属性迭代器275
17.4.4 索引迭代器276
17.4.5 运算符迭代器276
17.4.6 迭代器作为一个值的序列277
17.4.7 销毁迭代器278
17.5 小结279
第18章 lambda表达式和表达式树280
18.1 lambda表达式280
18.1.1 lambda的语法280
18.1.2 使用lambda281
18.1.3 委托和lambda282
18.2 表达式树285
18.2.1 将lambda转换为表达式树285
18.2.2 将表达式树转换为lambda286
18.3 小结286
第四部分 学习LINQ和.NET数据访问第19章 使用LINQ访问数据288
19.1 LINQ to Objects289
19.1.1 LINQ基本语法289
19.1.2 提取投影290
19.1.3 筛选数据290
19.1.4 给查询结果排序290
19.1.5 分组数据291
19.1.6 联结数据291
19.1.7 使用分组连接构建层次结构291
19.2 使用LINQ to SQL查询关系数据292
19.2.1 定义DataContext对象292
19.2.2 通过DataContext查询295
19.2.3 修改DataContext对象295
19.2.4 调用存储过程296
19.2.5 使用SQL函数297
19.2.6 使用存储过程修改数据库297
19.2.7 使用分部方法扩展数据处理逻辑299
19.3 标准查询运算符301
19.3.1 排序运算符301
19.3.2 集合运算符302
19.3.3 过滤操作符303
19.3.4 量词操作符304
19.3.5 投影操作符304
19.3.6 分割操作符305
19.3.7 联结操作符305
19.3.8 分组操作符306
19.3.9 产生操作符307
19.3.10 相等操作符307
19.3.11 元素操作符308
19.3.12 转换操作符308
19.3.13 连接操作符309
19.3.14 聚集操作符309
19.4 小结310
第20章 使用ADO.NET管理数据311
20.1 ADO.NET的架构311
20.1.1 ADO.NET组件311
20.1.2 连接和无连接模式312
20.1.3 数据提供者313
20.2 建立连接314
20.3 查看数据315
20.4 操作数据317
20.4.1 插入数据317
20.4.2 更新数据318
20.4.3 删除数据318
20.5 调用存储过程319
20.6 使用无连接数据319
20.6.1 读取数据到DataSet319
20.6.2 将对DataSet的修改保存到数据库320
20.7 LINQ to DataSet323
20.7.1 使用DataTable作为数据源323
20.7.2 强类型字段的访问323
20.8 小结324
第21章 操作XML数据325
21.1 XML数据流325
21.2 写XML326
21.3 读取XML327
21.4 使用XML DOM328
21.4.1 使用XPathDocument读取XML328
21.4.2 使用XmlDocument操作XML329
21.5 使用LINQ to XML更容易地操作XML329
21.5.1 LINQ to XML中的对象330
21.5.2 创建XML文档330
21.5.3 使用LINQ to XML操作命名空间331
21.5.4 读取XML文档331
21.5.5 查询XML文档332
21.5.6 修改XML文档332
21.6 小结333
第22章 使用ADO.NET实体框架创建数据抽象334
22.1 实体概览334
22.2 使用VS2008创建实体数据模型335
22.3 使用实体SQL查询实体337
22.3.1 访问实体337
22.3.2 查询实体337
22.4 创建自定义实体338
22.4.1 映射和架构339
22.4.2 向模型中添加自定义实体339
22.5 LINQ to Entities342
22.5.1 查询实体342
22.5.2 修改实体数据342
22.6 小结344
第23章 ADO.NET数据服务在云计算数据中的应用345
23.1 在项目中添加ADO.NET数据服务345
23.2 通过HTTP URL访问ADO.NET数据服务346
23.2.1 查看实体集合346
23.2.2 选择实体346
23.2.3 筛选实体结果348
23.2.4 给实体排序349
23.2.5 跨越实体之间的关联350
23.3 使用数据服务客户端库编写代码351
23.3.1 创建客户端项目351
23.3.2 使用WebDataQuery查询实体351
23.3.3 添加实体352
23.3.4 更新实体352
23.3.5 删除实体353
23.3.6 使用LINQ to Data Services查询实体353
23.3.7 使用WebDataGen.exe生成类354
23.4 小结354
第五部分 创建桌面用户界面第24章 挖掘控制台应用程序极限358
24.1 PasswordGenerator控制台应用程序介绍358
24.2 与用户交互359
24.3 处理命令行输入360
24.4 设置控制台的颜色和位置360
24.5 小结362
第25章 编写Windows Forms应用程序363
25.1 Windows Forms基础363
25.2 VS2008对Windows Forms的支持366
25.2.1 可视化设计环境366
25.2.2 Windows Forms应用程序中的文件366
25.2.3 可视化设计器如何工作367
25.3 使用Windows Forms控件372
25.4 MenuStrip、StatusStrip和ToolStrip控件373
25.5 数据网格和数据绑定375
25.5.1 建立数据绑定项目375
25.5.2 绑定数据到ListBox控件375
25.5.3 绑定数据到DataGridView控件376
25.6 GDI+要素377
25.6.1 Brush、Pen和Graphics对象377
25.6.2 字体和绘制文本378
25.7 附加窗体和对话框379
25.7.1 模式和无模式对话框379
25.7.2 窗体通信380
25.7.3 通用对话框381
25.8 小结383
第26章 创建WPF应用程序384
26.1 XAML就够了384
26.1.1 介绍WPF应用程序385
26.1.2 研究XAML385
26.1.3 XAML中的控件386
26.2 管理布局387
26.2.1 控件对齐方式、尺寸和方框模型387
26.2.2 Canvas布局388
26.2.3 WrapPanel布局389
26.2.4 StackPanel布局389
26.2.5 UniformGrid布局389
26.2.6 Grid布局390
26.2.7 DockPanel布局392
26.3 WPF控件392
26.3.1 Border393
26.3.2 Button393
26.3.3 CheckBox控件393
26.3.4 ComboBox控件393
26.3.5 ContentControl控件393
26.3.6 DockPanel控件394
26.3.7 DocumentViewer控件394
26.3.8 Ellipse控件394
26.3.9 Expander控件395
26.3.10 Frame控件395
26.3.11 Grid控件395
26.3.12 GridSplitter控件395
26.3.13 GroupBox控件396
26.3.14 Image控件396
26.3.15 Label控件396
26.3.16 ListBox控件396
26.3.17 ListView控件396
26.3.18 MediaElement控件396
26.3.19 Menu控件397
26.3.20 PasswordBox控件397
26.3.21 ProgressBar控件397
26.3.22 RadioButton控件397
26.3.23 Rectangle控件398
26.3.24 RichTextBox控件398
26.3.25 ScrollBar控件398
26.3.26 ScrollViewer控件398
26.3.27 Separator控件399
26.3.28 Slider控件399
26.3.29 StackPanel控件399
26.3.30 StatusBar控件399
26.3.31 Tab控件399
26.3.32 TextBlock控件400
26.3.33 TextBox控件400
26.3.34 ToolBar控件400
26.3.35 ToolBarPanel控件400
26.3.36 ToolBarTray控件400
26.3.37 TreeView控件401
26.3.38 UniformGrid控件401
26.3.39 ViewBox控件401
26.3.40 WindowsFormsHost控件401
26.3.41 WrapPanel控件402
26.4 事件处理402
26.5 数据绑定403
26.5.1 数据绑定概述403
26.5.2 显示数据列表403
26.6 使用样式406
26.7 小结407
第六部分 设计Web用户界面第27章 使用ASP.NET创建Web应用程序410
27.1 Web应用程序模型410
27.1.1 ASP.NET页面请求概述410
27.1.2 C#代码驻留之地411
27.1.3 可伸缩性和状态管理从何而来411
27.1.4 如何理解直观性能412
27.1.5 我为何使用ASP.NET412
27.2 使用VS2008创建ASP.NET项目412
27.3 ASP.NET页入门413
27.3.1 Web窗体的构成413
27.3.2 代码隐藏与页面生命周期415
27.4 控件417
27.4.1 服务器控件417
27.4.2 HTML控件418
27.5 状态管理419
27.5.1 Application全局状态419
27.5.2 在缓存中保存可更新信息419
27.5.3 保存单一请求状态420
27.5.4 发布Cookie420
27.5.5 特定用户信息与Session状态421
27.5.6 理解ViewState中的页面状态421
27.5.7 页面重用与母版页和自定义控件421
27.6 导航424
27.6.1 用web.sitemap定义站点布局425
27.6.2 Menu控件导航425
27.6.3 实现TreeView426
27.6.4 使用SiteMapPath添加面包屑导航428
27.7 网站主题428
27.7.1 设置主题428
27.7.2 创建皮肤428
27.7.3 创建样式表430
27.8 网站安全430
27.9 数据绑定431
27.9.1 设置业务对象431
27.9.2 简单数据绑定432
27.9.3 ObjectDataSource与数据绑定432
27.10 小结434
第28章 用ASP.NET AJAX加强Web应用程序的交互性435
28.1 何为AJAX435
28.2 设置ASP.NET AJAX站点436
28.3 AJAX页面生命周期437
28.4 加载自定义脚本库438
28.5 ASP.NET AJAX控件439
28.5.1 UpdatePanel控件439
28.5.2 UpdateProgress控件440
28.5.3 Timer控件441
28.6 通过JavaScript访问控件441
28.6.1 使用JavaScript简化控件ID访问442
28.6.2 访问已损坏的ASP.NET控件ID443
28.7 通过ASP.NET AJAX调用Web服务446
28.7.1 使用Web服务和AJAX的原因与取舍446
28.7.2 使用AJAX和Web服务447
28.8 小结449
第29章 用Silverlight精心制作丰富的Web应用程序451
29.1 什么让Silverlight运作451
29.1.1 WPF与XAML从何而来451
29.1.2 Silverlight如何与ASP.NET、JavaScript和AJAX关联452
29.2 在VS2008中启动Silverlight项目452
29.2.1 创建Silverlight项目452
29.2.2 理解Silverlight项目的各个部分453
29.3 用C#处理Silverlight事件455
29.3.1 给Silverlight控件事件添加C#处理程序456
29.3.2 在Silverlight中处理数据456
29.4 媒体播放458
29.4.1 给WebForm添加MediaPlayer459
29.4.2 用C#操作MediaElement459
29.5 动画UI组件461
29.6 小结462
第七部分 使用.NET技术通信第30章 使用.NET网络通信技术464
30.1 实现套接字464
30.1.1 套接字服务器464
30.1.2 套接字客户端467
30.2 与HTTP协作470
30.3 执行FTP文件传输471
30.3.1 将文件上载到FTP服务器472
30.3.2 从FTP服务器获取文件473
30.4 发送SMTP邮件475
30.4.1 快速发送邮件的方法475
30.4.2 发送带有附件的邮件475
30.5 小结476
第31章 创建Windows服务应用程序477
31.1 在VS2008中创建Windows服务项目477
31.1.1 运行Windows服务向导477
31.1.2 检查Windows服务项目中的文件477
31.2 编写Windows服务480
31.2.1 可用的Windows服务方法覆写480
31.2.2 实现Windows服务方法覆写481
31.2.3 配置Windows服务483
31.3 安装Windows服务483
31.3.1 配置ServiceProcess-Installer484
31.3.2 配置ServiceInstaller484
31.3.3 部署Windows服务485
31.4 创建一个控制器与Windows服务进行通信485
31.5 小结487
第32章 Remoting488
32.1 基本的Remoting488
32.1.1 Remoting服务器489
32.1.2 Remoting客户端491
32.1.3 Remoting安装492
32.2 通道496
32.3 生存期管理498
32.4 小结500
第33章 编写传统ASMX Web服务501
33.1 Web服务基础501
33.1.1 Web服务技术501
33.1.2 一个基本的Web服务502
33.1.3 查看Web服务信息503
33.2 使用Web服务506
33.3 小结509
第34章 使用WCF创建Web服务510
34.1 在VS2008中创建WCF应用程序510
34.2 创建Web服务契约511
34.2.1 创建WCF Web服务接口512
34.2.2 声明ServiceContract特性513
34.2.3 声明OperationContract特性514
34.2.4 构建数据契约514
34.3 实现Web服务逻辑515
34.4 配置Web服务517
34.4.1 service元素518
34.4.2 endpoint元素518
34.4.3 behavior元素518
34.5 使用Web服务519
34.6 创建服务引用519
34.7 编写客户端代码调用Web服务520
34.8 小结521
第八部分 .NET应用程序架构设计示例第35章 使用Visual Studio 2008类设计器524
35.1 可视化代码524
35.1.1 开始查看对象524
35.1.2 查看关联、继承和接口527
35.2 使用类设计器创建对象模型528
35.3 小结532
第36章 C#中的设计模式样例534
36.1 设计模式概览534
36.2 迭代器模式534
36.2.1 实现IEnumerable535
36.2.2 实现IEnumerator536
36.2.3 在客户代码中使用迭代器539
36.2.4 foreach循环中的奇特行为540
36.2.5 使用C#迭代器简化迭代器模式543
36.3 实现代理模式543
36.3.1 一个代理模式的例子544
36.3.2 使用代理对象546
36.4 实现模板模式547
36.4.1 在.NET框架中模板模式是如何使用的547
36.4.2 实现模板模式的一个例子547
36.5 小结551
第37章 创建N级/层系统552
37.1 潜在的拖放问题552
37.1.1 5分钟创建RAD应用程序552
37.1.2 危害只是一丁点的生产力吗553
37.2 N级/N层介绍554
37.2.1 早期的应用程序架构554
37.2.2 N层架构554
37.2.3 N级架构555
37.2.4 架构不应该过于理论556
37.3 N层架构的示例556
37.3.1 N层/一个程序集架构556
37.3.2 N层/多个程序集架构562
37.4 小结564
第38章 使用WF自动化逻辑565
38.1 开启工作流项目565
38.2 创建顺序工作流565
38.2.1 创建工作流566
38.2.2 执行工作流569
38.3 创建状态工作流569
38.3.1 医院预约工作流概览569
38.3.2 创建状态工作流570
38.3.3 从主机向工作流通信:实现ExternalDataExchange-Service571
38.3.4 处理状态工作流中的事件575
38.4 小结578
第九部分 体验更多的.NET框架类库第39章 进程和线程管理580
39.1 .NET进程支持580
39.1.1 启动新进程581
39.1.2 使用已有进程583
39.2 多线程概述584
39.2.1 创建新线程584
39.2.2 用更简洁的方式来运行线程中的代码585
39.2.3 向线程传递参数585
39.2.4 使用线程池585
39.3 线程同步586
39.3.1 C# lock语句586
39.3.2 深入lock:Monitor类587
39.3.3 平衡读取器线程和编写器线程间的访问588
39.4 小结589
第40章 本地化和国际化590
40.1 资源文件590
40.1.1 创建资源文件590
40.1.2 编写资源文件592
40.1.3 读取资源文件593
40.1.4 转换资源文件594
40.1.5 创建图形资源595
40.2 多区域设置599
40.2.1 实现多区域设置599
40.2.2 查找资源603
40.3 小结604
第41章 互操作(P/Invoke和COM)与不安全代码605
41.1 不安全代码605
41.1.1 不安全代码是什么意思606
41.1.2 指针的用途606
41.1.3 sizeof()运算符609
41.1.4 栈分配运算符609
41.1.5 fixed语句611
41.2 平台调用613
41.3 .NET与COM通信614
41.3.1 早绑定COM组件调用614
41.3.2 晚绑定COM组件调用616
41.4 将.NET组件作为COM组件616
41.5 .NET对COM+服务的支持618
41.5.1 事务619
41.5.2 JIT激活620
41.5.3 对象池621
41.5.4 其他服务621
41.6 小结622
第42章 使用System.Diagnostics中的类型诊断应用623
42.1 简单调试624
42.2 条件调试625
42.3 运行时跟踪627
42.4 使用断言628
42.5 访问内置的性能计数器629
42.6 实现计时器635
42.7 构建自定义性能计数器636
42.8 使用采样分析性能645
42.9 小结653
第十部分 部署代码656
第43章 程序集和版本控制656
43.1 程序集内部构成656
43.1.1 清单657
43.1.2 特性657
43.2 程序集功能659
43.2.1 标识659
43.2.2 范围659
43.2.3 版本控制659
43.2.4 安全性660
43.3 配置660
43.3.1 启动配置661
43.3.2 运行时配置661
43.4 部署663
43.5 小结663
第44章 代码安全664
44.1 基于代码的安全664
44.1.1 证据664
44.1.2 权限665
44.1.3 代码组665
44.1.4 安全策略级别666
44.1.5 权限请求667
44.1.6 实现安全策略669
44.2 基于角色的安全671
44.3 安全实用工具672
44.4 小结673
第45章 创建Visual Studio 2008安装项目674
45.1 运行VS2008安装项目向导程序674
45.2 更多的安装配置676
45.2.1 文件系统配置677
45.2.2 创建注册表设置677
45.2.3 文件类型678
45.2.4 用户界面678
45.2.5 启动条件679
45.2.6 自定义操作679
45.3 小结680
第46章 部署桌面应用程序681
46.1 通过ClickOnce部署681
46.2 配置ClickOnce683
46.3 小结684
第47章 发布Web应用程序685
47.1 剖析Web应用程序685
47.2 Web服务器安装685
47.3 虚拟目录安装686
47.4 Web服务器部署687
47.5 从VS2008中发布Web应用程序688
47.6 小结689
第十一部分 附录692
附录A 编译程序692
附录B 获取.NET框架帮助694