《C#高级编程 (第四版)》PDF下载

  • 购买积分:29 如何计算积分?
  • 作  者:(美)CHRISTIAN NAGEL BILL EVJEN JAY GLYNN等著 李敏波翻译
  • 出 版 社:清华大学出版社
  • 出版年份:2006
  • ISBN:
  • 页数:1191 页
图书介绍:

1.1 C#与.NET的关系 3

1.2 公共语言运行库 3

第Ⅰ部分 C#语言 3

第1章 .NET体系结构 3

1.3 详细介绍中间语言 6

1.3.1 面向对象和接口的支持 7

1.3.3 强数据类型 8

1.3.2 相异值类型和引用类型 8

1.4 程序集 14

1.3.5 特性的使用 14

1.3.4 通过异常方法处理错误 14

1.4.1 私有程序集 15

1.5 .NET Framework类 16

1.4.3 反射 16

1.4.2 共享程序集 16

1.6 命名空间 17

1.7.1 创建ASP.NET应用程序 18

1.7 用C#创建.NET应用程序 18

1.8 C#在.NET企业体系结构中的作用 20

1.7.4 Windows服务 20

1.7.2 创建Windows窗体 20

1.7.3 Windows控件 20

1.9 小结 22

2.2 第一个C#程序 23

2.1 引言 23

第2章 C#基础 23

2.2.2 编译并运行程序 24

2.2.1 代码 24

2.2.3 详细介绍 25

2.3.1 变量的初始化 27

2.3 变量 27

35.3 把输出结果显示为HTML页面 1 28

2.3.2 变量的作用域 28

2.3.3 常量 31

2.4.1 值类型和引用类型 32

2.4 预定义数据类型 32

2.4.3 预定义的值类型 33

2.4.2 CTS类型 33

2.4.4 预定义的引用类型 36

2.5.1 条件语句 39

2.5 流控制 39

2.5.2 循环 43

2.5.3 跳转语句 46

2.6 枚举 47

2.7 数组 49

2.8 命名空间 50

2.8.1 using语句 51

2.8.2 命名空间的别名 52

2.9.1 多个Main()方法 53

2.9 Main()方法 53

2.9.2 给Main()方法传送参数 54

2.10 有关编译C#文件的更多内容 55

2.11 控制台I/O 56

2.12.1 源文件中的内部注释 58

2.12 使用注释 58

2.12.2 XML文档说明 59

2.13.1 #define和#undef 61

2.13 C#预处理器指令 61

2.13.2 #if,#elif,#else和#endif 62

2.13.4 #region和#endregion 63

2.13.3 #warning和#error 63

2.14.1 用于标识符的规则 64

2.13.5 #line 64

2.13.6 #pragma 64

2.14 C#编程规则 64

2.14.2 用法约定 65

2.15 小结 71

3.1 类和结构 72

第3章 对象和类型 72

3.2.1 数据成员 73

3.2 类成员 73

3.2.2 函数成员 74

3.2.3 只读字段 88

3.3 结构 89

3.3.1 结构是值类型 90

3.3.3 结构的构造函数 91

3.3.2 结构和继承 91

3.4 部分类 92

3.6.1 System.Object方法 94

3.5 静态类 94

3.6 Object类 94

3.6.2 ToString()方法 95

3.7 小结 97

4.1.1 实现继承和接口继承 98

第4章 继承 98

4.1 继承的类型 98

4.2 实现继承 99

4.1.2 多重继承 99

4.1.3 结构和类 99

4.2.1 虚方法 100

4.2.2 隐藏方法 101

4.2.3 调用函数的基类版本 102

4.2.5 密封类和密封方法 103

4.2.4 抽象类和抽象函数 103

4.2.6 派生类的构造函数 104

4.3.1 可见性修饰符 109

4.3 修饰符 109

4.3.2 其他修饰符 110

4.4 接口 111

4.4.1 定义和实现接口 112

4.4.2 派生的接口 116

4.5 小结 118

5.1 运算符 119

第5章 运算符和类型强制转换 119

5.1.1 运算符的简化操作 120

5.1.2 三元运算符 121

5.1.3 checked和unchecked运算符 122

5.1.6 sizeof运算符 123

5.1.4 is运算符 123

5.1.5 as运算符 123

5.1.9 空接合运算符 124

5.1.7 typeof运算符 124

5.1.8 可空类型和运算符 124

5.2 类型的安全性 125

