《C# 2005&.NET 3.0高级编程 第5版 下》PDF下载

  • 购买积分:37 如何计算积分?
  • 作  者:(美)CHRISTIAN NAGEL BILL EVJEN JAY GLYNN等著;李铭翻译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2007
  • ISBN:9787302164517
  • 页数:1573 页
图书介绍:本书介绍介绍C#2005 & .NET 3.0编程方法。

上卷 3

第Ⅰ部分 C#语言 3

第1章 .NET体系结构 3

1.1 C#与.NET的关系 3

1.2 公共语言运行库 4

1.3 中间语言 7

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

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

1.3.3 强数据类型 8

1.3.4 通过异常处理错误 14

1.3.5 特性的使用 15

1.4 程序集 15

1.4.1 私有程序集 16

1.4.2 共享程序集 16

1.4.3 反射 17

1.5 .NET Framework类 17

1.6 命名空间 18

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

1.7.1 创建ASP.NET应用程序 19

1.7.2 创建Windows窗体 21

1.7.3 使用Windows Presentation Foundation(WPF) 21

1.7.4 Windows控件 21

1.7.5 Windows服务 21

1.7.6 Windows Communication Foundation(WCF) 22

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

1.9 小结 23

第2章 C#基础 25

2.1 引言 25

2.2 第一个C#程序 26

2.2.1 代码 26

2.2.2 编译并运行程序 26

2.2.3 详细介绍 27

2.3 变量 29

2.3.1 变量的初始化 30

2.3.2 变量的作用域 31

2.3.3 常量 33

2.4 预定义数据类型 34

2.4.1 值类型和引用类型 34

2.4.2 CTS类型 35

2.4.3 预定义的值类型 36

2.4.4 预定义的引用类型 39

2.5 流控制 41

2.5.1 条件语句 41

2.5.2 循环 45

2.5.3 跳转语句 49

2.6 枚举 50

2.7 数组 52

2.8 命名空间 53

2.8.1 using语句 54

2.8.2 命名空间的别名 55

2.9 Main()方法 55

2.9.1 多个Main()方法 56

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

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

2.11 控制台I/O 59

2.12 使用注释 61

2.12.1 源文件中的内部注释 61

2.12.2 XML文档说明 61

2.13 C#预处理器指令 63

2.13.1 #define和#undef 64

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

2.13.3 #warning和#error 65

2.13.4 #region和#endregion 66

2.13.5 #line 66

2.13.6 #pragma 66

2.14 C#编程规则 67

2.14.1 用于标识符的规则 67

2.14.2 用法约定 68

2.15 小结 73

第3章 对象和类型 75

3.1 类和结构 75

3.2 类成员 76

3.2.1 数据成员 77

3.2.2 函数成员 77

3.2.3 只读字段 90

3.3 结构 91

3.3.1 结构是值类型 93

3.3.2 结构和继承 94

3.3.3 结构的构造函数 94

3.4 部分类 95

3.5 静态类 96

3.6 Object类 97

3.6.1 System.Object方法 97

3.6.2 ToString()方法 98

3.7 小结 100

第4章 继承 101

4.1 继承的类型 101

4.1.1 实现继承和接口继承 101

4.1.2 多重继承 102

4.1.3 结构和类 102

4.2 实现继承 102

4.2.1 虚方法 103

4.2.2 隐藏方法 104

4.2.3 调用函数的基类版本 105

4.2.4 抽象类和抽象函数 106

4.2.5 密封类和密封方法 107

4.2.6 派生类的构造函数 108

4.3 修饰符 112

4.3.1 可见性修饰符 112

4.3.2 其他修饰符 113

4.4 接口 114

4.4.1 定义和实现接口 115

4.4.2 派生的接口 119

4.5 小结 120

第5章 数组 121

5.1 简单数组 121

5.1.1 数组的声明 121

5.1.2 数组的初始化 121

5.1.3 访问数组元素 122

5.1.4 使用引用类型 123

5.2 多维数组 125

5.3 锯齿数组 126

5.4 Array类 127

5.4.1 属性 127

5.4.2 创建数组 128

5.4.3 复制数组 129

5.4.4 排序 130

5.5 数组和集合接口 132

5.5.1 IEumerable接口 132

5.5.2 ICollection接口 133

5.5.3 IList接口 133

5.6 枚举 134

5.6.1 IEnumerator接口 134

5.6.2 foreach语句 135

5.6.3 yield语句 135

5.7 小结 140

第6章 运算符和类型强制转换 141

6.1 运算符 141

6.1.1 运算符的简化操作 143

6.1.2 三元运算符 144

6.1.3 checked和unchecked运算符 144

6.1.4 is运算符 145

6.1.5 as运算符 145

6.1.6 sizeof运算符 146

6.1.7 typeof运算符 146

6.1.8 可空类型和运算符 146

6.1.9 空接合运算符 147

6.1.10 运算符的优先级 147

