图书介绍

C#高级编程 第7版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

C#高级编程 第7版
  • 出版社:
  • ISBN:
  • 出版时间:未知
  • 标注页数:0页
  • 文件大小:538MB
  • 文件页数:1508页
  • 主题词:

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

C#高级编程 第7版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第Ⅰ部分 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 使用WPF18

1.7.4 Windows控件19

1.7.5 Windows服务19

1.7.6 WCF19

1.7.7 Windows WF19

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.2 CTS类型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.1 using语句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/O54

2.10 使用注释56

2.10.1 源文件中的内部注释56

2.10.2 XML文档56

2.11 C#预处理器指令58

2.11.1 #define和#undef59

2.11.2 #if,#elif,#else和#endif59

2.11.3 #warning和#error60

2.11.4 #region和#endregion61

2.11.5 #line61

2.11.6 #pragma61

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 IEnumerator接口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.2 Lambda表达式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.1 System.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章 LINQ283

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 并行LINQ306

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 DLR313

12.2 dynamic类型313

12.3 包含DLR ScriptRuntime318

12.4 DynamicObject和ExpandoObject321

12.4.1 DynamicObject321

12.4.2 ExpandoObject323

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 指针示例:PointerPlayground343

13.3.3 使用指针优化性能347

13.4 小结350

第14章 反射351

14.1 自定义特性351

14.1.1 编写自定义特性352

14.1.2 自定义特性示例:WhatsNewAttributes355

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第16章 Visual Studio 2010391

16.1 使用Visual Studio 2010391

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 Framework420

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 Installer430

17.3.2 创建安装程序430

17.4 ClickOnce437

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.exe505

19.5 小结506

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

20.1 概述507

20.2 异步委托508

20.2.1 投票508

20.2.2 等待句柄509

20.2.3 异步回调510

20.3 Thread类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 标识和Principal565

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 ResourceWriter603

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.Transactions629

23.1 概述629

23.1.1 事务处理阶段630

23.1.2 ACID属性630

23.2 数据库和实体类631

23.3 传统的事务633

23.3.1 ADO.NET事务633

23.3.2 System.Enterprise Services634

23.4 System.Transactions635

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 URI676

24.4.2 IP地址和DNS名称677

24.5 较低层的协议679

24.5.1 使用SmtpClient680

24.5.2 使用TCP类682

24.5.3 TcpSend和TcpReceive示例682

24.5.4 TCP和UDP684

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 Explorer710

25.4.5 编写自定义ServiceController类710

25.5 故障排除和事件日志718

25.6 小结719

第26章 互操作性721

26.1 .NET和COM721

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 创建RCW734

26.3.3 使用RCW735

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

26.3.5 线程问题737

26.3.6 添加连接点737

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

26.4.1 CCM740

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章 核心XAML755

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 读写XAML772

27.8 小结773

第28章 Managed Extensibility Framework775

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 从文件中读取ACL831

29.6.2 从目录中读取ACL832

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.NET847

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 用数据适配器填充DataSet882

30.7.2 从XML中填充DataSet类883

30.8 持久化DataSet类的修改883

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

30.8.2 写入XML输出结果886

30.9 使用ADO.NET887

30.9.1 分层开发887

30.9.2 生成SQL Server的键888

30.9.3 命名约定891

30.10 小结892

第31章 ADO.NET Entity Framework893

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 Client899

31.3.1 连接字符串900

31.3.2 Entity SQL900

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 Entities917

31.10 小结918

第32章 数据服务919

32.1 概述919

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

32.2.1 CLR对象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 Framework929

32.4.1 ASP.NET宿主和EDM929

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

32.5 小结938

第33章 处理XML939

33.1 .NET支持的XML标准940

33.2 System.Xml名称空间940

33.3 使用System.Xml类941

33.4 读写流格式的XML942

33.4.1 使用XmlReader类942

33.4.2 使用XmlReader类进行验证946

33.4.3 使用XmlWriter类947

33.5 在.NET中使用DOM949

33.6 使用XpathNavigator类954

33.6.1 System.Xml.Xpath名称空间954

33.6.2 System.Xml.Xsl名称空间959

33.6.3 调试XSLT963

33.7 XML和ADO.NET965

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

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

33.8 在XML中序列化对象972

33.9 LINQ to XML和.NET982

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 Server995

34.1 .NET运行库的宿主995

34.2 Microsoft.SqlServer.Server997

34.3 用户定义的类型998

34.3.1 创建UDT998

34.3.2 通过SQL使用UDT1003

34.3.3 从客户端代码中使用UDT1004

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 强类型化的XML1021

34.9 小结1022

第Ⅴ部分 显示1025

第35章 核心WPF1025

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 SolidColorBrush1033