5.1.10 运算符的优先级 125

5.2.1 类型转换 126

5.3 对象的相等比较 130

5.2.2 装箱和拆箱 130

5.3.1 引用类型的相等比较 131

5.4 运算符重载 132

5.3.2 值类型的相等比较 132

5.4.1 运算符的工作方式 133

5.4.2 运算符重载的示例:Vector结构 134

5.5 用户定义的数据类型转换 141

5.5.1 执行用户定义的类型转换 142

5.5.2 多重数据类型转换 149

5.6 小结 152

6.1 委托 153

第6章 委托和事件 153

6.1.1 在C#中声明委托 154

6.1.2 在C#中使用委托 155

6.2 匿名方法 158

6.2.1 简单的委托示例 159

6.2.2 BubbleSorter示例 161

6.2.3 多播委托 164

6.3 事件 166

6.3.1 从客户的角度讨论事件 167

6.3.2 生成事件 169

6.4 小结 173

7.1.1 值数据类型 174

第7章 内存管理和指针 174

7.1 后台内存管理 174

7.1.2 引用数据类型 176

7.1.3 垃圾收集 178

7.2.1 析构函数 179

7.2 释放未托管的资源 179

7.2.2 IDisposable接口 180

7.2.3 实现IDisposable接口和析构函数 182

7.3.1 指针 183

7.3 不安全的代码 183

7.3.2 指针示例PointerPlayaround 193

7.3.3 使用指针优化性能 197

7.4 小结 201

8.1 System.String类 202

第8章 字符串和正则表达式 202

8.1.1 创建字符串 203

8.1.2 StringBuilder成员 206

8.1.3 格式化字符串 207

8.2.1 正则表达式概述 213

8.2 正则表达式 213

8.2.2 RegularExpressionsPlayaround示例 214

8.2.3 显示结果 216

8.2.4 匹配、组合和捕获 218

8.3 小结 220

9.1 对象组 221

第9章 集合 221

9.1.1 集合 222

9.1.2 数组列表 225

9.1.3 Stack类 229

9.1.4 Queue类 231

9.1.5 SortedList类 232

9.1.6 字典和散列表 234

9.1.7 泛型 243

9.2 小结 244

10.1.1 性能 245

第10章 泛型 245

10.1 概述 245

10.1.2 类型安全 246

10.1.4 代码的扩展 247

10.1.3 二进制代码的重用 247

10.2.1 泛型集合概述 248

10.1.5 命名约定 248

10.2 泛型集合类 248

10.2.2 使用List〈T〉类 251

10.2.3 使用Queue〈T〉类 256

10.2.4 使用LinkedList〈T〉类 260

10.3 创建定制的泛型类 265

10.3.2 约束 267

10.3.1 默认值 267

10.4 泛型方法 270

10.5 泛型委托 272

10.6.1 结构Nullable〈T〉 274

10.6 Framework的其他泛型类型 274

10.6.3 ArraySegment〈T〉 276

10.6.2 EventHandler〈TEventArgs〉 276

10.7 小结 277

11.1 定制特性 278

第11章 反射 278

11.1.1 编写定制特性 279

11.1.2 定制特性示例:WhatsNewAttributes 282

11.2.1 System.Type类 286

11.2 反射 286

11.2.2 TypeView示例 288

11.2.3 Assembly类 291

11.2.4 完成WhatsNewAttributes示例 292

11.3 小结 296

12.1.1 异常类 297

第12章 错误和异常 297

12.1 错误和异常处理 297

12.1.2 捕获异常 299

12.1.3 用户定义的异常类 308

12.2 小结 316

13.1 线程 317

第13章 线程 317

13.2 多线程应用程序 318

13.3 线程的处理 319

13.3.1 ThreadPlayaround示例 322

13.3.2 线程的优先级 325

13.3.3 同步 326

13.4 使用ThreadPool创建线程 330

13.5 小结 334

14.1 使用Visual Studio 2005 337

第Ⅱ部分 .NET环境 337

第14章 Visual Studio 2005 337

14.1.1 创建项目 341

14.1.2 解决方案和项目 347

14.1.3 Windows应用程序代码 349

14.1.5 项目的浏览和编码 350

14.1.4 读取Visual Studio 6项目 350

14.1.6 生成项目 360

14.1.7 调试 363

14.2 修订功能 366

14.3 小结 368

15.1 程序集的含义 369