6.2 类型的安全性 148

6.2.1 类型转换 148

6.2.2 装箱和拆箱 152

6.3 对象的相等比较 153

6.3.1 引用类型的相等比较 153

6.3.2 值类型的相等比较 154

6.4 运算符重载 155

6.4.1 运算符的工作方式 156

6.4.2 运算符重载的示例:Vector结构 157

6.5 用户定义的数据类型转换 164

6.5.1 执行用户定义的类型转换 165

6.5.2 多重数据类型转换 171

6.6 小结 175

第7章 委托和事件 177

7.1 委托 177

7.1.1 在C#中声明委托 178

7.1.2 在C#中使用委托 179

7.2 委托推断 182

7.3 匿名方法 182

7.3.1 简单的委托示例 184

7.3.2 BubbleSorter示例 186

7.3.3 多播委托 189

7.4 事件 192

7.4.1 从客户的角度讨论事件 193

7.4.2 生成事件 196

7.5 小结 199

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

8.1 System.String类 201

8.1.1 创建字符串 203

8.1.2 StringBuilder成员 205

8.1.3 格式化字符串 206

8.2 正则表达式 212

8.2.1 正则表达式概述 212

8.2.2 RegularExpressions Playaround示例 213

8.2.3 显示结果 216

8.2.4 匹配、组合和捕获 217

8.3 小结 219

第9章 泛型 221

9.1 概述 221

9.1.1 性能 222

9.1.2 类型安全 223

9.1.3 二进制代码的重用 223

9.1.4 代码的扩展 224

9.1.5 命名约定 224

9.2 创建泛型类 224

9.3 泛型类的特性 229

9.3.1 默认值 230

9.3.2 约束 230

9.3.3 继承 233

9.3.4 静态成员 234

9.4 泛型接口 234

9.5 泛型方法 235

9.6 泛型委托 237

9.6.1 执行委托调用的方法 237

9.6.2 对Array类使用泛型委托 239

9.7 Framework的其他泛型类型 242

9.7.1 结构Nullable<T> 242

9.7.2 EventHandler<TEventArgs> 243

9.7.3 ArraySegment<T> 244

9.8 小结 245

第10章 集合 247

10.1 集合接口和类型 247

10.2 列表 249

10.2.1 创建列表 251

10.2.2 只读集合 260

10.3 队列 260

10.4 栈 264

10.5 链表 266

10.6 有序表 273

10.7 字典 275

10.7.1 键的类型 275

10.7.2 字典示例 277

10.7.3 其他字典类 280

10.8 带多个键的字典 281

10.9 位数组 286

10.9.1 BitArray 286

10.9.2 BitVector32 289

10.10 性能 291

10.11 小结 292

第11章 内存管理和指针 293

11.1 后台内存管理 293

11.1.1 值数据类型 293

11.1.2 引用数据类型 295

11.1.3 垃圾收集 297

11.2 释放未托管的资源 298

11.2.1 析构函数 298

11.2.2 IDisposable接口 300

11.2.3 实现IDisposable接口和析构函数 301

11.3 不安全的代码 303

11.3.1 指针 303

11.3.2 指针示例:Pointer Playaround 312

11.3.3 使用指针优化性能 317

11.4 小结 320

第12章 反射 321

12.1 定制特性 322

12.1.1 编写定制特性 322

12.1.2 定制特性示例:WhatsNewAttributes 326

12.2 反射 329

12.2.1 System.Type类 329

12.2.2 TypeView示例 331

12.2.3 Assembly类 334

12.2.4 完成WhatsNewAttributes示例 336

12.3 小结 340

第13章 错误和异常 341

13.1 错误和异常处理 341

13.1.1 异常类 342

13.1.2 捕获异常 343

13.1.3 用户定义的异常类 353

13.2 小结 360

第Ⅱ部分 Visual Studio 363

第14章 Visual Studio 2005 363

14.1 使用Visual Studio 2005 363

14.1.1 创建项目 368

14.1.2 解决方案和项目 374

14.1.3 Windows应用程序代码 377

14.1.4 读取Visual Studio 6项目 377

14.1.5 项目的浏览和编码 378

14.1.6 生成项目 388

14.1.7 调试 392

14.2 修订功能 394

14.3 Visual Studio 2005 for.NET Framework 3.0 396

14.3.1 .NET 3.0的项目类型 397

14.3.2 在Visual Studio中建WPF应用程序 398

14.3.3 在Visual Studio中建立WF应用程序 400

14.4 小结 401

第15章 部署 403

15.1 部署的设计 403

15.2 部署选项 404

15.2.1 Xcopy实用工具 404

15.2.2 Copy Web工具 404

15.2.3 发布Web站点 404

15.2.4 部署项目 404

15.2.5 ClickOnce 404

15.3 部署的要求 404

15.4 部署.NET运行库 405

15.5 简单的部署 406

15.5.1 Xcopy部署 407

15.5.2 Xcopy和Web应用程序 407

