《C#高级编程 第7版》PDF下载

  • 购买积分:35 如何计算积分?
  • 作  者:(美)内格尔,(美)埃夫琴著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302239376
  • 页数:1473 页
图书介绍:本书首先回顾了C#的基础知识,然后讲解了该语言和架构中的所有新增功能,使读者能够立即开始编写Windows应用程序和ASP.NET Web应用程序。

第Ⅰ部分C#语言 3

第1章.NET体系结构 3

1.1 C#与.NET的关系 3

1.2公共语言运行库 4

1.2.1平台无关性 4

1.2.2提高性能 4

1.2.3语言的互操作性 5

1.3中间语言 6

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

1.3.2不同的值类型和引用类型 7

1.3.3强数据类型化 8

1.3.4通过异常处理错误 12

1.3.5特性的使用 13

1.4程序集 13

1.4.1私有程序集 14

1.4.2共享程序集 14

1.4.3反射 14

1.4.4并行编程 15

1.5.NET Framework类 15

1.6名称空间 16

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

1.7.1创建ASP.NET应用程序 16

1.7.2创建Windows窗体 18

1.7.3使用WPF 18

1.7.4 Windows控件 19

1.7.5 Windows服务 19

1.7.6 WCF 19

1.7.7 Windows WF 19

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

1.9小结 21

第2章 核心C 23

2.1第一个C#程序 23

2.1.1代码 24

2.1.2编译并运行程序 24

2.1.3详细介绍 25

2.2变量 26

2.2.1变量的初始化 27

2.2.2类型推断 28

2.2.3变量的作用域 29

2.2.4常量 31

2.3预定义数据类型 32

2.3.1值类型和引用类型 32

2.3.2CTS类型 33

2.3.3预定义的值类型 33

2.3.4预定义的引用类型 36

2.4流控制 38

2.4.1条件语句 38

2.4.2循环 42

2.4.3跳转语句 45

2.5枚举 46

2.6名称空间 47

2.6.1using语句 49

2.6.2名称空间的别名 49

2.7 Main()方法 50

2.7.1多个Main()方法 50

2.7.2给Main()方法传递参数 52

2.8有关编译C#文件的更多内容 52

2.9控制台I/O 54

2.10使用注释 56

2.10.1源文件中的内部注释 56

2.10.2XML文档 56

2.11 C#预处理器指令 58

2.11.1 #define和#undef 59

2.11.2 #if, #elif, #else和#endif 59

2.11.3 #warning和#error 60

2.11.4 #region和#endregion 61

2.11.5 #line 61

2.11.6 #pragma 61

2.12 C#编程规则 62

2.12.1关于标识符的规则 62

2.12.2用法约定 63

2.13小结 68

第3章 对象和类型 69

3.1.类和结构 69

3.2类 70

3.2.1数据成员 70

3.2.2函数成员 71

3.2.3只读字段 83

3.3匿名类型 84

3.4结构 85

3.4.1结构是值类型 86

3.4.2结构和继承 87

3.4.3结构的构造函数 87

3.5部分类 87

3.6静态类 89

3.7 Object类 89

3.7.1 System.Object()方法 90

3.7.2 ToString()方法 90

3.8扩展方法 92

3.9小结 93

第4章 继承 95

4.1继承的类型 95

4.1.1实现继承和接口继承 95

4.1.2多重继承 95

4.1.3结构和类 96

4.2实现继承 96

4.2.1虚方法 97

4.2.2隐藏方法 98

4.2.3调用函数的基类版本 99

4.2.4抽象类和抽象函数 100

4.2.5密封类和密封方法 100

4.2.6派生类的构造函数 101

4.3修饰符 106

4.3.1可见性修饰符 106

4.3.2其他修饰符 106

4.4接口 107

4.4.1定义和实现接口 108

4.4.2派生的接口 111

4.5小结 113

第5章 泛型 115

5.1概述 115

5.1.1性能 116

5.1.2类型安全 117

5.1.3二进制代码的重用 117

5.1.4代码的扩展 117

5.1.5命名约定 118

5.2创建泛型类 118

5.3泛型类的功能 122

5.3.1默认值 123

5.3.2约束 123

5.3.3继承 126

5.3.4静态成员 127

5.4泛型接口 127

5.4.1协变和抗变 128

5.4.2泛型接口的协变 129

5.4.3泛型接口的抗变 130

5.5泛型结构 131

5.6泛型方法 134

5.6.1泛型方法示例 134

5.6.2带约束的泛型方法 135

5.6.3带委托的泛型方法 136

5.6.4泛型方法规范 137

5.7小结 138

第6章 数组 139

6.1简单数组 139

6.1.1数组的声明 139

6.1.2数组的初始化 139

6.1.3访问数组元素 140

6.1.4使用引用类型 141

6.2多维数组 142

6.3锯齿数组 143

6.4 Array类 144

6.4.1创建数组 145

6.4.2复制数组 146

6.4.3排序 147

6.5数组作为参数 150