第15章 程序集 369

15.1.2 程序集的特性 370

15.1.1 DLL Hell的解决方案 370

15.1.3 应用程序域和程序集 371

15.2.1 程序集的清单 374

15.2 程序集的结构 374

15.2.4 查看程序集 375

15.2.2 命名空间、程序集和组件 375

15.2.3 私有程序集和共享程序集 375

15.2.5 构建程序集 376

15.3.1 CTS和CLS 380

15.3 跨语言支持 380

1 5.3.2 语言无关性 381

15.3.3 CLS要求 389

15.4.1 本机图像生成器 391

15.4 全局程序集缓存 391

15.4.2 全局程序集缓存查看器 392

15.5.1 共享程序集名 393

15.4.3 全局程序集缓存工具(gacutil. exe) 393

15.5 创建共享程序集 393

15.5.2 创建共享程序集 395

15.6.1 配置类别 400

15.6 配置 400

15.6.2 版本问题 401

15.6.3 配置目录 409

15.7 小结 411

16.1 代码访问的安全性 412

第16章 .NET的安全性 412

16.1.1 代码组 413

16.1.2 代码访问权限和权限集 419

16.1.3 策略的级别:Machine、User和Enterprise 423

16.2 对Framework中安全性的支持 425

16.2.1 要求权限 426

16.2.2 请求权限 427

16.2.3 隐式的权限 430

16.2.4 拒绝权限 431

16.2.5 断言权限 432

16.2.6 创建代码访问权限 433

16.2.7 声明的安全性 434

16.3.1 安全配置文件 435

16.3 安全策略的管理 435

16.3.3 安全性的启用和禁用 438

16.3.2 代码组和权限的管理 438

16.3.5 代码组的创建 439

16.3.4 重置安全策略 439

16.3.7 代码组权限的更改 440

16.3.6 代码组的删除 440

16.3.8 权限集的创建和应用 441

16.3.9 使用强名发布代码 443

16.3.10 使用证书发布代码 445

16.3.11 区域的管理 449

16.4.1 Principal 451

16.4 基于角色的安全性 451

16.4.2 Windows Principal 452

16.4.4 声明基于角色的安全性 454

16.4.3 角色 454

16.5 小结 455

17.1.1 Unicode问题 456

第17章 本地化 456

1 7.1 System.Globalization命名空间 456

17.1.2 文化和区域 457

17.1.3 使用文化 461

17.1.4 排序 466

17.2 资源 467

17.2.3 ResourceWriter 468

17.2.1 创建资源文件 468

17.2.2 资源文件生成器 468

17.2.4 使用资源文件 469

17.2.5 System.Resources命名空间 474

17.3 使用Visual Studio的本地化示例 475

17.3.1 编程修改文化 480

17.3.2 使用定制资源文件 481

17.3.4 外包翻译 482

17.3.3 资源的自动回退 482

17.4 用ASP.NET本地化 483

17.5.1 创建DatabaseResourceReader类 485

17.5 定制的资源读取器 485

17.5.3 创建DatabaseResourceManager类 487

17.5.2 创建DatabaseResourceSet类 487

17.5.4 DatabaseResourceReader的客户应用程序 488

17.7 小结 489

17.6 创建定制文化 489

18.2 部署选项 490

第18章 部署 490

18.1 部署的设计 490

18.3 部署的要求 491

18.2.1 Xcopy实用工具 491

18.2.2 Copy Web工具 491

18.2.3 发布Web站点 491

18.2.4 部署项目 491

18.2.5 ClickOnce 491

18.4 简单的部署 492

18.4.3 Copy Web工具 493

18.4.1 Xcopy部署 493

18.4.2 Xcopy和Web应用程序 493

18.5 Installer项目 494

18.4.4 发布Web站点 494

18.5.2 创建安装程序 495

18.5.1 Windows Installer 495

18.6.2 发布应用程序 504

18.6 ClickOnce 504

18.6.1 ClickOnce操作 504

18.6.4 应用程序缓存 505

18.6.3 ClickOnce设置 505

18.6.6 高级选项 506

18.6.5 安全性 506

18.7 小结 511

19.1 ADO.NET概述 515

第Ⅲ部分 数据 515

第19章 .NET数据访问 515

19.1.3 数据库特定的类 516

19.1.1 命名空间 516

19.1.2 共享类 516

19.2 使用数据库连接 517

19.2.1 管理连接字符串 518