15.5.3 Copy Web工具 407

15.5.4 发布Web站点 407

15.6 Installer项目 408

15.6.1 Windows Installer 409

15.6.2 创建安装程序 409

15.7 ClickOnce 418

15.7.1 ClickOnce操作 418

15.7.2 发布应用程序 419

15.7.3 ClickOnce设置 419

15.7.4 应用程序缓存 420

15.7.5 安全性 420

15.7.6 高级选项 421

15.8 小结 426

第Ⅲ部分 基类库 429

第16章 程序集 429

16.1 程序集的含义 429

16.1.1 DLL Hell的解决方案 430

16.1.2 程序集的特性 430

16.1.3 应用程序域和程序集 431

16.2 程序集的结构 434

16.2.1 程序集的清单 434

16.2.2 命名空间、程序集和组件 435

16.2.3 私有程序集和共享程序集 435

16.2.4 查看程序集 436

16.2.5 构建程序集 437

16.3 跨语言支持 441

16.3.1 CTS和CLS 441

16.3.2 语言无关性 442

16.3.3 CLS要求 451

16.4 全局程序集缓存 452

16.4.1 本机图像生成器 452

16.4.2 全局程序集缓存查看器 453

16.4.3 全局程序集缓存工具(gacutil.exe) 455

16.5 创建共享程序集 455

16.5.1 共享程序集名 455

16.5.2 创建共享程序集 458

16.6 配置 463

16.6.1 配置类别 463

16.6.2 版本问题 464

16.6.3 配置目录 472

16.7 小结 474

第17章 跟踪和事件 477

17.1 跟踪 477

17.1.1 跟踪源 478

17.1.2 跟踪开关 479

17.1.3 跟踪监听器 480

17.1.4 过滤器 483

17.1.5 断言 484

17.2 事件日志 485

17.2.1 事件日志体系架构 486

17.2.2 事件日志类 487

17.2.3 创建事件源 488

17.2.4 写入事件日志 489

17.2.5 资源文件 489

17.3 性能监控 494

17.3.1 性能监控类 494

17.3.2 性能计数器的构建 495

17.3.3 添加PerformanceCounter组件 496

17.3.4 perfmon.exe 498

17.4 小结 499

第18章 线程和同步 501

18.1 概述 501

18.2 异步委托 503

18.2.1 投票 503

18.2.2 等待句柄 504

18.2.3 异步回调 505

18.3 Thread类 506

18.3.1 给线程传送数据 508

18.3.2 后台线程 510

18.3.3 线程的优先级 511

18.3.4 控制线程 511

18.4 线程池 512

18.5 线程问题 513

18.5.1 竞态条件 513

18.5.2 死锁 516

18.6 同步 518

18.6.1 lock语句和线程安全 518

18.6.2 Interlocked 524

18.6.3 Monitor类 525

18.6.4 等待句柄 526

18.6.5 Mutex类 527

18.6.6 Semaphore类 529

18.6.7 Events类 531

18.7 COM单元 533

18.8 BackgroundWorker组件 534

18.8.1 激活取消功能 537

18.8.2 激活进度功能 538

18.9 小结 540

第19章 .NET的安全性 541

19.1 代码访问的安全性 541

19.1.1 代码组 542

19.1.2 代码访问权限和权限集 548

19.1.3 策略的级别:Machine、User和Enterprise 552

19.2 对Framework中安全性的支持 554

19.2.1 要求权限 555

19.2.2 请求权限 556

19.2.3 隐式的权限 559

19.2.4 拒绝权限 560

19.2.5 断言权限 561

19.2.6 创建代码访问权限 562

19.2.7 声明的安全性 563

19.3 安全策略的管理 564

19.3.1 安全配置文件 564

19.3.2 代码组和权限的管理 567

19.3.3 安全性的启用和禁用 568

19.3.4 重置安全策略 568

19.3.5 代码组的创建 568

19.3.6 代码组的删除 569

19.3.7 代码组权限的更改 569

19.3.8 权限集的创建和应用 570

19.3.9 使用强名发布代码 572

19.3.10 使用证书发布代码 574

19.3.11 区域的管理 580

19.4 基于角色的安全性 582

19.4.1 Principal 582

19.4.2 Windows Principal 583

19.4.3 角色 585

19.4.4 声明基于角色的安全性 585

19.5 小结 586

第20章 本地化 587

20.1 System.Globalization命名空间 587

20.1.1 Unicode问题 588

20.1.2 文化和区域 588

20.1.3 使用文化 593

20.1.4 排序 597

20.2 资源 599

20.2.1 创建资源文件 599

20.2.2 资源文件生成器 599

20.2.3 ResourceWriter 600

20.2.4 使用资源文件 601

20.2.5 System.Resources命名空间 605

20.3 使用Visual Studio的本地化示例 606

20.3.1 编程修改文化 611

20.3.2 使用定制资源文件 612