6.5.1数组协变 151

6.5.2 ArraySegment〈T〉 151

6.6枚举 152

6.6.1 lEnumerator接口 152

6.6.2 foreach语句 153

6.6.3 yield语句 153

6.7元组 158

6.8结构比较 159

6.9小结 162

第7章 运算符和类型强制转换 163

7.1运算符 163

7.1.1运算符的简化操作 165

7.1.2运算符的优先级 169

7.2类型的安全性 169

7.2.1类型转换 170

7.2.2装箱和拆箱 173

7.3比较对象的相等性 174

7.3.1比较引用类型的相等性 174

7.3.2比较值类型的相等性 175

7.4运算符重载 176

7.4.1运算符的工作方式 177

7.4.2运算符重载的示例:Vector结构 178

7.5用户定义的类型强制转换 185

7.5.1实现用户定义的类型强制转换 186

7.5.2多重类型强制转换 192

7.6小结 195

第8章 委托、Lambda表达式和事件 197

8.1委托 197

8.1.1声明委托 198

8.1.2使用委托 199

8.1.3简单的委托示例 202

8.1.4 Action〈T〉和Func〈T〉委托 204

8.1.5 BubbleSorter示例 204

8.1.6多播委托 207

8.1.7匿名方法 210

8.2Lambda表达式 211

8.2.1参数 212

8.2.2多行代码 212

8.2.3 Lambda表达式外部的变量 213

8.3事件 214

8.3.1事件发布程序 214

8.3.2事件侦听器 216

8.3.3弱事件 217

8.4小结 220

第9章 字符串和正则表达式 221

9.1System.String类 221

9.1.1创建字符串 222

9.1.2 StringBuilder成员 225

9.1.3格式字符串 226

9.2正则表达式 231

9.2.1正则表达式概述 232

9.2.2 RegularExpressions Playaround示例 233

9.2.3显示结果 235

9.2.4匹配、组合和捕获 237

9.3小结 238

第10章 集合 239

10.1集合接口和类型 239

10.2列表 240

10.2.1创建列表 241

10.2.2只读集合 250

10.3队列 250

10.4栈 254

10.5链表 256

10.6有序列表 261

10.7字典 262

10.7.1键的类型 263

10.7.2字典示例 264

10.7.3 Lookup类 268

10.7.4有序字典 269

10.8集 269

10.9可观察的集合 271

10.10位数组 272

10.10.1 BitArray类 273

10.10.2 BitVector32结构 275

10.11并发集合 277

10.12性能 279

10.13小结 281

第11章LINQ 283

11.1 LINQ概述 283

11.1.1列表和实体 283

11.1.2 LINQ查询 287

11.1.3扩展方法 288

11.1.4推迟查询的执行 289

11.2标准的查询操作符 291

11.2.1筛选 293

11.2.2用索引筛选 293

11.2.3类型筛选 294

11.2.4复合的from子句 294

11.2.5排序 295

11.2.6分组 296

11.2.7对嵌套的对象分组 297

11.2.8连接 298

11.2.9集合操作 300

11.2.10合并 301

11.2.11分区 302

11.2.12聚合操作符 303

11.2.13转换 304

11.2.14生成操作符 305

11.3并行LINQ 306

11.3.1并行查询 306

11.3.2分区器 307

11.3.3取消 307

11.4表达式树 308

11.5 LINQ提供程序 311

11.6小结 311

第12章 动态语言扩展 313

12.1 DLR 313

12.2 dynamic类型 313

12.3包含DLR ScriptRuntime 318

12.4 DynamicObject和ExpandoObject 321

12.4.1 DynamicObject 321

12.4.2 ExpandoObject 323

12.5小结 324

第13章 内存管理和指针 325

13.1后台内存管理 325

13.1.1值数据类型 325

13.1.2引用数据类型 327

13.1.3垃圾回收 328

13.2释放非托管的资源 330

13.2.1析构函数 330

13.2.2 IDisposable接口 331

13.2.3实现IDisposable接口和析构函数 332

13.3不安全的代码 334

13.3.1用指针直接访问内存 334

13.3.2指针示例:PointerPlayground 343

13.3.3使用指针优化性能 347

13.4小结 350

第14章 反射 351

14.1自定义特性 351

14.1.1编写自定义特性 352

14.1.2自定义特性示例:WhatsNewAttributes 355

14.2反射 358

14.2.1 System.Type类 358

14.2.2 TypeView示例 360

14.2.3 Assembly类 362

14.2.4完成WhatsNew Attributes示例 364

14.3小结 368

第15章 错误和异常 369

15.1异常类 369

15.2捕获异常 371

15.2.1实现多个catch块 373

15.2.2在其他代码中捕获异常 376

15.2.3 System.Exception属性 376

15.2.4没有处理异常时所发生的情况 377

15.2.5嵌套的try块 378

15.3用户定义的异常类 379

15.3.1捕获用户定义的异常 380

15.3.2抛出用户定义的异常 382