19.2.2 高效地使用连接 520

19.2.3 事务处理 522

19.3 命令 524

19.3.1 执行命令 525

19.3.2 调用存储过程 528

19.4 快速数据访问:数据读取器 531

19.5 管理数据和关系:DataSet类 534

19.5.1 数据表 535

19.5.2 数据列 536

19.5.3 数据关系 541

19.5.4 数据约束 542

19.6 XML模式 544

19.7.1 用数据适配器来填充DataSet 552

19.7 填充数据集 552

19.8 保存对数据集的修改 553

19.7.2 从XML中给数据集填充数据 553

19.8.1 通过数据适配器进行更新 554

19.8.2 写入XML输出结果 556

19.9.1 分层开发 558

19.9 使用ADO.NET 558

19.9.2 生成SQL Server的键 559

19.9.3 命名约定 561

19.10 小结 562

20.1 .NET运行库的主机 564

第20章 .NET编程和SQL Server 2005 564

20.2 Microsoft.SqlServe r.Server 565

20.3.1 创建UDT 566

20.3 用户定义的类型 566

20.3.2 使用UDT 572

20.3.3 在客户端代码中使用UDT 573

20.4.1 创建用户定义的合计函数 574

20.4 用户定义的合计函数 574

20.4.2 使用用户定义的合计函数 575

20.5.1 创建存储过程 576

20.5 存储过程 576

20.5.2 使用存储过程 577

20.6.1 创建用户定义的函数 578

20.6 用户定义的函数 578

20.7 触发器 579

20.6.2 使用用户定义的函数 579

20.7.1 创建触发器 580

20.8 XML数据类型 581

20.7.2 使用触发器 581

20.8.1 包含XML数据的表 582

20.8.2 数据的查询 584

20.8.3 XML数据修改语言(XML DML) 585

20.8.4 XML索引 586

20.8.5 强类型化的XML 587

20.9 小结 588

21.1 .NET支持的XML标准 589

第21章 处理XML 589

21.2 System.Xml命名空间 590

21.3 在.NET中使用MSXML 591

21.5 读写流格式的XML 593

21.4 使用System.Xml类 593

21.5.1 使用XmlReader类 594

21.5.2 使用XmlReader类进行验证 597

21.5.3 使用XmlWriter类 599

21.6 在.NET中使用DOM 601

21.7.1 System.Xml.Xpath命名空间 607

21.7 使用XPathNavigator 607

21.7.2 System.Xml.Xsl命名空间 612

21.8.1 将ADO.NET数据转换为XML文档 617

21.8 XML和ADO.NET 617

21.8.2 把XML文档转换为ADO.NET数据 624

21.8.3 读写DiffGram 626

21.9 在XML中串行化对象 629

21.10 小结 639

22.1 Active Directory的体系结构 640

第22章 使用Active Directory 640

22.1.2 Active Directory的概念 641

22.1.1 特性 641

22.1.4 模式 645

22.1.3 Active Directory数据的特性 645

22.2.1 Active Directory Users and Computers工具 646

22.2 Active Directory的管理工具 646

22.2.2 ADSI Edit工具 647

22.3 Active Directory编程 648

22.3.1 System.DirectoryServices命名空间中的类 649

22.3.2 绑定 650

22.3.3 获取目录项 654

22.3.4 对象集合 655

22.3.5 缓存 656

22.3.6 创建新对象 657

22.3.8 访问内部的ADSI对象 658

22.3.7 更新目录项 658

22.3.9 在Active Directory中搜索 660

22.4.1 用户界面 663

22.4 搜索用户对象 663

22.4.2 获取模式命名环境 664

22.4.3 获取User类的属性名 665

22.4.4 搜索用户对象 666

22.5.1 命名空间System.DirectoryServices.Protocols中的类 668

22.5 DSML 668

22.5.2 用DSML搜索Active Directory对象 669

22.6 小结 671

23.1 创建Windows窗体应用程序 675

第Ⅳ部分 Windows应用程序 675

第23章 Windows窗体 675

23.2 Control类 681

23.2.1 大小和位置 682

23.2.3 用户交互操作 683

23.2.2 外观 683

23.2.4 Windows功能 684

23.3 标准控件和组件 685

23.2.5 杂项功能 685

23.3.2 CheckBox控件 686

23.3.1 Button控件 686

23.3.4 ComboBox控件、ListBox控件和CheckedListBox控件 687