35.5.2 LinearGradientBrush1034

35.5.3 RadialGradientBrush1034

35.5.4 DrawingBrush1035

35.5.5 ImageBrush1035

35.5.6 VisualBrush1036

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 StackPanel1042

35.7.2 WrapPanel1043

35.7.3 Canvas1044

35.7.4 DockPanel1044

35.7.5 Grid1045

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 ItemTemplate1062

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-D1076

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 Commanding1111

36.2.1 定义命令1112

36.2.2 定义命令源1113

36.2.3 命令绑定1113

36.3 TreeView1114

36.4 DataGrid1118

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 TextEffect1127

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章 Silverlight1145

38.1 WPF和Silverlight的比较1145

38.2 创建Silverlight项目1146

38.3 导航1148

38.4 网络1152

38.4.1 创建ADO.NET Entity Data Model1153

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 调用JavaScript1162

38.5.2 JavaScript调用Silverlight1163

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 ImageList组件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 ToolStripMenuItem控件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.NET1201

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 AJAX1270

41.8 Ajax的概念1271

41.9 ASP.NET AJAX1273

41.9.1 核心功能1273

41.9.2 ASP.NET AJAX Control Toolkit1275

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 使用Update以Panel控件1281

41.12.3 使用UpdateProgress1283

41.12.4 使用扩展控件1284

41.13 使用AJAX库1286

41.13.1 给Web页面添加JavaScript1286

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动态数据和MVC1297

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 MVC1314

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章 WCF1333

43.1 WCF概述1333

43.1.1 SOAP1335

43.1.2 WSDL1335

43.1.3 REST1335

43.1.4 JSON1336

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 WF 41363

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 WorkflowApplication1377

44.4.3 WorkflowServiceHost1381

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 Networking1396

45.2.1 PNRP1396

45.2.2 People Near Me1399

45.3 构建P2P应用程序1400

45.3.1 System.Net.PeerToPeer1400

45.3.2 System.Net.PeerToPeer.Collaboration1405

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 消息队列和WCF1432

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章 Syndication1441

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

47.2 读取联合源的示例1442

47.3 联合源的示例1444

47.4 小结1449

第Ⅶ部分 附录1453

附录A1453

以下内容见随书附赠光盘第48章 使用GDI+绘图&E1

48.1 理解绘图规则&E1

48.1.1 GDI和GDI+&E2

48.1.2 绘制图形&E3

48.1.3 使用OnPaint()方法绘制图形&E6

48.1.4 使用剪切区域&E7

48.2 测量坐标和区域&E9

48.2.1 Point和PointF结构&E9

48.2.2 Size和SizeF结构&E10

48.2.3 Rectangle和RectangleF结构&E11

48.2.4 Region&E12

48.3 调试须知&E13

48.4 绘制可滚动的窗口&E14

48.5 世界、页面和设备坐标&E18

48.6 颜色&E19

48.6.1 RGB值&E19

48.6.2 命名颜色&E20

48.6.3 图形显示模式和安全的调色板&E20

48.6.4 安全调色板&E21

48.7 画笔和钢笔&E21

48.7.1 画笔&E22

48.7.2 钢笔&E23

48.8 绘制图形和线条&E23

48.9 显示图像&E25

48.10 处理图像时的问题&E27

48.11 绘制文本&E28

48.12 简单的文本示例&E29

48.13 字体和字体系列&E30

48.14 示例:枚举字体系列&E31

48.15 编辑文本文档:CapsEditor示例&E33

48.15.1 Invalidate()方法&E37

48.15.2 计算项的大小和文档的大小&E38

48.15.3 OnPaint()方法&E39

48.15.4 坐标转换&E41

48.15.5 响应用户的输入&E42

48.16 打印&E45

48.17 小结&E50

第49章 VSTO&E51

49.1 VSTO概述&E51

49.1.1 项目类型&E52

49.1.2 项目功能&E54

49.2 VSTO项目基础&E55

49.2.1 Office对象模型&E55

49.2.2 VSTO名称空间&E55

49.2.3 宿主项和宿主控件&E56

49.2.4 基本的VSTO项目结构&E57

49.2.5 Globals类&E60

49.2.6 事件处理&E60

49.3 构建VSTO解决方案&E61

49.3.1 管理应用程序级插件&E62

49.3.2 与应用程序和文档交互操作&E63

49.3.3 UI的自定义&E64

49.4 示例应用程序&E68

49.5 小结&E78

第50章 MAF&E79

50.1 MAF体系结构&E79

50.1.1 管道&E80

50.1.2 发现&E81

50.1.3 激活和隔离&E82

50.1.4 协定&E83

50.1.5 生命周期&E84

50.1.6 版本问题&E85

50.2 插件示例&E86