20.3.3 资源的自动回退 613

20.3.4 外包翻译 614

20.4 用ASP.NET本地化 615

20.5 定制的资源读取器 616

20.5.1 创建DatabaseResource-Reader类 617

20.5.2 创建DatabaseResource-Set类 619

20.5.3 创建DatabaseResource-Manager类 619

20.5.4 DatabaseResourceReader的客户应用程序 620

20.6 创建定制文化 621

20.7 小结 622

第21章 事务处理 623

21.1 概述 623

21.1.1 事务处理阶段 624

21.1.2 ACID属性 625

21.2 数据库和类 625

21.3 传统的事务处理 627

21.3.1 ADO.NET事务处理 628

21.3.2 System.Enterprise-Services 629

21.4 System.Transactions 630

21.4.1 可提交的事务处理 632

21.4.2 事务处理的升级 634

21.4.3 依赖的事务处理 636

21.4.4 环境事务处理 638

21.4.5 嵌套的作用域和环境事务处理 640

21.5 隔离级别 641

21.6 定制资源管理器 643

21.7 Windows Vista的事务处理 650

21.8 小结 653

第22章 Windows服务 655

22.1 Windows服务 655

22.2 Windows服务的体系结构 656

22.2.1 服务程序 657

22.2.2 服务控制程序 658

22.2.3 服务配置程序 658

22.3 System.ServiceProcess命名空间 658

22.4 创建Windows服务 659

22.4.1 使用套接字的类库 659

22.4.2 TcpClient示例 663

22.4.3 Windows服务项目 665

22.4.4 线程和服务 671

22.4.5 服务的安装 671

22.4.6 安装程序 671

22.5 服务的监视和控制 676

22.5.1 MMC计算机管理 676

22.5.2 net.exe 677

22.5.3 sc.exe 678

22.5.4 Visual Studio Server-Explorer 679

22.5.5 ServiceController类 679

22.6 故障排除 686

22.6.1 交互式服务 687

22.6.2 事件日志 688

22.7 电源事件 688

22.8 小结 689

第23章 COM的互操作性 691

23.1 .NET和COM 691

23.1.1 元数据 692

23.1.2 释放内存 692

23.1.3 接口 693

23.1.4 方法绑定 694

23.1.5 数据类型 695

23.1.6 注册 695

23.1.7 线程 695

23.1.8 错误处理 697

23.1.9 事件处理 697

23.2 编组 698

23.3 在.NET客户程序中使用COM组件 699

23.3.1 创建COM组件 699

23.3.2 创建Runtime Callable-Wrapper 704

23.3.3 使用RCW 705

23.3.4 可交互操作的主程序集 707

23.3.5 线程问题 707

23.3.6 添加连接点 708

23.3.7 在Windows窗体中使用ActiveX控件 710

23.3.8 在ASP.NET中使用COM对象 714

23.4 在COM客户程序中使用.NET组件 714

23.4.1 COM Callable Wrapper 714

23.4.2 创建.NET组件 715

23.4.3 创建类型库 716

23.4.4 COM互操作特性 718

23.4.5 COM注册 721

23.4.6 创建COM客户程序 721

23.4.7 添加连接点 723

23.4.8 用sink对象创建客户程序 724

23.4.9 在Internet Explorer中运行Windows窗体控件 725

23.5 平台调用 725

23.6 小结 728

第Ⅳ部分 数据 731

第24章 文件和注册表操作 731

24.1 管理文件系统 731

24.1.1 表示文件和文件夹的.NET类 732

24.1.2 Path类 735

24.1.3 示例:文件浏览器 735

24.2 移动、复制和删除文件 740

24.2.1 FilePropertiesAnd-Movement示例 741

24.2.2 示例FilePropertiesAnd-Movement的代码 742

24.3 读写文件 745

24.3.1 读取文件 745

24.3.2 写入文件 747

24.3.3 流 748

24.3.4 缓存的流 750

24.3.5 使用FileStream类读写二进制文件 750

24.3.6 读写文本文件 755

24.4 读取驱动器信息 761

24.5 文件的安全性 763

24.5.1 从文件中读取ACL 764

24.5.2 从目录中读取ACL 765

24.5.3 添加和删除文件中的ACL项 766

24.6 读写注册表 768

24.6.1 注册表 768

24.6.2 .NET注册表类 770

24.6.3 SelfPlacingWindow示例 773

24.7 读写独立存储器 778

24.8 小结 783

第25章 .NET数据访问 785

25.1 ADO.NET概述 785

25.1.1 命名空间 786

25.1.2 共享类 786

25.1.3 数据库特定的类 787

25.2 使用数据库连接 788

25.2.1 管理连接字符串 789

25.2.2 高效地使用连接 791

25.2.3 事务处理 793

25.3 命令 794

25.3.1 执行命令 795

25.3.2 调用存储过程 799

25.4 快速数据访问:数据读取器 802

25.5 管理数据和关系:DataSet类 805