15.3.3定义用户定义的异常类 385

15.4小结 387

第Ⅱ部分Visual Studio 391

第16章Visual Studio 2010 391

16.1使用Visual Studio 2010 391

16.1.1创建项目 395

16.1.2解决方案和项目的区别 401

16.1.3 Windows应用程序代码 403

16.1.4项目的浏览和编码 404

16.1.5生成项目 411

16.1.6调试代码 415

16.2重构工具 418

16.3面向多个版本的.NET Framework 420

16.4 WPF、 WCF、 WF等 421

16.4.1在Visual Studio 2010中构建WPF应用程序 421

16.4.2在Visual Studio 2010中构建WF应用程序 423

16.5小结 424

第17章 部署 425

17.1部署的规划 425

17.1.1部署选项 426

17.1.2部署要求 426

17.1.3部署.NET运行库 427

17.2简单的部署选项 427

17.2.1 Xcopy部署 428

17.2.2 Xcopy和Web应用程序 428

17.2.3发布Web站点 429

17.3 Visual Studio 2010安装和部署项目 429

17.3.1 Windows Installer 430

17.3.2创建安装程序 430

17.4 ClickOnce 437

17.4.1 ClickOnce操作 437

17.4.2发布ClickOnce应用程序 438

17.4.3 ClickOnce设置 438

17.4.4 ClickOnce文件的应用程序缓存 439

17.4.5应用程序的安全性 439

17.5 Visual Studio 2010高级选项 440

17.5.1文件系统编辑器 440

17.5.2注册表编辑器 440

17.5.3文件类型编辑器 440

17.5.4用户界面编辑器 441

17.5.5自定义动作编辑器 442

17.5.6 Launch Conditions编辑器 443

17.6小结 444

第Ⅲ部分 基础 447

第18章 程序集 447

18.1程序集的含义 447

18.1.1程序集的功能 448

18.1.2程序集的结构 448

18.1.3程序集清单 449

18.1.4名称空间、程序集和组件 449

18.1.5私有程序集和共享程序集 449

18.1.6附属程序集 450

18.1.7查看程序集 450

18.2创建程序集 451

18.2.1创建模块和程序集 451

18.2.2程序集的特性 452

18.2.3动态加载和创建程序集 454

18.3应用程序域 457

18.4共享程序集 461

18.4.1强名 462

18.4.2使用强名获得完整性 462

18.4.3全局程序集缓存 463

18.4.4创建共享程序集 463

18.4.5创建强名 464

18.4.6安装共享程序集 465

18.4.7使用共享程序集 465

18.4.8程序集的延迟签名 466

18.4.9引用 467

18.4.10本机映像生成器 468

18.5配置.NET应用程序 469

18.5.1配置类别 469

18.5.2绑定程序集 470

18.6版本问题 471

18.6.1版本号 472

18.6.2通过编程方式获取版本 472

18.6.3绑定到程序集版本 473

18.6.4发行者策略文件 474

18.6.5运行库的版本 475

18.7小结 476

第19章 检测 477

19.1代码协定 477

19.1.1前提条件 479

19.1.2后置条件 480

19.1.3常量 481

19.1.4接口的协定 481

19.2跟踪 483

19.2.1跟踪源 484

19.2.2跟踪开关 485

19.2.3跟踪侦听器 486

19.2.4筛选器 488

19.2.5相关性 489

19.3事件日志 492

19.3.1事件日志体系结构 493

19.3.2事件日志类 494

19.3.3创建事件源 494

19.3.4写入事件日志 495

19.3.5资源文件 496

19.4性能监控 500

19.4.1性能监控类 500

19.4.2性能计数器生成器 500

19.4.3添加Performance Counter组件 503

19.4.4 perfmon.exe 505

19.5小结 506

第20章 线程、任务和同步 507

20.1概述 507

20.2异步委托 508

20.2.1投票 508

20.2.2等待句柄 509

20.2.3异步回调 510

20.3Thread类 512

20.3.1给线程传递数据 513

20.3.2后台线程 514

20.3.3线程的优先级 515

20.3.4控制线程 515

20.4线程池 516

20.5任务 517

20.5.1启动任务 517

20.5.2连续的任务 518

20.5.3任务层次结构 519

20.5.4任务的结果 520

20.6 Parallel类 521

20.6.1用Parallel.For()方法循环 521

20.6.2使用Parallel.ForEach()方法循环 523

20.6.3通过Parallel.Invoke()方法调用多个方法 524

20.7取消架构 524

20.7.1 Parallel.For()方法的取消 524

20.7.2任务的取消 526

20.8线程问题 527

20.8.1争用条件 527

20.8.2死锁 530

20.9同步 532

20.9.1 lock语句和线程安全 532

20.9.2 Interlocked类 538

20.9.3 Monitor类 539

20.9.4 SpinLock结构 540

20.9.5 WaitHandle基类 540

20.9.6 Mutex类 541

20.9.7 Semaphore类 542