23.3.3 RadioButton控件 687

23.3.6 ErrorProvider组件 690

23.3.5 DateTimePicker控件 690

23.3.7 HelpProvider组件 691

23.3.10 ListView控件 692

23.3.8 ImageList组件 692

23.3.9 Label控件 692

23.3.11 PictureBox控件 694

23.3.13 TextBox控件、RichTextBox控件与MaskedTextBox控件 695

23.3.12 ProgressBar控件 695

23.3.15 FlowLayoutPanel和TableLayoutPanel控件 696

23.3.14 Panel控件 696

23.3.16 SplitContainer控件 697

23.3.18 ToolStrip控件 698

23.3.17 TabControl控件和TabPages控件 698

23.3.21 ToolStripMenuItem控件 701

23.3.19 MenuStrip控件 701

23.3.20 ContextMenuStrip控件 701

23.4 窗体 702

23.3.22 ToolStripManager类 702

23.3.23 ToolStripContainer控件 702

23.4.1 Form类 703

23.4.3 定制控件 708

23.4.2 多文档界面 708

23.5 小结 721

24.1.1 显示列表数据 722

第24章 查看.NET数据 722

24.1 DataGridView控件 722

24.1.2 数据源 724

24.2 DataGridView类的层次结构 732

24.3.2 数据绑定对象 735

24.3 数据绑定 735

24.3.1 简单的绑定 735

24.4 Visual Studio.NET和数据访问 739

24.4.1 创建一个连接 740

24.4.2 选择数据 742

24.4.4 构建模式 743

24.4.3 更新数据源 743

24.4.5 其他常见的要求 749

24.5 小结 757

25.1.1 GDI和GDI+ 758

第25章 使用GDI+绘图 758

25.1 理解绘图规则 758

25.1.2 绘制图形 760

25.1.3 使用OnPaint()绘制图形 763

25.1.4 使用剪切区域 764

25.2.1 Point和PointF结构 766

25.2 测量坐标和区域 766

25.2.2 Size和SizeF结构 767

25.2.3 Rectangle和RectangleF结构 769

25.3 调试须知 770

25.2.4 Region 770

25.4 绘制可滚动的窗口 771

25.5 世界、页面和设备坐标 776

25.6.2 命名的颜色 777

25.6 颜色 777

25.6.1 红绿蓝(RGB)值 777

25.6.3 图形显示模式和安全的调色板 778

25.7.1 画笔 779

25.6.4 安全调色板 779

25.7 画笔和钢笔 779

25.7.2 钢笔 780

25.8 绘制图形和线条 781

25.9 显示图像 783

25.10 处理图像时所涉及到的问题 785

25.11 绘制文本 786

25.12 简单的文本示例 787

25.13 字体和字体系列 788

25.14 示例:枚举字体系列 790

25.15 编辑文本文档:CapsEditor示例 792

25.15.1 Invalidate()方法 796

25.15.2 计算项和文档的大小 797

25.15.3 OnPaint() 799

25.15.4 坐标转换 800

25.15.5 响应用户的输入 802

25.16 打印 805

25.17 小结 810

26.1 ASP.NET概述 813

第Ⅴ部分 Web应用程序 813

第26章 ASP.NET页面 813

26.2 ASP.NET Web窗体 814

26.2.2 ASP.NET服务器控件 818

26.2.1 ASP.NET代码模型 818

26.3.1 更新会议登记应用程序 833

26.3 ADO.NET和数据绑定 833

26.3.2 数据绑定的更多内容 840

26.4 应用程序配置 845

26.5 小结 847

27.1 定制控件 848

第27章 ASP.NET开发 848

27.1.1 用户控件 849

27.1.2 PCSDemoSite中的用户控件 855

27.1.3 定制控件 856

27.2 Master页面 860

27.3 站点导航 864

27.4.1 使用安全向导添加Forms身份验证功能 867

27.4 安全性 867

27.4.2 实现登录系统 870

27.4.3 Web登录服务器控件 871

27.4.5 PCSDemoSite中的安全性 872

27.4.4 保护目录 872

27.5 主题 874

27.5.1 把主题应用于页面 875

27.5.3 PCSDemoSite中的主题 876

27.5.2 定义主题 876

27.6 小结 879

28.1 SOAP 883

第Ⅵ部分 通信 883

第28章 Web服务 883

28.2 WSDL 885

