图书目录

目    录

  

上  卷

第Ⅰ部分  C# 语 言

第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

第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

第Ⅲ部分  基  类  库

第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

第Ⅳ部分  数    据

第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

下  卷

第Ⅴ部分  显    示

第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类的

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

第Ⅵ部分  通    信

第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 Users 

         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

第Ⅶ部分  其 他 信 息

第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