20.9.8 Events类 544

20.9.9 Barrier类 547

20.9.10 ReaderWriterLockSlim类 549

20.10 Timer类 552

20.11基于事件的异步模式 554

20.11.1 BackgroundWorker类 554

20.11.2启用取消功能 557

20.11.3启用进度功能 558

20.11.4创建基于事件的异步组件 559

20.12小结 563

第21章 安全性 565

21.1身份验证和授权 565

21.1.1标识和Principal 565

21.1.2角色 567

21.1.3声明基于角色的安全性 567

21.1.4客户端应用程序服务 568

21.2加密 573

21.2.1签名 575

21.2.2交换密钥和安全传输 576

21.3资源的访问控制 579

21.4代码访问安全性 582

21.4.1第2级安全透明性 582

21.4.2权限 583

21.5使用证书发布代码 588

21.6小结 588

第22章本地化 591

22.1 System.Globalization名称空间 591

22.1.1 Unicode问题 592

22.1.2区域性和区域 592

22.1.3使用区域性 596

22.1.4排序 600

22.2资源 602

22.2.1创建资源文件 602

22.2.2资源文件生成器 602

22.2.3 ResourceWriter 603

22.2.4使用资源文件 604

22.2.5 System.Resources名称空间 607

22.3使用Visual Studio的Windows窗体本地化 607

22.3.1通过编程方式修改区域性 612

22.3.2使用自定义资源文件 613

22.3.3资源的自动回退 614

22.3.4外包翻译 615

22.4用ASP.NET本地化 615

22.5用WPF本地化 617

22.5.1用于WPF的.NET资源 618

22.5.2 XAML资源字典 619

22.6自定义资源读取器 622

22.6.1创建DatabaseResource Reader类 623

22.6.2创建DatabaseResource Set类 625

22.6.3创建DatabaseResource Manager类 625

22.6.4 DatabaseResourceReader的客户端应用程序 626

22.7创建自定义区域性 626

22.8小结 628

第23章System.Transactions 629

23.1概述 629

23.1.1事务处理阶段 630

23.1.2 ACID属性 630

23.2数据库和实体类 631

23.3传统的事务 633

23.3.1 ADONET事务 633

23.3.2 System.Enterprise Services 634

23.4 System.Transactions 635

23.4.1可提交的事务 636

23.4.2事务处理的升级 638

23.4.3依赖事务 640

23.4.4环境事务 642

23.5隔离级别 649

23.6自定义资源管理器 650

23.7 Windows 7和Windows Server 2008的事务 656

23.8小结 660

第24章 网络 661

24.1 WebClient类 661

24.1.1下载文件 662

24.1.2基本的WebClient示例 662

24.1.3上传文件 663

24.2 WebRequest类和WebResponse类 664

24.2.1身份验证 666

24.2.2使用代理 666

24.2.3异步页面请求 666

24.3把输出结果显示为HTML页面 667

24.3.1从应用程序中进行简单的Web浏览 667

24.3.2启动Internet Explorer实例 669

24.3.3给应用程序提供更多的IE类型特性 669

24.3.4使用WebBrowser控件打印 674

24.3.5显示请求页面的代码 674

24.3.6 WebRequest类和WebResponse类的层次结构 676

24.4实用工具类 676

24.4.1 URI 676

24.4.2 IP地址和DNS名称 677

24.5较低层的协议 679

24.5.1使用SmtpClient 680

24.5.2使用TCP类 682

24.5.3 TcpSend和TcpReceive示例 682

24.5.4 TCP和UDP 684

24.5.5 UDP类 684

24.5.6 Socket类 685

24.6小结 689

第25章Windows服务 691

25.1 Windows服务 691

25.2 Windows服务的体系结构 692

25.2.1服务程序 692

25.2.2服务控制程序 694

25.2.3服务配置程序 694

25.2.4 Windows服务的类 694

25.3创建Windows服务程序 694

25.3.1创建服务的核心功能 695

25.3.2 QuoteClient示例 698

25.3.3 Windows服务程序 699

25.3.4线程和服务 703

25.3.5服务的安装 704

25.3.6安装程序 704

25.4服务的监视和控制 708

25.4.1 MMC管理单元 708

25.4.2 net.exe实用程序 709

25.4.3 sc.exe实用程序 710

25.4.4 Visual Studio Server Explorer 710

25.4.5编写自定义 ServiceController类 710

25.5故障排除和事件日志 718

25.6小结 719

第26章 互操作性 721

26.1 .NET和COM 721

26.1.1元数据 722

26.1.2释放内存 722

26.1.3接口 722

26.1.4方法的绑定 724

26.1.5数据类型 724

26.1.6注册 724

26.1.7线程 725

26.1.8错误处理 726

26.1.9事件 727

26.2编组 727

26.3从.NET客户端中使用COM组件 728

26.3.1创建COM组件 728

26.3.2创建RCW 734

26.3.3使用RCW 735

26.3.4使用COM服务器和动态语言扩展 736