28.3.1 创建Web服务 886

28.3 Web服务 886

28.3.2 使用Web服务 890

28.4.1 会议登记Web服务 892

28.4 扩充会议登记示例 892

28.4.2 会议登记客户程序 897

28.5 使用SOAP标题交换数据 901

28.6 小结 906

29.1 .NET Remoting的含义 908

第29章 .NET Remoting 908

29.1.2 CLR Object Remoting 909

29.1.1 应用程序类型和协议 909

29.2 .NET Remoting概述 910

29.3 环境 912

29.3.2 特性和属性 913

29.3.1 激活 913

29.4.1 远程对象 914

29.3.3 环境之间的通信 914

29.4 远程对象、客户机和服务器 914

29.4.2 简单的服务器 915

29.4.3 简单的客户机 916

29.5 .NET Remoting体系结构 917

29.5.1 信道 918

29.5.3 ChannelServices和RemotingConfiguration 922

29.5.2 格式标识符 922

29.5.4 对象的激活 924

29.5.5 消息接收器 927

29.5.6 在远程方法中传递对象 928

29.5.7 生存期管理 933

29.6.1 配置文件 936

29.6 .NET Remoting的其他特性 936

29.6.2 利用ASP.NET驻留远程服务器 946

29.6.3 类、接口和Soapsuds 948

29.6.4 异步远程调用 949

29.6.5 .NET Remoting的安全性 950

29.6.6 远程调用和事件 952

29.6.7 调用环境 958

29.7 小结 960

30.1.1 Enterprise Services简史 961

第30章 Enterprise Services 961

30.1 概述 961

30.1.2 使用Enterprise Services的场合 962

30.1.6 对象池 963

30.1.3 环境 963

30.1.4 自动的事务处理 963

30.1.5 分布式事务处理 963

30.1.10 没有组件的服务 964

30.1.7 基于角色的安全性 964

30.1.8 排队的组件 964

30.1.9 松散藕合的事件 964

30.2.3 程序集的属性 965

30.2 创建简单的COM+应用程序 965

30.2.1 类ServicedComponent 965

30.2.2 标记程序集 965

30.2.4 创建组件 966

30.3.1 自动部署 967

30.3 部署 967

30.3.3 创建安装软件包 968

30.3.2 手工部署 968

30.4 Component Services浏览器 969

30.6 事务处理 971

30.5 客户应用程序 971

30.6.2 事务处理的属性 972

30.6.1 ACID属性 972

30.7 示例应用程序 973

30.6.3 事务处理的结果 973

30.7.1 实体类 974

30.7.3 OrderData组件 978

30.7.2 OrderControl组件 978

30.7.4 OrderLineData组件 981

30.7.5 客户应用程序 983

30.8 没有组件的服务 984

30.9 小结 986

31.1 概述 988

第31章 消息队列 988

31.1.1 使用Message Queuing的场合 989

31.2 Message Queuing产品 990

31.1.2 Message Queuing特性 990

31.3.1 消息 991

31.3 Message Queuing结构 991

31.4.1 创建消息队列 992

31.3.2 消息队列 992

31.4 Message Queuing管理工具 992

31.4.2 消息队列属性 993

31.5.1 创建消息队列 994

31.5 Message Queuing的编程实现 994

31.5.2 查找队列 995

31.5.3 打开已知的队列 996

31.5.4 发送消息 997

31.5.5 接收消息 1000

31.6.1 课程订单类库 1002

31.6 课程订单应用程序 1002

31.6.2 课程订单消息发送程序 1005

31.6.3 发送优先级和可恢复的消息 1006

31.6.4 课程订单消息接收程序 1007

31.7 接收结果 1010

31.7.1 确认队列 1011

31.8 事务队列 1012

31.7.2 响应队列 1012

31.9 消息队列的安装 1013

31.10 小结 1014

32.1 现有技术的问题 1015

第32章 分布式编程的未来产品 1015

32.2 Web服务 1016

32.2.1 安全性 1017

32.2.2 可靠性 1018

32.2.3 事务处理 1020

32.2.4 性能 1021

32.3 WCF概述 1023

32.4.1 契约 1025

32.4 用WCF编程 1025

32.4.2 服务程序的实现 1027

32.4.3 绑定 1028

32.4.4 主机 1030

32.4.5 客户程序 1031

32.5 准备使用WCF 1032

32.5.1 .NET Remoting 1032