25.5.1 数据表 805

25.5.2 数据列 806

25.5.3 数据关系 811

25.5.4 数据约束 813

25.6 XML模式 815

25.7 填充数据集 822

25.7.1 用数据适配器来填充DataSet 822

25.7.2 从XML中给数据集填充数据 823

25.8 保存对数据集的修改 824

25.8.1 通过数据适配器进行更新 824

25.8.2 写入XML输出结果 826

25.9 使用ADO.NET 828

25.9.1 分层开发 828

25.9.2 生成SQL Server的键 829

25.9.3 命名约定 831

25.10 小结 833

第26章 处理XML 835

26.1 .NET支持的XML标准 836

26.2 System.Xml命名空间 836

26.3 在.NET中使用MSXML 837

26.4 使用System.Xml类 839

26.5 读写流格式的XML 839

26.5.1 使用XmlReader类 840

26.5.2 使用XmlReader类进行验证 843

26.5.3 使用XmlWriter类 845

26.6 在.NET中使用DOM 847

26.7 使用XPathNavigator 852

26.7.1 System.Xml.XPath命名空间 853

26.7.2 System.Xml.Xsl命名空间 858

26.8 XML和ADO.NET 863

26.8.1 将ADO.NET数据转换为XML文档 863

26.8.2 把XML文档转换为ADO.NET数据 870

26.8.3 读写DiffGram 872

26.9 在XML中串行化对象 875

26.10 小结 884

第27章 .NET编程和SQL Server 2005 885

27.1 .NET运行库的主机 885

27.2 Microsoft.SqlServer.Server 887

27.3 用户定义的类型 888

27.3.1 创建UDT 888

27.3.2 使用UDT 893

27.3.3 在客户端代码中使用UDT 894

27.4 用户定义的合计函数 895

27.4.1 创建用户定义的合计函数 895

27.4.2 使用用户定义的合计函数 897

27.5 存储过程 897

27.5.1 创建存储过程 898

27.5.2 使用存储过程 899

27.6 用户定义的函数 900

27.6.1 创建用户定义的函数 900

27.6.2 使用用户定义的函数 901

27.7 触发器 901

27.7.1 创建触发器 902

27.7.2 使用触发器 903

27.8 XML数据类型 903

27.8.1 包含XML数据的表 904

27.8.2 数据的查询 906

27.8.3 XML数据修改语言(XML DML) 908

27.8.4 XML索引 909

27.8.5 强类型化的XML 910

27.9 小结 911

下卷 915

第Ⅴ部分 显示 915

第28章 Windows窗体 915

28.1 创建Windows窗体应用程序 915

28.2 Control类 921

28.2.1 大小和位置 922

28.2.2 外观 923

28.2.3 用户交互操作 924

28.2.4 Windows功能 925

28.2.5 杂项功能 925

28.3 标准控件和组件 925

28.3.1 Button控件 926

28.3.2 CheckBox控件 927

28.3.3 RadioButton控件 927

28.3.4 ComboBox控件、ListBox控件和CheckedListBox控件 928

28.3.5 DateTimePicker控件 930

28.3.6 ErrorProvider组件 930

28.3.7 HelpProvider组件 932

28.3.8 ImageList组件 932

28.3.9 Label控件 932

28.3.10 ListView控件 933

28.3.11 PictureBox控件 935

28.3.12 ProgressBar控件 935

28.3.13 TextBox控件、RichTextBox控件与MaskedTextBox控件 935

28.3.14 Panel控件 937

28.3.15 FlowLayoutPanel和TableLayoutPanel控件 937

28.3.16 SplitContainer控件 938

28.3.17 TabControl控件和TabPages控件 938

28.3.18 ToolStrip控件 938

28.3.19 MenuStrip控件 941

28.3.20 ContextMenuStrip控件 942

28.3.21 ToolStripMenuItem控件 942

28.3.22 ToolStripManager类 942

28.3.23 ToolStripContainer控件 942

28.4 窗体 943

28.4.1 Form类 943

28.4.2 多文档界面 948

28.4.3 定制控件 949

28.5 小结 960

第29章 查看.NET数据 961

29.1 DataGridView控件 961

29.1.1 显示列表数据 961

29.1.2 数据源 963

29.2 DataGridView类的 974

29.3 数据绑定 974

29.3.1 简单的绑定 975

29.3.2 数据绑定对象 975

29.4 Visual Studio.NET和数据访问 979

29.4.1 创建一个连接 980

29.4.2 选择数据 983

29.4.3 更新数据源 983

29.4.4 其他常见的要求 984

29.5 小结 992

第30章 使用GDI+绘图 993

30.1 理解绘图规则 993

30.1.1 GDI和GDI+ 994

30.1.2 绘制图形 995

30.1.3 使用OnPaint()绘制图形 998

30.1.4 使用剪切区域 999

30.2 测量坐标和区域 1001

30.2.1 Point和PointF结构 1001