26.3.5线程问题 737

26.3.6添加连接点 737

26.4从COM客户端中使用.NET组件 739

26.4.1 CCM 740

26.4.2创建.NET组件 740

26.4.3创建类型库 741

26.4.4 COM互操作特性 743

26.4.5 COM注册 745

26.4.6创建COM客户端应用程序 746

26.4.7添加连接点 747

26.4.8用sink对象创建客户端 748

26.5平台调用 750

26.6小结 754

第27章 核心XAML 755

27.1概述 755

27.1.1元素映射到.NET对象上 756

27.1.2使用自定义.NET类 757

27.1.3把特性用作属性 759

27.1.4把特性用作元素 759

27.1.5基本的.NET类型 760

27.1.6集合 760

27.1.7构造函数 761

27.2依赖属性 761

27.2.1创建依赖类型 762

27.2.2强制值回调 763

27.2.3值变更回调和事件 764

27.2.4事件的冒泡和隧道 764

27.3附加属性 767

27.4标记扩展 770

27.5创建自定义标记扩展 770

27.6 XAML定义的标记扩展 772

27.7读写XAML 772

27.8小结 773

第28章Managed Extensibility Framework 775

28.1 MEF的体系结构 775

28.2协定 782

28.3导出 783

28.3.1导出属性和方法 787

28.3.2导出元数据 789

28.4导入 791

28.5容器和出口提供程序 794

28.6类别 797

28.7小结 798

第29章 文件和注册表操作 799

29.1管理文件系统 799

29.1.1表示文件和文件夹的.NET类 800

29.1.2 Path类 803

29.1.3 FileProperties示例 803

29.2移动、复制和删除文件 808

29.2.1 FilePropertiesAndMovement示例 808

29.2.2 FilePropertiesAndMovement示例的代码 809

29.3读写文件 812

29.3.1读取文件 812

29.3.2写入文件 814

29.3.3流 815

29.3.4缓存的流 816

29.3.5使用FileStream类读写二进制文件 816

29.3.6读写文本文件 821

29.4映射内存的文件 827

29.5读取驱动器信息 829

29.6文件的安全性 831

29.6.1从文件中读取ACL 831

29.6.2从目录中读取ACL 832

29.6.3添加和删除文件中的ACL项 833

29.7读写注册表 835

29.7.1注册表 835

29.7.2.NET注册表类 837

29.8读写独立存储器 839

29.9小结 844

第Ⅳ部分 数据 847

第30章 核心ADO.NET 847

30.1 ADO.NET概述 847

30.1.1名称空间 848

30.1.2共享类 848

30.1.3数据库专用的类 849

30.2使用数据库连接 850

30.2.1管理连接字符串 851

30.2.2高效地使用连接 852

30.2.3事务 854

30.3命令 855

30.3.1执行命令 856

30.3.2调用存储过程 860

30.4快速数据访问:数据读取器 862

30.5管理数据和关系:DataSet类 865

30.5.1数据表 866

30.5.2数据列 866

30.5.3数据关系 871

30.5.4数据约束 872

30.6 XML架构:用XSD生成代码 875

30.7填充DataSet类 881

30.7.1用数据适配器填充DataSet 882

30.7.2从XML中填充DataSet类 883

30.8持久化DataSet类的修改 883

30.8.1通过数据适配器进行更新 883

30.8.2写入XML输出结果 886

30.9使用ADO.NET 887

30.9.1分层开发 887

30.9.2生成SQL Server的键 888

30.9.3命名约定 891

30.10小结 892

第31章 ADO.NET Entity Framework 893

31.1 ADO.NET Entity Framework概述 893

31.2 Entity Framework映射 894

31.2.1逻辑层 895

31.2.2概念层 897

31.2.3映射层 898

31.3 Entity Client 899

31.3.1连接字符串 900

31.3.2 Entity SQL 900

31.4实体 901

31.5对象上下文 904

31.6关系 906

31.6.1一个层次结构一个表 907

31.6.2一种类型一个表 908

31.6.3懒惰加载、延迟加载和预先加载 909

31.7对象查询 910

31.8更新 913

31.8.1对象跟踪 913

31.8.2改变信息 914

31.8.3附加和分离实体 916

31.8.4存储实体的变化 916

31.9 LINQ to Entities 917

31.10小结 918

第32章 数据服务 919

32.1概述 919

32.2包含CLR对象的自定义宿主 920

32.2.1CLR对象 920

32.2.2数据模型 922

32.2.3数据服务 923

32.2.4驻留服务 923

32.2.5其他服务操作 924

32.3 HTTP客户端应用程序 925

32.4使用WCF数据服务和ADO.NET Entity Framework 929

32.4.1 ASP.NET宿主和EDM 929

32.4.2使用System.Data.Service.Client的.NET应用程序 931

32.5小结 938

第33章 处理XML 939

33.1 .NET支持的XML标准 940

33.2 System.Xml名称空间 940

33.3使用System.Xml类 941