32.5.2 ASP.NET Web服务 1033

32.5.3 Enterprise Services 1033

32.5.4 Message Queuing 1034

32.6 小结 1035

第33章 COM的互操作性 1039

33.1 .NET和COM 1039

第Ⅶ部分 互操作性 1039

33.1.1 元数据 1040

33.1.2 释放内存 1040

33.1.3 接口 1040

33.1.4 方法绑定 1042

33.1.5 数据类型 1042

33.1.6 注册 1042

33.1.7 线程 1043

33.1.8 错误处理 1044

33.1.9 事件处理 1045

33.2 编组 1045

33.3 在.NET客户程序中使用COM组件 1046

33.3.1 创建COM组件 1046

33.3.2 创建Runtime Callable Wrapper 1050

33.3.4 添加连接点 1053

33.3.3 线程问题 1053

33.3.5 在Windows窗体中使用ActiveX控件 1055

33.3.6 在ASP.NET中使用COM对象 1058

33.4 在COM客户程序中使用.NET组件 1058

33.4.1 COM Callable Wrapper 1058

33.4.2 创建.NET组件 1059

33.4.3 创建类型库 1060

33.4.4 COM互操作特性 1062

33.4.5 COM注册 1065

33.4.6 创建COM客户程序 1066

33.4.7 添加连接点 1068

33.4.8 用sink对象创建客户程序 1069

33.4.9 在Internet Explorer中运行Windows窗体控件 1070

33.5 小结 1070

34.1 管理文件系统 1073

第Ⅷ部分 Windows基本服务 1073

第34章 文件和注册表操作 1073

34.1.1 表示文件和文件夹的.NET类 1074

34.1.2 Path类 1077

34.1.3 示例:文件浏览器 1077

34.2 移动、复制和删除文件 1082

34.2.1 FilePropertiesAndMovement示例 1082

34.2.2 示例FilePropertiesAndMovement的代码 1083

34.3 读写文件 1087

34.3.1 读取文件 1087

34.3.2 写入文件 1089

34.3.3 流 1090

34.3.5 读写二进制文件 1092

34.3.4 缓存的流 1092

34.3.6 读写文本文件 1097

34.4 读取驱动器信息 1103

34.5 文件的安全性 1105

34.5.1 从文件中读取ACL 1106

34.5.2 从目录中读取ACL 1107

34.5.3 添加和删除文件中的ACL项 1109

34.6 读写注册表 1110

34.6.1 注册表 1111

34.6.2 .NET注册表类 1112

34.6.3 SelfPlacingWindow示例 1115

34.7 小结 1121

第35章 访问Internet 1122

35.1 WebClient类 1122

35.1.1 下载文件 1123

35.1.2 基本的Web客户示例 1123

35.1.3 上传文件 1124

35.2 WebRequest类和WebResponse类 1125

35.3.1 在应用程序中进行简单的Web浏览 1128

35.3.2 启动Internet Explorer实例 1130

35.3.3 给应用程序提供更多的IE类型特性 1131

35.3.4 使用WebBrowser控件显示文档 1137

35.3.5 使用WebBrowser控件打印 1138

35.3.6 显示请求页面的代码 1138

35.4 实用工具类 1140

35.4.1 URI 1140

35.3.7 WebRequest和WebResponse的层次结构 1140

35.4.2 IP地址和DNS名称 1141

35.5 较低层的协议 1144

35.6 小结 1150

第36章 Windows服务 1151

36.1 Windows服务 1151

36.2 Windows服务的体系结构 1152

36.2.1 服务程序 1152

36.2.2 服务控制程序 1153

36.2.3 服务配置程序 1154

36.3 System.ServiceProcess命名空间 1154

36.4 创建Windows服务 1154

36.4.1 使用套接字的类库 1155

36.4.2 TcpClient示例 1159

36.4.3 Windows服务项目 1160

36.4.5 服务的安装 1166

36.4.6 安装程序 1166

36.4.4 线程和服务 1166

36.5 服务的监视和控制 1171

36.5.1 MMC计算机管理 1171

36.5.2 net.exe 1172

36.5.3 sc.exe 1173

36.5.4 Visual Studio Server Explorer 1173

36.5.5 ServiceController类 1174

36.6 故障排除 1179

36.6.1 交互式服务 1180

36.6.2 事件日志 1181

36.6.3 性能监视 1186

36.7 电源事件 1190

36.8 小结 1191