30.2.2 Size和SizeF结构 1003

30.2.3 Rectangle和RectangleF结构 1004

30.2.4 Region 1005

30.3 调试须知 1006

30.4 绘制可滚动的窗口 1007

30.5 世界、页面和设备坐标 1011

30.6 颜色 1012

30.6.1 红绿蓝(RGB)值 1012

30.6.2 命名的颜色 1013

30.6.3 图形显示模式和安全的调色板 1014

30.6.4 安全调色板 1014

30.7 画笔和钢笔 1015

30.7.1 画笔 1015

30.7.2 钢笔 1016

30.8 绘制图形和线条 1016

30.9 显示图像 1019

30.10 处理图像时所涉及到的问题 1021

30.11 绘制文本 1022

30.12 简单的文本示例 1022

30.13 字体和字体系列 1023

30.14 示例:枚举字体系列 1025

30.15 编辑文本文档:CapsEditor示例 1027

30.15.1 Invalidate()方法 1031

30.15.2 计算项和文档的大小 1032

30.15.3 OnPaint() 1034

30.15.4 坐标转换 1035

30.15.5 响应用户的输入 1036

30.16 打印 1039

30.17 小结 1045

第31章 Windows Presentation-Foundation 1047

31.1 概述 1047

31.1.1 XAML 1048

31.1.2 设计人员和开发人员的合作 1052

31.1.3 类层次结构 1053

31.1.4 命名空间 1055

31.2 形状 1056

31.3 控件 1059

31.3.1 简单控件 1059

31.3.2 内容控件 1060

31.3.3 有标题的内容控件 1062

31.3.4 项控件 1063

31.3.5 带标题的项控件 1063

31.4 布局 1063

31.4.1 StackPanel 1064

31.4.2 WrapPanel 1064

31.4.3 Canvas 1065

31.4.4 DockPanel 1066

31.4.5 Grid 1067

31.5 事件处理 1068

31.6 命令 1069

31.7 样式、模板和资源 1072

31.7.1 样式 1073

31.7.2 资源 1074

31.7.3 创建列表框的样式 1087

31.8 动画 1093

31.9 数据绑定 1099

31.9.1 概述 1099

31.9.2 用XAML绑定 1100

13.9.3 简单对象的绑定 1102

31.9.4 对象数据提供程序 1105

31.9.5 列表绑定 1107

31.9.6 绑定到XML上 1114

31.10 Windows窗体集成 1117

31.10.1 Windows窗体中的WPF控件 1117

31.10.2 WPF应用程序中的Windows窗体控件 1119

31.11 小结 1121

第32章 ASP.NET页面 1123

32.1 ASP.NET概述 1123

32.2 ASP.NET Web窗体 1125

32.2.1 ASP.NET代码模型 1128

32.2.2 ASP.NET服务器控件 1129

32.3 ADO.NET和数据绑定 1143

32.3.1 更新会议登记应用程序 1144

32.3.2 数据绑定的更多内容 1151

32.4 应用程序配置 1156

32.5 小结 1158

第33章 ASP.NET开发 1159

33.1 定制控件 1159

33.1.1 用户控件 1160

33.1.2 PCSDemoSite中的用户控件 1167

33.1.3 定制控件 1167

33.2 Master页面 1171

33.2.1 在Web页面中访问Master页面 1173

33.2.2 PCSDemoSite中的Master页面 1173

33.3 站点导航 1175

33.4 安全性 1178

33.4.1 使用安全向导添加Forms身份验证功能 1179

33.4.2 实现登录系统 1182

33.4.3 Web登录服务器控件 1183

33.4.4 保护目录 1183

33.4.5 PCSDemoSite中的安全性 1184

33.5 主题 1186

33.5.1 把主题应用于页面 1186

33.5.2 定义主题 1187

33.5.3 PCSDemoSite中的主题 1188

33.6 Web Parts 1191

33.6.1 Web Parts应用程序组件 1191

33.6.2 Web Parts示例 1193

33.7 小结 1199

第34章 ASP.NET AJAX 1201

34.1 Ajax的概念 1202

34.2 ASP.NET AJAX 1203

34.2.1 核心功能 1204

34.2.2 ASP.NET AJAX Control Toolkit 1206

34.2.3 ASP.NET 2.0 AJAX Futures CTP 1207

34.3 支持ASP.NET AJAX的网站 1207

34.3.1 支持AJAX的网站示例 1207

34.3.2 支持ASP.NET AJAX的网站配置 1211

34.3.3 添加ASP.NET AJAX功能 1215

34.3.4 使用AJAX库 1222

34.4 小结 1231

第Ⅵ部分 通信 1235

第35章 访问Internet 1235

35.1 WebClient类 1235

35.1.1 下载文件 1236

35.1.2 基本的Web客户示例 1236

35.1.3 上传文件 1237

35.2 WebRequest类和WebResponse类 1238

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

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