50.2.1 插件协定&E86

50.2.2 计算器插件视图&E87

50.2.3 计算器插件适配器&E88

50.2.4 计算器插件&E90

50.2.5 计算器宿主视图&E91

50.2.6 计算机宿主适配器&E91

50.2.7 计算器宿主&E93

50.2.8 其他插件&E97

50.3 小结&E97

第51章 Enterprise Services&E99

51.1 使用Enterprise Services&E99

51.1.1 简史&E100

51.1.2 使用Enterprise Services的场合&E100

51.1.3 重要功能&E101

51.2 创建简单的COM+应用程序&E103

51.2.1 ServicedComponent类&E103

51.2.2 程序集的属性&E103

51.2.3 创建组件&E104

51.3 部署&E106

51.3.1 自动部署&E106

51.3.2 手工部署&E106

51.3.3 创建安装软件包&E106

51.4 组件服务管理器&E107

51.5 客户端应用程序&E108

51.6 事务&E109

51.6.1 事务的特性&E109

51.6.2 事务的结果&E110

51.7 示例应用程序&E111

51.7.1 实体类&E111

51.7.2 OrderControl组件&E113

51.7.3 OrderData组件&E114

51.7.4 OrderLineData组件&E116

51.7.5 客户端应用程序&E117

51.8 集成WCF和Enterprise Services&E118

51.8.1 WCF服务外观&E118

51.8.2 客户端应用程序&E122

51.9 小结&E123

第52章 目录服务&E125

52.1 Active Directory的体系结构&E126

52.1.1 Active Directory的功能&E126

52.1.2 Active Directory的概念&E126

52.1.3 Active Directory数据的特征&E129

52.1.4 指定架构&E130

52.2 Active Directory的管理工具&E131

52.2.1 Active Directory Users and Computers工具&E131

52.2.2 ADSI Edit工具&E132

52.3 Active Directory编程&E133

52.3.1 System.DirectoryServices名称空间中的类&E134

52.3.2 绑定到Directory Services&E134

52.3.3 获取目录项&E138

52.3.4 对象集合&E140

52.3.5 缓存&E141

52.3.6 创建新对象&E141

52.3.7 更新目录项&E142

52.3.8 访问本地ADSI对象&E143

52.3.9 在Active Directory中搜索&E144

52.4 搜索用户对象&E148

52.4.1 用户界面&E148

52.4.2 获取架构命名上下文&E149

52.4.3 获取User类的属性名&E149

52.4.4 搜索用户对象&E150

52.5 账户管理&E152

52.5.1 显示用户信息&E152

52.5.2 创建用户&E153

52.5.3 重置密码&E153

52.5.4 创建组&E154

52.5.5 在组中添加用户&E154

52.5.6 查找用户&E154

52.6 DSML&E155

52.6.1 System.DirectoryServices.Protocols名称空间中的类&E156

52.6.2 用DSML搜索Active Directory对象&E156

52.7 小结&E157

第53章 C#、Visual Basic、C++/CLI和F#&E159

53.1 名称空间&E160

53.2 定义类型&E161

53.2.1 引用类型&E161

53.2.2 值类型&E162

53.2.3 类型推断&E163

53.2.4 接口&E164

53.2.5 枚举&E165

53.3 方法&E166

53.3.1 方法的参数和返回类型&E166

53.3.2 参数修饰符&E167

53.3.3 构造函数&E168

53.3.4 属性&E170

53.3.5 对象初始值设定项&E171

53.3.6 扩展方法&E171

53.4 静态成员&E172

53.5 数组&E173

53.6 控制语句&E174

53.6.1 if语句&E174

53.6.2 条件操作符&E174

53.6.3 switch语句&E175

53.7 循环&E176

53.7.1 for语句&E176

53.7.2 while和do...while语句&E177

53.7.3 foreach语句&E178

53.8 异常处理&E178

53.9 继承&E180

53.9.1 访问修饰符&E180

53.9.2 关键字&E181

53.10 资源管理&E183

53.10.1 IDisposable接口的实现&E183

53.10.2 using语句&E184

53.10.3 重写Finalize()方法&E184

53.11 委托&E186

53.12 事件&E188

53.13 泛型&E190

53.14 LINQ查询&E192

53.15 C++/CLI混合本地代码和托管代码&E192

53.16 C#的特殊功能&E193

53.17 小结&E194

第54章 .NET Remoting&E195

54.1 使用.NET Remoting的原因&E195

54.2 .NET Remoting术语详解&E197

54.2.1 客户端通信&E198

54.2.2 服务器端通信&E199

54.3 上下文&E199

54.3.1 激活&E200

54.3.2 特性和属性&E200

54.3.3 上下文之间的通信&E201