33.4读写流格式的XML 942

33.4.1使用XmIReader类 942

33.4.2使用XmlReader类进行验证 946

33.4.3使用XmlWriter类 947

33.5在.NET中使用DOM 949

33.6使用XpathNavigator类 954

33.6.1 System.Xml.Xpath名称空间 954

33.6.2 System.Xml.Xsl名称空间 959

33.6.3调试XSLT 963

33.7 XML和ADO.NET 965

33.7.1将ADO.NET数据转换为XML文档 965

33.7.2把XML文档转换为ADO.NET数据 970

33.8在XML中序列化对象 972

33.9 LINQ to XML和.NET 982

33.10使用不同的XML对象 982

33.10.1 XDocument对象 982

33.10.2 XElement对象 983

33.10.3 XNamespace对象 984

33.10.4 XComment对象 986

33.10.5 XAttribute对象 986

33.11使用LINQ查询XML文档 987

33.11.1查询静态的XML文档 987

33.11.2查询动态的XML文档 989

33.12 XML文档的更多查询技术 990

33.12.1读取XML文档 990

33.12.2写入XML文档 992

33.13小结 993

第34章.NET编程和SQL Server 995

34.1 .NET运行库的宿主 995

34.2 Microso.SqlServer.Server 997

34.3用户定义的类型 998

34.3.1创建UDT 998

34.3.2通过SQL使用UDT 1003

34.3.3从客户端代码中使用UDT 1004

34.4用户定义的聚合函数 1005

34.4.1创建用户定义的聚合函数 1006

34.4.2使用用户定义的聚合函数 1007

34.5存储过程 1007

34.5.1创建存储过程 1008

34.5.2使用存储过程 1009

34.6用户定义的函数 1010

34.6.1创建用户定义的函数 1010

34.6.2使用用户定义的函数 1010

34.7触发器 1011

34.7.1创建触发器 1011

34.7.2使用触发器 1012

34.8 XML数据类型 1013

34.8.1包含XML数据的表 1013

34.8.2读取XML值 1014

34.8.3数据的查询 1017

34.8.4 XML数据修改语言(XML DML) 1019

34.8.5 XML索引 1020

34.8.6强类型化的XML 1021

34.9小结 1022

第Ⅴ部分 显示 1025

第35章 核心WPF 1025

35.1概述 1025

35.1.1名称空间 1025

35.1.2类层次结构 1027

35.2形状 1028

35.3几何图形 1030

35.4变换 1032

35.5画笔 1033

35.5.1 SolidColorBrush 1033

35.5.2 LinearGradientBrush 1034

35.5.3 RadialGradientBrush 1034

35.5.4 DrawingBrush 1035

35.5.5 ImageBrush 1035

35.5.6 VisualBrush 1036

35.6控件 1037

35.6.1简单控件 1037

35.6.2内容控件 1038

35.6.3带标题的内容控件 1039

35.6.4项控件 1040

35.6.5带标题的项控件 1041

35.6.6修饰 1041

35.7布局 1042

35.7.1 StackPanel 1042

35.7.2 WrapPanel 1043

35.7.3 Canvas 1044

35.7.4 DockPanel 1044

35.7.5 Grid 1045

35.8样式和资源 1046

35.8.1样式 1046

35.8.2资源 1048

35.8.3系统资源 1049

35.8.4从代码中访问资源 1050

35.8.5动态资源 1050

35.8.6资源字典 1051

35.9触发器 1052

35.9.1属性触发器 1053

35.9.2多触发器 1054

35.9.3数据触发器 1055

35.10模板 1056

35.10.1控件模板 1057

35.10.2数据模板 1060

35.10.3样式化列表框 1061

35.10.4 ItemTemplate 1062

35.10.5列表框元素的控件模板 1064

35.11动画 1066

35.11.1时间轴 1066

35.11.2非线性动画 1069

35.11.3事件触发器 1069

35.11.4关键帧动画 1072

35.12可见状态管理器 1073

35.13 3-D 1076

35.13.1模型 1077

35.13.2照相机 1079

35.13.3光线 1079

35.13.4旋转 1079

35.14小结 1080

第36章用WPF编写业务应用程序 1083

36.1数据绑定 1083

36.1.1 BooksDemo应用程序 1084

36.1.2用XAML绑定 1086

36.1.3简单对象的绑定 1088

36.1.4更改通知 1090

36.1.5对象数据提供程序 1092

36.1.6列表绑定 1094

36.1.7主从绑定 1096

36.1.8多绑定 1097

36.1.9优先绑定 1099

36.1.10值的转换 1100

36.1.11动态添加列表项 1102

36.1.12数据模板选择器 1103

36.1.13绑定到XML上 1105

36.1.14绑定的验证 1107

36.2 Commanding 1111

36.2.1定义命令 1112

36.2.2定义命令源 1113

36.2.3命令绑定 1113

36.3 TreeView 1114

36.4 DataGrid 1118

36.4.1自定义列 1120