35.3.2 启动Internet Explorer实例 1243

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

35.3.4 使用WebBrowser控件打印 1249

35.3.5 显示请求页面的代码 1250

35.3.6 WebRequest和WebResponse的层次结构 1251

35.4 实用工具类 1252

35.4.1 URI 1252

35.4.2 IP地址和DNS名称 1253

35.5 较低层的协议 1255

35.6 小结 1264

第36章 Web服务和ASP.NET 1267

36.1 SOAP 1267

36.2 WSDL 1269

36.3 Web服务 1270

36.3.1 创建Web服务 1270

36.3.2 使用Web服务 1274

36.4 扩充会议登记示例 1276

36.4.1 会议登记Web服务 1276

36.4.2 会议登记客户程序 1281

36.5 使用SOAP标题交换数据 1285

36.6 小结 1290

第37章 .NET Remoting 1291

37.1 .NET Remoting的含义 1291

CLR Object Remoting 1293

37.2 .NET Remoting概述 1293

37.3 环境 1296

37.3.1 激活 1296

37.3.2 特性和属性 1297

37.3.3 环境之间的通信 1297

37.4 远程对象、客户机和服务器 1297

37.4.1 远程对象 1298

37.4.2 简单的服务器 1298

37.4.3 简单的客户机 1299

37.5 .NET Remoting体系结构 1301

37.5.1 信道 1301

37.5.2 格式标识符 1305

37.5.3 ChannelServices和RemotingConfiguration 1306

37.5.4 对象的激活 1307

37.5.5 消息接收器 1311

37.5.6 在远程方法中传递对象 1311

37.5.7 生存期管理 1316

37.6 .NET Remoting的其他特性 1319

37.6.1 配置文件 1319

37.6.2 利用ASP.NET驻留远程服务器 1328

37.6.3 类、接口和Soapsuds 1329

37.6.4 异步远程调用 1330

37.6.5 .NET Remoting的安全性 1332

37.6.6 远程调用和事件 1333

37.6.7 调用环境 1339

37.7 小结 1341

第38章 Enterprise Services 1343

38.1 概述 1343

38.1.1 Enterprise Services简史 1344

38.1.2 使用Enterprise Services的场合 1344

38.1.3 环境 1345

38.1.4 自动的事务处理 1345

38.1.5 分布式事务处理 1346

38.1.6 对象池 1346

38.1.7 基于角色的安全性 1346

38.1.8 排队的组件 1346

38.1.9 松散藕合的事件 1347

38.2 创建简单的COM+应用程序 1347

38.2.1 类ServicedComponent 1347

38.2.2 标记程序集 1348

38.2.3 程序集的属性 1348

38.2.4 创建组件 1349

38.3 部署 1350

38.3.1 自动部署 1350

38.3.2 手工部署 1351

38.3.3 创建安装软件包 1351

38.4 Component Services浏览器 1352

38.5 客户应用程序 1354

38.6 事务处理 1355

38.6.1 事务处理的属性 1355

38.6.2 事务处理的结果 1356

38.7 示例应用程序 1356

38.7.1 实体类 1357

38.7.2 OrderControl组件 1360

38.7.3 OrderData组件 1361

38.7.4 OrderLineData组件 1364

38.7.5 客户应用程序 1365

38.8 集成WCF和Enterprise Services 1366

38.8.1 WCF服务Fa?ade 1366

38.8.2 客户程序 1369

38.9 小结 1370

第39章 消息队列 1371

39.1 概述 1371

39.1.1 使用Message Queuing的场合 1372

39.1.2 Message Queuing特性 1373

39.2 Message Queuing产品 1373

39.3 Message Queuing结构 1374

39.3.1 消息 1374

39.3.2 消息队列 1375

39.4 Message Queuing管理工具 1375

39.4.1 创建消息队列 1376

39.4.2 消息队列属性 1376

39.5 Message Queuing的编程实现 1377

39.5.1 创建消息队列 1377

39.5.2 查找队列 1378

39.5.3 打开已知的队列 1379

39.5.4 发送消息 1380

39.5.5 接收消息 1383

39.6 课程订单应用程序 1385

39.6.1 课程订单类库 1385

39.6.2 课程订单消息发送程序 1388

39.6.3 发送优先级和可恢复的消息 1389

39.6.4 课程订单消息接收程序 1390

39.7 接收结果 1393

39.7.1 确认队列 1393

39.7.2 响应队列 1394

39.8 事务队列 1395

39.9 消息队列的安装 1396

39.10 小结 1396

第40章 Windows Communication Foundation 1397

40.1 概述 1397

40.2 简单的服务和客户 1398

40.2.1 服务合同 1401

40.2.2 服务的实现 1402

40.2.3 服务主机 1403

40.2.4 客户程序 1405

40.3 合同 1408

40.3.1 服务合同 1408

40.3.2 数据合同 1409

40.3.3 消息合同 1410

40.4 服务的实现 1411