54.4 远程对象、客户端和服务器&E201

54.4.1 远程对象&E201

54.4.2 简单的服务器应用程序&E202

54.4.3 简单的客户端应用程序&E203

54.5 .NET Remoting体系结构&E204

54.5.1 信道&E204

54.5.2 格式化程序&E207

54.5.3 ChannelServices和RemotingConfiguration&E207

54.5.4 对象的激活&E209

54.5.5 消息接收器&E212

54.5.6 在远程方法中传递对象&E213

54.5.7 生命周期管理&E216

54.6 配置文件&E218

54.6.1 知名对象的服务器配置&E220

54.6.2 知名对象的客户端配置&E220

54.6.3 客户端激活的对象的服务器配置&E221

54.6.4 客户端激活的对象的客户端配置&E222

54.6.5 使用配置文件的服务器代码&E222

54.6.6 使用配置文件的客户端代码&E223

54.6.7 客户端信道的延迟加载&E223

54.6.8 调试配置&E224

54.6.9 配置文件中的生命周期服务&E224

54.6.10 格式化程序提供程序&E225

54.7 在ASP.NET中驻留远程服务器&E225

54.8 类、接口和Soapsuds&E227

54.8.1 接口&E227

54.8.2 Soapsuds&E227

54.9 异步远程调用&E228

54.9.1 使用委托和.NET Remoting&E228

54.9.2 OneWay特性&E229

54.10 .NET Remoting的安全性&E229

54.11 远程处理和事件&E230

54.11.1 远程对象&E231

54.11.2 事件参数&E232

54.11.3 服务器&E233

54.11.4 服务器配置文件&E233

54.11.5 事件接收器&E234

54.11.6 客户端&E234

54.11.7 客户端配置文件&E235

54.11.8 运行程序&E236

54.12 调用上下文&E236

54.13 小结&E237

第55章 Web服务和ASP.NET&E239

55.1 SOAP&E240

55.2 WSDL&E241

55.3 Web服务&E242

55.3.1 提供Web服务&E242

55.3.2 使用Web服务&E246

55.4 扩充事件登记示例&E248

55.4.1 事件登记Web服务&E249

55.4.2 事件登记客户端&E253

55.5 使用SOAP标题交换数据&E256

55.6 小结&E261

第56章 LINQ to SQL&E263

56.1 LINQ to SQL和Visual Studio 2010&E264

56.1.1 调用Products表&E265

56.1.2 添加LINQ to SQL类&E265

56.1.3 O/R设计器概述&E266

56.1.4 创建Product对象&E267

56.2 对象如何映射到LINQ对象上&E269

56.2.1 DataContext对象&E270

56.2.2 Table〈TEntity〉对象&E274

56.3 脱离O/R设计器工作&E274

56.3.1 创建自己的自定义对象&E274

56.3.2 通过自定义对象和LINQ查询&E275

56.3.3 通过查询限制所调用的列&E276

56.3.4 使用列名&E277

56.3.5 创建自己的DataContext对象&E278

56.4 自定义对象和O/R设计器&E279

56.5 查询数据库&E280

56.5.1 使用查询表达式&E280

56.5.2 查询表达式&E281

56.5.3 使用表达式筛选&E282

56.5.4 执行连接&E282

56.5.5 分组项&E284

56.6 存储过程&E285

56.7 小结&E286

第57章 WPF 3.0&E287

57.1 Hello World示例&E287

57.2 活动&E288

57.2.1 IfElseActivity&E289

57.2.2 ParallelActivity&E290

57.2.3 CallExternalMethod Activity&E291

57.2.4 DelayActivity&E291

57.2.5 ListenActivity&E292

57.2.6 活动执行模型&E293

57.3 自定义活动&E293

57.3.1 活动的验证&E295

57.3.2 主题和设计器&E296

57.3.3 ActivityToolboxItem和图标&E297

57.3.4 自定义复合活动&E299

57.4 工作流&E305

57.4.1 顺序工作流&E305

57.4.2 状态机工作流&E305

57.4.3 给工作流传递参数&E307

57.4.4 从工作流中返回结果&E308

57.4.5 将参数绑定到活动上&E309

57.5 工作流运行库&E310

57.6 工作流服务&E310

57.6.1 持久性服务&E312

57.6.2 跟踪服务&E313

57.6.3 自定义服务&E315

57.7 与WCF集成&E316

57.8 驻留工作流&E318

57.9 工作流设计器&E319

57.10 从WF 3.X迁移到WF4&E320

57.10.1 把活动代码提取到服务中&E320

57.10.2 删除代码活动&E320

57.10.3 同时运行WF 3.x和4&E321

57.10.4 考虑把状态机迁移到流程图上&E321

57.11 小结&E321

热门推荐