36.4.2行的细节 1121

36.4.3用DataGrid进行分组 1121

36.5小结 1124

第37章用WPF创建文档 1125

37.1文本元素 1125

37.1.1字体 1125

37.1.2 TextEffect 1127

37.1.3内联 1128

37.1.4块 1130

37.1.5列表 1132

37.1.6表 1132

37.1.7块的锚定 1134

37.2流文档 1135

37.3固定文档 1136

37.4 XPS文档 1140

37.5打印 1141

37.5.1用PrintDialog打印 1142

37.5.2打印可见元素 1142

37.6小结 1144

第38章Silverlight 1145

38.1 WPF和Silverlight的比较 1145

38.2创建Silverlight项目 1146

38.3导航 1148

38.4网络 1152

38.4.1创建ADO.NET Entity Data Model 1153

38.4.2为Silverlight客户端创建WCF服务 1153

38.4.3调用WCF服务 1155

38.4.4使用WCF数据服务 1158

38.4.5使用System.Net访问服务 1160

38.5浏览器集成 1162

38.5.1调用JavaScript 1162

38.5.2 JavaScript调用Silverlight 1163

38.6在浏览器外运行的Silverlight应用程序 1164

38.7小结 1167

第39章Windows窗体 1169

39.1创建Windows窗体应用程序 1169

39.2 Control类 1175

39.2.1大小和位置 1175

39.2.2外观 1176

39.2.3用户交互操作 1176

39.2.4 Windows功能 1177

39.2.5其他功能 1177

39.3标准控件和组件 1178

39.3.1 Button控件 1178

39.3.2 CheckBox控件 1178

39.3.3 RadioButton控件 1179

39.3.4 ComboBox控件、ListBox控件和CheckedListBox控件 1179

39.3.5 DataGridView控件 1180

39.3.6 DateTimePicker控件 1188

39.3.7 ErrorProvider组件 1188

39.3.8 lmageList组件 1189

39.3.9 Label控件 1189

39.3.10 ListView控件 1189

39.3.11 PictureBox控件 1189

39.3.12 ProgressBar控件 1190

39.3.13 TextBox控件、RichTextBox控件与MaskedTextBox控件 1190

39.3.14 Panel控件 1191

39.3.15 FlowLayoutPanel和TableLayoutPanel控件 1191

39.3.16 SplitContainer控件 1192

39.3.17 TabControl控件和TabPages控件 1192

39.3.18 ToolStrip控件 1193

39.3.19 MenuStrip控件 1194

39.3.20 ContextMenuStrip控件 1194

39.3.21 ToolStripMenultem控件 1194

39.3.22 ToolStripManager类 1194

39.3.23 ToolStripContainer控件 1195

39.4窗体 1195

39.4.1 Form类 1195

39.4.2多文档界面 1199

39.4.3创建自己的用户控件 1200

39.5小结 1200

第40章 核心ASP.NET 1201

40.1 ASP.NET概述 1201

40.1.1 ASP.NET文件的处理方式 1202

40.1.2 Web站点和Web应用程序 1202

40.1.3 ASP.NET中的状态管理 1203

40.2 ASP.NET Web窗体 1203

40.2.1 ASP.NET代码模型 1207

40.2.2 ASP.NET服务器控件 1208

40.3 ADO.NET和数据绑定 1222

40.3.1更新事件登记应用程序 1222

40.3.2数据绑定的更多内容 1229

40.4应用程序配置 1234

40.5小结 1236

第41章ASP.NET的功能 1237

41.1用户控件和自定义控件 1238

41.1.1用户控件 1238

41.1.2 PCSDemoSite中的用户控件 1242

41.1.3自定义控件 1243

41.2母版页 1247

41.2.1在Web页面中访问母版页 1248

41.2.2嵌套的母版页 1248

41.2.3 PCSDemoSite中的母版页 1249

41.3站点导航 1250

41.3.1添加站点地图文件 1251

41.3.2 PCSDemoSite中的导航 1252

41.4安全性 1253

41.4.1使用SecuRIty Setup添加Forms身份验证功能 1254

41.4.2实现登录系统 1255

41.4.3 Web登录服务器控件 1255

41.4.4保护目录 1256

41.4.5 PCSDemoSite中的安全性 1257

41.5主题 1259

41.5.1把主题应用于页面 1259

41.5.2定义主题 1260

41.5.3 PCSDemoSite中的主题 1260

41.6 Web部件 1263

41.6.1 Web部件应用程序组件 1263

41.6.2 Web部件示例 1264

41.7 ASP.NET AJAX 1270

41.8 Ajax的概念 1271

41.9 ASP.NET AJAX 1273

41.9.1核心功能 1273

41.9.2 ASP.ET AJAX Control Toolkit 1275

41.10 ASP.NET AJAX网站示例 1276

41.11支持ASP.NET AJAX的网站配置 1278

41.12添加ASP NET AJAX功能 1279

41.12.1 ScriptManager控件 1280