40.5 绑定 1416

40.6 主机 1418

40.7 客户程序 1419

40.8 双向通信 1421

40.9 小结 1423

第41章 Windows Workflow Foundation 1425

41.1 Hello World示例 1425

41.2 活动 1427

41.2.1 IfElseActivity 1427

41.2.2 ParallelActivity 1429

41.2.3 CallExternalMethod-Activity 1430

41.2.4 DelayActivity 1431

41.2.5 ListenActivity 1431

41.2.6 活动的执行模型 1432

41.3 定制的活动 1433

41.3.1 活动的有效性验证 1435

41.3.2 主题和设计器 1436

41.3.3 ActivityToolboxItem和图标 1438

41.3.4 定制的复合活动 1440

41.4 工作流 1447

41.4.1 系列工作流 1447

41.4.2 状态机工作流 1447

41.4.3 给工作流传送参数 1450

41.4.4 从工作流中返回结果 1450

41.4.5 将参数绑定到活动上 1451

41.5 工作流运行库 1452

41.6 工作流服务 1453

41.6.1 持续服务 1455

41.6.2 跟踪服务 1456

41.6.3 定制服务 1458

41.7 保存工作流 1459

41.8 工作流设计器 1461

41.9 小结 1461

41.10 下载信息 1461

第42章 目录服务 1463

42.1 Active Directory的体系结构 1464

42.1.1 特性 1464

42.1.2 Active Directory的概念 1464

42.1.3 Active Directory数据的特性 1468

42.1.4 模式 1468

42.2 Active Directory的管理工具 1469

42.2.1 Active Directory Uses and Computers工具 1470

42.2.2 ADSI Edit工具 1471

42.3 Active Directory编程 1472

42.3.1 System.DirectoryServices命名空间中的类 1473

42.3.2 绑定 1473

42.3.3 获取目录项 1477

42.3.4 对象集合 1478

42.3.5 缓存 1480

42.3.6 创建新对象 1480

42.3.7 更新目录项 1481

42.3.8 访问内部的ADSI对象 1482

42.3.9 在Active Directory中搜索 1483

42.4 搜索用户对象 1486

42.4.1 用户界面 1486

42.4.2 获取模式命名环境 1487

42.4.3 获取User类的属性名 1488

42.4.4 搜索用户对象 1490

42.5 DSML 1491

42.5.1 命名空间System.-DirectoryServices.-Protocols中的类 1492

42.5.2 用DSML搜索Active-Directory对象 1492

42.6 小结 1494

第Ⅶ部分 其他信息 1497

第43章 C#、Visual Basic和C++/CLI 1497

43.1 命名空间 1498

43.2 定义类型 1499

43.2.1 引用类型 1499

43.2.2 值类型 1500

43.2.3 接口 1501

43.2.4 枚举 1502

43.3 方法 1503

43.3.1 方法的参数和返回类型 1503

43.3.2 参数的修饰符 1504

43.3.3 构造函数 1505

43.3.4 属性 1507

43.4 静态成员 1508

43.5 数组 1509

43.6 控制语句 1510

43.6.1 if语句 1510

43.6.2 条件操作符 1510

43.6.3 switch语句 1511

43.7 循环 1512

43.7.1 for语句 1512

43.7.2 while和do..while语句 1513

43.7.3 foreach语句 1514

43.8 异常处理 1514

43.9 继承 1516

43.9.1 访问修饰符 1516

43.9.2 关键字 1516

43.10 资源管理 1518

43.10.1 IDisposable接口的实现 1518

43.10.2 using语句 1519

43.10.3 重写Finalize() 1519

43.11 委托 1521

43.12 事件 1522

43.13 泛型 1524

43.14 C++/CLI混合内置代码和托管代码 1526

43.15 小结 1527

第44章 Windows Vista 1529

44.1 Vista Bridge 1529

44.2 用户账户控制 1530

44.2.1 需要管理权限的应用程序 1530

44.2.2 保护图标 1532

44.3 目录结构 1533

44.4 新控件和对话框 1535

44.4.1 命令链接 1535

44.4.2 任务对话框 1536

44.4.3 文件对话框 1539

44.5 搜索 1541

44.5.1 OLE DB提供程序 1543

44.5.2 高级查询语法 1546

44.6 小结 1548

第45章 Language Integrated Query 1549

45.1 传统的查询 1549

45.1.1 对象列表中的查询 1550

45.1.2 数据库查询 1553

45.1.3 XML 1554

45.2 LINQ查询 1557

45.2.1 对象列表 1557

45.2.2 关系数据 1557

45.2.3 XML 1559

45.3 查询表达式 1560

45.4 扩展方法 1561

45.5 标准的查询操作符 1562

45.6 λ表达式 1567

45.7 推迟查询的执行 1568

45.8 表达式树 1570

45.9 类型推断 1571

45.10 对象和集合初始化器 1571

45.11 匿名类型 1573

45.12 小结 1573