41.12.2使用UpdatePanel控件 1281

41.12.3使用UpdateProgress 1283

41.12.4使用扩展控件 1284

41.13使用AJAX库 1286

41.13.1给Web页面添加JavaScript 1286

41.13.2全局实用程序函数 1287

41.13.3使用AJAX库JavaScript OOP扩展 1287

41.13.4 PageRequestManager对象和Application对象 1289

41.13.5 JavaScript的调试 1292

41.13.6异步调用Web方法 1293

41.13.7 ASP.NET应用程序服务 1294

41.14小结 1294

第42章ASP.NET动态数据和MVC 1297

42.1路由 1298

42.1.1查询字符串参数 1298

42.1.2定义路由 1300

42.1.3使用路由参数 1303

42.2动态数据 1305

42.2.1创建动态数据网站 1305

42.2.2定制动态数据网站 1310

42.2.3进一步开发 1314

42.3 MVC 1314

42.3.1 MVC的含义 1314

42.3.2 ASP.NET MVC的含义 1315

42.3.3简单的ASP.NET MVC应用程序 1315

42.3.4定制ASP.NET MVC应用程序 1321

42.3.5进一步开发 1329

42.4小结 1330

第Ⅵ部分 通信 1333

第43章WCF 1333

43.1 WCF概述 1333

43.1.1 SOAP 1335

43.1.2 WSDL 1335

43.1.3 REST 1335

43.1.4 JSON 1336

43.2简单的服务和客户端 1336

43.2.1服务协定 1337

43.2.2服务的实现 1338

43.2.3 WCF服务宿主和WCF测试客户端 1338

43.2.4自定义服务宿主 1340

43.2.5 WCF客户端 1342

43.2.6诊断 1343

43.3协定 1345

43.3.1数据协定 1345

43.3.2版本问题 1346

43.3.3服务协定 1346

43.3.4消息协定 1347

43.4服务的实现 1348

43.4.1以编程方式创建客户端 1351

43.4.2错误处理 1352

43.5绑定 1353

43.6宿主 1356

43.6.1自定义宿主 1356

43.6.2 WAS宿主 1357

43.6.3预配置的宿主类 1357

43.7客户端 1358

43.8双工通信 1360

43.9小结 1362

第44章Windows WF4 1363

44.1 Hello World示例 1363

44.2活动 1365

44.2.1 If活动 1366

44.2.2 InvokeMethod活动 1367

44.2.3 Parallel活动 1367

44.2.4 Delay活动 1368

44.2.5 Pick活动 1368

44.3自定义活动 1369

44.3.1活动的验证 1370

44.3.2设计器 1371

44.3.3自定义复合活动 1373

44.4工作流 1375

44.4.1实参和变量 1376

44.4.2 WorkflowApplication 1377

44.4.3 WorkflowServiceHost 1381

44.4.4驻留设计器 1386

44.5小结 1391

第45章 对等网络 1393

45.1 P2P网络概述 1393

45.1.1客户端-服务器体系结构 1393

45.1.2 P2P体系结构 1394

45.1.3 P2P体系结构的挑战 1395

45.1.4 P2P术语 1396

45.1.5 P2P解决方案 1396

45.2 Microsoft Windows Peer-to-Peer Networking 1396

45.2.1 PNRP 1396

45.2.2 People Near Me 1399

45.3构建P2P应用程序 1400

45.3.1 System.Net.PeerToPeer 1400

45.3.2 System.Net.PeerToPeer.Collaboration 1405

45.4小结 1408

第46章 消息队列 1409

46.1概述 1409

46.1.1使用消息队列的场合 1410

46.1.2消息队列功能 1411

46.2 Message Queuing产品 1412

46.3消息队列体系结构 1412

46.3.1消息 1413

46.3.2消息队列 1413

46.4 Message Queuing管理工具 1414

46.4.1创建消息队列 1414

46.4.2消息队列属性 1415

46.5消息队列的编程实现 1415

46.5.1创建消息队列 1415

46.5.2查找队列 1416

46.5.3打开已知队列 1417

46.5.4发送消息 1418

46.5.5接收消息 1421

46.6课程订单应用程序 1423

46.6.1课程订单类库 1423

46.6.2课程订单消息发送程序 1424

46.6.3发送优先级和可恢复的消息 1425

46.6.4课程订单消息接收程序 1426

46.7接收结果 1429

46.7.1确认队列 1430

46.7.2响应队列 1430

46.8事务队列 1431

46.9消息队列和WCF 1432

46.9.1带数据协定的实体类 1432

46.9.2 WCF服务协定 1433

46.9.3 WCF消息接收应用程序 1434

46.9.4 WCF消息发送应用程序 1437

46.10消息队列的安装 1438

46.11小结 1438

第47章Syndication 1441

47.1 System.ServiceModel.Syndication名称空间概述 1441

47.2读取联合源的示例 1442

47.3联合源的示例 1444

47.4小结 1449

第Ⅶ部分 附录 1453

附录A 1453