图书介绍

C#高级编程 C# 5.0 & .NET 4.5.1 第9版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

C#高级编程 C# 5.0 & .NET 4.5.1 第9版
  • (美)内格尔等著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302380023
  • 出版时间:2014
  • 标注页数:1520页
  • 文件大小:84MB
  • 文件页数:536页
  • 主题词:C语言-程序设计

PDF下载


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

下载说明

C#高级编程 C# 5.0 & .NET 4.5.1 第9版PDF格式电子书版下载

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

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

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

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

图书目录

第Ⅰ部分 C#语言2

第1章 NET体系结构2

1.1 C#与.NET的关系2

1.2 公共语言运行库3

1.2.1 平台无关性3

1.2.2 提高性能3

1.2.3 语言的互操作性4

1.3 中间语言6

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

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

1.3.3 强数据类型化7

1.3.4 通过异常处理错误12

1.3.5 特性的使用12

1.4 程序集12

1.4.1 私有程序集13

1.4.2 共享程序集13

1.4.3 反射14

1.4.4 并行编程14

1.4.5 异步编程14

1.5 .NET Framework类15

1.6 名称空间15

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

1.7.1 创建ASP.NET应用程序16

1.7.2 使用WPF17

1.7.3 windowsStore应用程序18

1.7.4 Windows服务18

1.7.5 WCF18

1.7.6 Windows WF19

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

1.9 小结20

第2章 核心C#22

2.1 C#基础23

2.2 第一个C#程序23

2.2.1 代码23

2.2.2 编译并运行程序23

2.2.3 详细介绍24

2.3 变量26

2.3.1 变量的初始化26

2.3.2 类型推断27

2.3.3 变量的作用域28

2.3.4 常量30

2.4 预定义数据类型31

2.4.1 值类型和引用类型31

2.4.2 CTS类型32

2.4.3 预定义的值类型32

2.4.4 预定义的引用类型35

2.5 流控制37

2.5.1 条件语句37

2.5.2 循环40

2.5.3 跳转语句43

2.6 枚举44

2.7 名称空间46

2.7.1 using语句47

2.7.2 名称空间的别名48

2.8 Main()方法48

2.8.1 多个Main()方法49

2.8.2 给Main()方法传递参数50

2.9 有关编译C#文件的更多内容50

2.10 控制台I/O52

2.11 使用注释54

2.11.1 源文件中的内部注释54

2.11.2 XML文档54

2.12 C#预处理器指令56

2.12.1 #define和#undef57

2.12.2 #if、#elif、#else和#endif57

2.12.3 #warning和#error58

2.12.4 #region和#endregion58

2.12.5 #line59

2.12.6 #pragma59

2.13 C#编程规则59

2.13.1 关于标识符的规则59

2.13.2 用法约定60

2.14 小结66

第3章 对象和类型67

3.1 创建及使用类67

3.2 类和结构68

3.3 类69

3.3.1 数据成员69

3.3.2 函数成员69

3.3.3 只读字段81

3.4 匿名类型82

3.5 结构82

3.5.1 结构是值类型84

3.5.2 结构和继承84

3.5.3 结构的构造函数85

3.6 弱引用85

3.7 部分类86

3.8 静态类87

3.9 Object类88

3.9.1 System.Objcct()方法88

3.9.2 ToString()方法89

3.10 扩展方法90

3.11 小结91

第4章 继承92

4.1 继承92

4.2 继承的类型92

4.2.1 实现继承和接口继承92

4.2.2 多重继承93

4.2.3 结构和类93

4.3 实现继承93

4.3.1 虚方法94

4.3.2 隐藏方法95

4.3.3 调用函数的基类版本96

4.3.4 抽象类和抽象函数97

4.3.5 密封类和密封方法97

4.3.6 派生类的构造函数98

4.4 修饰符102

4.4.1 可见性修饰符103

4.4.2 其他修饰符103

4.5 接口104

4.5.1 定义和实现接口105

4.5.2 派生的接口108

4.6 小结109

第5章 泛型110

5.1 泛型概述110

5.1.1 性能111

5.1.2 类型安全112

5.1.3 二进制代码的重用112

5.1.4 代码的扩展113

5.1.5 命名约定113

5.2 创建泛型类113

5.3 泛型类的功能117

5.3.1 默认值118

5.3.2 约束118

5.3.3 继承120

5.3.4 静态成员121

5.4 泛型接口122

5.4.1 协变和抗变122

5.4.2 泛型接口的协变123

5.4.3 泛型接口的抗变125

5.5 泛型结构125

5.6 泛型方法128

5.6.1 泛型方法示例128

5.6.2 带约束的泛型方法129

5.6.3 带委托的泛型方法130

5.6.4 泛型方法规范131

5.7 小结132

第6章 数组133

6.1 同一类型和不同类型的多个对象133

6.2 简单数组134

6.2.1 数组的声明134

6.2.2 数组的初始化134

6.2.3 访问数组元素135

6.2.4 使用引用类型136

6.3 多维数组137

6.4 锯齿数组138

6.5 Array类139

6.5.1 创建数组139

6.5.2 复制数组140

6.5.3 排序141

6.6 数组作为参数144

6.6.1 数组协变144

6.6.2 ArraySegment<T>144

6.7 枚举145

6.7.1 IEnumerator接口146

6.7.2 foreach语句146

6.7.3 yield语句147

6.8 元组152

6.9 结构比较152

6.10 小结155

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

7.1 运算符和类型转换156

7.2 运算符156

7.2.1 运算符的简化操作158

7.2.2 运算符的优先级162

7.3 类型的安全性163

7.3.1 类型转换163

7.3.2 装箱和拆箱167

7.4 比较对象的相等性168

7.4.1 比较引用类型的相等性168

7.4.2 比较值类型的相等性169

7.5 运算符重载169

7.5.1 运算符的工作方式170

7.5.2 运算符重载的示例:Vector结构171

7.6 用户定义的类型强制转换178

7.6.1 实现用户定义的类型强制转换179

7.6.2 多重类型强制转换185

7.7 小结188

第8章 委托、lambda表达式和事件189

8.1 引用方法189

8.2 委托190

8.2.1 声明委托190

8.2.2 使用委托191

8.2.3 简单的委托示例194

8.2.4 Action〈T〉和Func〈T〉委托196

8.2.5 BubbleSorter示例197

8.2.6 多播委托199

8.2.7 匿名方法203

8.3 lambda表达式204

8.3.1 参数204

8.3.2 多行代码205

8.3.3 闭包205

8.3.4 使用foreach语句的闭包206

8.4 事件207

8.4.1 事件发布程序207

8.4.2 事件侦听器209

8.4.3 弱事件210

8.5 小结214

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

9.1 System.String类216

9.1.1 创建字符串217

9.1.2 StringBuilder成员220

9.1.3 格式字符串221

9.2 正则表达式227

9.2.1 正则表达式概述227

9.2.2 RegularExpressionsPlayaround示例228

9.2.3 显示结果230

9.2.4 匹配、组合和捕获232

9.3 小结233

第10章 集合234

10.1 概述235

10.2 集合接口和类型235

10.3 列表236

10.3.1 创建列表238

10.3.2 只读集合247

10.4 队列247

10.5 栈251

10.6 链表252

10.7 有序列表258

10.8 字典259

10.8.1 键的类型260

10.8.2 字典示例261

10.8.3 Lookup类265

10.8.4 有序字典265

10.9 集266

10.10 可观察的集合268

10.11 位数组269

10.11.1 BitArray类270

10.11.2 BitVector32结构272

10.12 不变的集合274

10.13 并发集合276

10.13.1 创建管道277

10.13.2 使用BlockingCollection279

10.13.3 使用ConcurrentDictionary281

10.13.4 完成管道282

10.14 性能284

10.15 小结285

第11章 LINQ286

11.1 LINQ概述286

11.1.1 列表和实体287

11.1.2 LINQ查询290

11.1.3 扩展方法291

11.1.4 推迟查询的执行292

11.2 标准的查询操作符294

11.2.1 筛选296

11.2.2 用索引筛选296

11.2.3 类型筛选297

11.2.4 复合的from子句297

11.2.5 排序298

11.2.6 分组299

11.2.7 对嵌套的对象分组300

11.2.8 内连接301

11.2.9 左外连接303

11.2.10 组连接303

11.2.11 集合操作306

11.2.12 合并308

11.2.13 分区309

11.2.14 聚合操作符310

11.2.15 转换操作符311

11.2.16 生成操作符312

11.3 并行LINQ313

11.3.1 并行查询313

11.3.2 分区器314

11.3.3 取消314

11.4 表达式树315

11.5 LINQ提供程序318

11.6 小结319

第12章 动态语言扩展320

12.1 DLR320

12.2 dynamic类型321

12.3 包含DLR ScriptRuntime325

12.4 DynamicObject和ExpandoObject328

12.4.1 DynamicObject328

12.4.2 ExpandoObject330

12.5 小结331

第13章 异步编程332

13.1 异步编程的重要性332

13.2 异步模式333

13.2.1 同步调用340

13.2.2 异步模式341

13.2.3 基于事件的异步模式342

13.2.4 基于任务的异步模式343

13.3 异步编程的基础345

13.3.1 创建任务345

13.3.2 调用异步方法346

13.3.3 延续任务346

13.3.4 同步上下文347

13.3.5 使用多个异步方法347

13.3.6 转换异步模式348

13.4 错误处理349

13.4.1 异步方法的异常处理350

13.4.2 多个异步方法的异常处理350

13.4.3 使用AggregateException信息351

13.5 取消352

13.5.1 开始取消任务352

13.5.2 使用框架特性取消任务352

13.5.3 取消自定义任务353

13.6 小结353

第14章 内存管理和指针354

14.1 内存管理354

14.2 后台内存管理354

14.2.1 值数据类型355

14.2.2 引用数据类型356

14.2.3 垃圾回收358

14.3 释放非托管的资源360

14.3.1 析构函数360

14.3.2 IDisposable接口361

14.3.3 实现Disposable接口和析构函数362

14.4 不安全的代码364

14.4.1 用指针直接访问内存364

14.4.2 指针示例:PointerPlayground373

14.4.3 使用指针优化性能377

14.5 小结380

第15章 反射381

15.1 在运行期间处理和检查代码381

15.2 自定义特性382

15.2.1 编写自定义特性382

15.2.2 自定义特性示例:WhatsNewAttributes386

15.3 反射388

15.3.1 System.Type类388

15.3.2 TypeView示例391

15.3.3 Assembly类393

15.3.4 完成WhatsNewAttributes示例394

15.4 小结397

第16章 错误和异常398

16.1 简介398

16.2 异常类399

16.3 捕获异常400

16.3.1 实现多个catch块402

16.3.2 在其他代码中捕获异常406

16.3.3 System.Exception属性406

16.3.4 没有处理异常时所发生的情况406

16.3.5 嵌套的try块407

16.4 用户定义的异常类409

16.4.1 捕获用户定义的异常410

16.4.2 抛出用户定义的异常411

16.4.3 定义用户定义的异常类414

16.5 调用者信息416

16.6 小结417

第Ⅱ部分 Visual Studio419

第17章 Visual Studio 2013419

17.1 使用Visual Studio 2013419

17.1.1 项目文件的改进421

17.1.2 Visual Studio的版本422

17.1.3 Visual Studio设置423

17.2 创建项目423

17.2.1 面向多个版本的.NET Framework424

17.2.2 选择项目类型426

17.3 浏览并编写项目429

17.3.1 Solution Explorer429

17.3.2 使用代码编辑器435

17.3.3 学习和理解其他窗口437

17.3.4 排列窗口441

17.4 构建项目441

17.4.1 构建、编译和生成441

17.4.2 调试版本和发布版本442

17.4.3 选择配置443

17.4.4 编辑配置444

17.5 调试代码445

17.5.1 设置断点445

17.5.2 使用数据提示和调试器可视化工具446

17.5.3 监视和修改变量447

17.5.4 异常448

17.5.5 多线程449

17.5.6 IntelliTrace449

17.6 重构工具450

17.7 体系结构工具451

17.7.1 依赖项关系图452

17.7.2 层关系图453

17.8 分析应用程序454

17.8.1 代码地图454

17.8.2 序列图454

17.8.3 探查器455

17.8.4 Concurrency Visualizer457

17.8.5 Code Analysis458

17.8.6 Code Metrics459

17.9 单元测试459

17.9.1 创建单元测试459

17.9.2 运行单元测试460

17.9.3 预期异常462

17.9.4 测试全部代码路径462

17.9.5 外部依赖463

17.9.6 Fakes Framework466

17.10 Windows Store应用程序、WCF、WF等467

17.10.1 使用Visual Studio生成WCF应用程序467

17.10.2 使用Visual Studio生成WF应用程序468

17.10.3 使用Visual Studio 2013生成Windows Store应用程序469

17.11 小结470

第18章 部署471

18.1 部署是应用程序生命周期的一部分471

18.2 部署的规划472

18.2.1 部署选项472

18.2.2 部署要求472

18.2.3 部署.NET运行库473

18.3 传统的部署选项473

18.3.1 xcopy部署474

18.3.2 xcopy和Web应用程序475

18.3.3 Windows Installer475

18.4 ClickOnce475

18.4.1 ClickOnce操作476

18.4.2 发布ClickOnce应用程序476

18.4.3 ClickOnce设置477

18.4.4 ClickOnce文件的应用程序缓存479

18.4.5 应用程序的安装479

18.4.6 ClickOnce部署API480

18.5 Web部署481

18.5.1 Web应用程序481

18.5.2 配置文件482

18.5.3 创建Web Deploy包482

18.6 Windows Store应用程序483

18.6.1 创建应用程序包484

18.6.2 Windows App Certification Kit485

18.6.3 旁加载486

18.6.4 Windows部署API486

18.7 小结488

第Ⅲ部分 基础490

第19章 程序集490

19.1 程序集的含义490

19.1.1 程序集的功能491

19.1.2 程序集的结构492

19.1.3 程序集清单492

19.1.4 名称空间、程序集和组件493

19.1.5 私有程序集和共享程序集493

19.1.6 附属程序集493

19.1.7 查看程序集493

19.2 构建程序集494

19.2.1 创建模块和程序集494

19.2.2 程序集的特性495

19.2.3 创建和动态加载程序集497

19.3 应用程序域500

19.4 共享程序集504

19.4.1 强名504

19.4.2 使用强名获得完整性505

19.4.3 全局程序集缓存506

19.4.4 创建共享程序集506

19.4.5 创建强名507

19.4.6 安装共享程序集508

19.4.7 使用共享程序集508

19.4.8 程序集的延迟签名509

19.4.9 引用510

19.4.10 本机映像生成器511

19.5 配置.NET应用程序512

19.5.1 配置类别512

19.5.2 绑定程序集513

19.6 版本问题514

19.6.1 版本号515

19.6.2 通过编程方式获取版本515

19.6.3 绑定到程序集版本516

19.6.4 发行者策略文件517

19.6.5 运行库的版本518

19.7 在不同的技术之间共享程序集519

19.7.1 共享源代码519

19.7.2 可移植类库520

19.8 小结521

第20章 诊断522

20.1 诊断概述522

20.2 代码协定523

20.2.1 前提条件524

20.2.2 后置条件525

20.2.3 不变量526

20.2.4 纯粹性527

20.2.5 接口的协定527

20.2.6 简写528

20.2.7 协定和遗留代码529

20.3 跟踪529

20.3.1 跟踪源530

20.3.2 跟踪开关532

20.3.3 跟踪侦听器532

20.3.4 筛选器534

20.3.5 相关性535

20.3.6 使用ETW进行跟踪539

20.3.7 使用EventSource539

20.3.8 使用EventSource进行高级跟踪541

20.4 事件日志543

20.4.1 事件日志体系结构543

20.4.2 事件日志类544

20.4.3 创建事件源546

20.4.4 写入事件日志546

20.4.5 资源文件547

20.5 性能监视551

20.5.1 性能监视类551

20.5.2 性能计数器生成器551

20.5.3 添加PerformanceCounter组件554

20.5.4 perfmon.exe556

20.6 小结557

第21章 任务、线程和同步558

21.1 概述558

21.2 Parallel类560

21.2.1 用Parallel.For()方法循环560

21.2.2 使用Parallel.ForEach()方法循环563

21.2.3 通过Parallel.Invoke()方法调用多个方法564

21.3 任务564

21.3.1 启动任务565

21.3.2 Future——任务的结果567

21.3.3 连续的任务568

21.3.4 任务层次结构569

21.4 取消架构570

21.4.1 Parallel.For()方法的取消570

21.4.2 任务的取消571

21.5 线程池572

21.6 Thread类574

21.6.1 给线程传递数据575

21.6.2 后台线程576

21.6.3 线程的优先级577

21.6.4 控制线程578

21.7 线程问题578

21.7.1 争用条件578

21.7.2 死锁581

21.8 同步583

21.8.1 lock语句和线程安全583

21.8.2 Interlocked类588

21.8.3 Monitor类589

21.8.4 SpinLock结构590

21.8.5 WaitHandle基类591

21.8.6 Mutex类591

21.8.7 Semaphore类593

21.8.8 Events类595

21.8.9 Barrier类598

21.8.10 ReaderWriterLockSlim类600

21.9 Timer类602

21.10 数据流604

21.10.1 使用动作块604

21.10.2 源和目标数据块605

21.10.3 连接块606

21.11 小结608

第22章 安全性609

22.1 概述609

22.2 身份验证和授权610

22.2.1 标识和Principal610

22.2.2 角色611

22.2.3 声明基于角色的安全性612

22.2.4 声称613

22.2.5 客户端应用程序服务614

22.3 加密619

22.3.1 签名621

22.3.2 交换密钥和安全传输622

22.4 资源的访问控制625

22.5 代码访问安全性628

22.5.1 第2级安全透明性628

22.5.2 权限629

22.6 使用证书发布代码634

22.7 小结635

第23章 互操作636

23.1 .NET和COM技术636

23.1.1 元数据637

23.1.2 释放内存638

23.1.3 接口638

23.1.4 方法绑定639

23.1.5 数据类型640

23.1.6 注册640

23.1.7 线程640

23.1.8 错误处理641

23.1.9 事件642

23.1.10 封送642

23.2 在.NET客户端中使用COM组件643

23.2.1 创建COM组件643

23.2.2 创建运行库可调用包装649

23.2.3 使用RCW650

23.2.4 通过动态语言扩展使用COM服务651

23.2.5 线程问题652

23.2.6 添加连接点652

23.3 在COM客户端中使用.NET组件654

23.3.1 COM可调用包装655

23.3.2 创建.NET组件655

23.3.3 创建类型库656

23.3.4 COM互操作特性658

23.3.5 COM注册660

23.3.6 创建COM客户端应用程序661

23.3.7 添加连接点662

23.3.8 使用sink对象创建客户端663

23.4 平台调用665

23.5 小结669

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

24.1 文件和注册表670

24.2 管理文件系统671

24.2.1 表示文件和文件夹的.NET类672

24.2.2 Path类674

24.2.3 FileProperties示例674

24.3 移动、复制和删除文件679

24.3.1 FilePropertiesAndMovement示例679

24.3.2 FilePropertiesAndMovement示例的代码680

24.4 读写文件682

24.4.1 读取文件683

24.4.2 写入文件684

24.4.3 流685

24.4.4 缓存的流687

24.4.5 使用FileStream类读写二进制文件687

24.4.6 读写文本文件692

24.5 映射内存的文件698

24.6 读取驱动器信息699

24.7 文件的安全性701

24.7.1 从文件中读取ACL701

24.7.2 从目录中读取ACL702

24.7.3 添加和删除文件中的ACL项704

24.8 读写注册表705

24.8.1 注册表706

24.8.2 .NET注册表类708

24.9 读写独立存储器710

24.10 小结714

第25章 事务处理715

25.1 简介715

25.2 概述716

25.2.1 事务处理阶段716

25.2.2 ACID属性717

25.3 数据库和实体类717

25.4 传统的事务719

25.4.1 ADO.NET事务719

25.4.2 System.EnterpriseServices721

25.5 System.Transactions722

25.5.1 可提交的事务723

25.5.2 事务处理的升级725

25.5.3 依赖事务727

25.5.4 环境事务729

25.6 隔离级别736

25.7 自定义资源管理器737

25.8 文件系统事务743

25.9 小结747

第26章 网络748

26.1 网络748

26.2 HttpClient类749

26.2.1 异步调用Web服务749

26.2.2 标题750

26.2.3 HttpContent752

26.2.4 HttpMessageHandler752

26.3 把输出结果显示为HTML页面753

26.3.1 从应用程序中进行简单的Web浏览754

26.3.2 启动Internet Explorer实例755

26.3.3 给应用程序提供更多IE类型的功能756

26.3.4 使用WebBrowser控件打印761

26.3.5 显示所请求页面的代码761

26.3.6 WebRequest类和WebResponse类的层次结构763

26.4 实用工具类763

26.4.1 URI763

26.4.2 IP地址和DNS名称764

26.5 较低层的协议766

26.5.1 使用SmtpClient767

26.5.2 使用TCP类769

26.5.3 TcpSend和TcpReceive示例769

26.5.4 TCP和UDP771

26.5.5 UDP类771

26.5.6 Socket类772

26.5.7 WebSocket776

26.6 小结779

第27章 Windows服务780

27.1 Windows服务780

27.2 Windows服务的体系结构781

27.2.1 服务程序782

27.2.2 服务控制程序783

27.2.3 服务配置程序783

27.2.4 Windows服务的类783

27.3 创建Windows服务程序784

27.3.1 创建服务的核心功能784

27.3.2 QuoteClient示例787

27.3.3 Windows服务程序791

27 3.4 线程化和服务795

27.3.5 服务的安装795

27.3.6 安装程序796

27.4 Windows服务的监控和控制800

27.4.1 MMC管理单元800

27.4.2 net.exe实用程序801

27.4.3 se.exe实用程序801

27.4.4 Visual Studio Server Explorer801

27.4.5 编写自定义ServiceController类802

27.5 故障排除和事件日志809

27.6 小结810

第28章 本地化811

28.1 全球市场811

28.2 System.Globalization名称空间812

28.2.1 Unicode问题812

28.2.2 区域性和区域813

28.2.3 使用区域性817

28.2.4 排序823

28.3 资源824

28.3.1 创建资源文件824

28.3.2 资源文件生成器824

28.3.3 ResourceWriter825

28.3.4 使用资源文件826

28.3.5 System.Resources名称空间830

28.4 使用Visual Studio的Windows Forms本地化830

28.4.1 通过编程方式修改区域性835

28.4.2 使用自定义资源消息836

28.4.3 资源的自动回退837

28.4.4 外包翻译837

28.5 ASP.NET Web Forms的本地化838

28.6 用WPF本地化839

28.6.1 用于WPF的.NET资源840

28.6.2 XAML资源字典841

28.7 自定义资源读取器845

28.7.1 创建DatabaseResourceReader类845

28.7.2 创建DatabaseResourceSet类847

28.7.3 创建DatabaseResourceManager类847

28.7.4 DatabaseResourceReader的客户端应用程序848

28.8 创建自定义区域性848

28.9 用Windows Store应用程序进行本地化850

28.9.1 使用资源851

28.9.2 使用多语言应用程序工具集进行本地化851

28.10 小结852

第29章 核心XAML853

29.1 XAML的作用853

29.2 XAML概述854

29.2.1 元素如何映射到.NET对象上854

29.2.2 使用自定义.NET类856

29.2.3 把属性用作特性857

29.2.4 把属性用作元素857

29.2.5 基本的.NET类型858

29.2.6 使用集合和XAML858

29.2.7 用XAML代码调用构造函数859

29.3 依赖属性859

29.3.1 创建依赖属性860

29.3.2 强制值回调861

29.3.3 值变更回调和事件862

29.3.4 事件的冒泡和隧道863

29.4 附加属性866

29.5 标记扩展868

29.6 创建自定义标记扩展869

29.7 XAML定义的标记扩展870

29.8 读写XAML871

29.9 小结872

第30章 Managed Extensibility Framework873

30.1 概述873

30.2 MEF的体系结构874

30.2.1 使用属性的MEF875

30.2.2 基于约定的部件注册880

30.3 定义协定882

30.4 导出部件883

30.4.1 创建部件883

30.4.2 导出属性和方法888

30.4.3 导出元数据890

30.4.4 使用元数据进行惰性加载892

30.5 导入部件893

30.5.1 导入连接895

30.5.2 部件的惰性加载897

30.5.3 用惰性实例化的部件读取元数据898

30.6 容器和出口提供程序900

30.7 类别902

30.8 小结904

第31章 Windows运行库905

31.1 概述905

31.1.1 .NET与Windows运行库的比较906

31.1.2 名称空间906

31.1.3 元数据908

31.1.4 语言投射909

31.1.5 Windows运行库中的类型911

31.2 Windows运行库组件912

31.2.1 集合912

31.2.2 流913

31.2.3 委托与事件914

31.2.4 异步操作914

31.3 Windows Store应用程序915

31.4 应用程序的生命周期917

31.4.1 应用程序的执行状态918

31.4.2 Suspension Manager919

31.4.3 导航状态921

31.4.4 测试暂停922

31.4.5 页面状态922

31.5 应用程序的设置924

31.6 小结927

第Ⅳ部分 数据929

第32章 核心ADO.NET929

32.1 ADO.NET概述929

32.1.1 名称空间930

32.1.2 共享类931

32.1.3 数据库专用类931

32.2 使用数据库连接932

32.2.1 管理连接字符串933

32.2.2 高效地使用连接934

32.2.3 事务936

32.3 命令938

32.3.1 执行命令938

32.3.2 调用存储过程941

32.4 快速数据访问:数据读取器944

32.5 异步数据访问:使用Task和await946

32.6 管理数据和关系:DataSet类948

32.6.1 数据表949

32.6.2 数据列950

32.6.3 数据关系955

32.6.4 数据约束956

32.7 XML架构:用XSD生成代码958

32.8 填充DataSet类965

32.8.1 用数据适配器填充DataSet965

32.8.2 从XML中填充DataSet类966

32.9 持久化DataSet类的修改966

32.9.1 通过数据适配器进行更新966

32.9.2 写入XML输出结果969

32.10 使用ADO.NET970

32.10.1 分层开发970

32.10.2 生成SQL Server的键972

32.10.3 命名约定974

32.11 小结975

第33章 ADO.NET Entity Framework976

33.1 用Entity Framework编程976

33.2 Entity Framework映射978

33.2.1 逻辑层978

33.2.2 概念层980

33.2.3 映射层982

33.2.4 连接字符串983

33.3 实体983

33.4 对象上下文984

33.5 关系986

33.5.1 一个层次结构一个表986

33.5.2 一种类型一个表988

33.5.3 懒惰加载、延迟加载和预先加载989

33.6 查询数据991

33.6.1 Entity SQL991

33.6.2 使用DbSqlQuery992

33.6.3 LINQ to Entities993

33.7 把数据写入数据库994

33.7.1 对象跟踪994

33.7.2 改变信息995

33.7.3 附加和分离实体996

33.7.4 使用最后一个更改操作写入实体的更改997

33.7.5 使用第一个更改操作写入实体的更改997

33.7.6 写入实体的更改并处理冲突998

33.8 使用Code First编程模型999

33.8.1 定义实体类型999

33.8.2 创建数据上下文1000

33.8.3 创建数据库,存储实体1000

33.8.4 数据库1001

33.8.5 查询数据1001

33.8.6 定制数据库的生成1002

33.8.7 数据库的自动填充1003

33.8.8 连接的弹性1004

33.8.9 架构的迁移1005

33.9 小结1007

第34章 处理XML1008

34.1 XML1008

34.2 .NET支持的XML标准1009

34.3 System.Xml名称空间1009

34.4 使用System.Xml类1010

34.5 读写流格式的XML1011

34.5.1 使用XmlReader类1011

34.5.2 使用XmlReader类进行验证1015

34.5.3 使用XmlWriter类1017

34.6 在.NET中使用DOM1018

34.7 使用XPathNavigator类1023

34.7.1 System.Xml.XPath名称空间1023

34.7.2 System.Xml.Xsl名称空间1028

34.7.3 调试XSLT1032

34.8 XML和ADO.NET1034

34.8.1 将ADO.NET数据转换为XML文档1034

34.8.2 把XML文档转换为ADO.NET数据1040

34.9 在XML中序列化对象1041

34.10 LINQ to XML和.NET1051

34.11 使用不同的XML对象1051

34.11.1 XDocument对象1051

34.11.2 XElement对象1052

34.11.3 XNamespace对象1053

34.11.4 XComment对象1055

34.11.5 XAttribute对象1056

34.12 使用LINQ查询XML文档1057

34.12.1 查询静态的XML文档1057

34.12.2 查询动态的XML文档1058

34.13 XML文档的更多查询技术1060

34.13.1 读取XML文档1060

34.13.2 写入XML文档1061

34.14 小结1063

第Ⅴ部分 显示1065

第35章 核心WPF1065

35.1 理解WPF1066

35.1.1 名称空间1066

35.1.2 类层次结构1067

35.2 形状1069

35.3 几何图形1070

35.4 变换1072

35.5 画笔1073

35.5.1 SolidColorBrush1073

35.5.2 LinearGradientBrush1074

35.5.3 RadialGradientBrush1074

35.5.4 DrawingBrush1075

35.5.5 ImageBrush1076

35.5.6 VisualBrush1076

35.6 控件1077

35.6.1 简单控件1077

35.6.2 内容控件1078

35.6.3 带标题的内容控件1079

35.6.4 项控件1081

35.6.5 带标题的项控件1081

35.6.6 修饰1081

35.7 布局1082

35.7.1 StackPanel1082

35.7.2 WrapPanel1083

35.7.3 Canvas1084

35.7.4 Dock.Panel1084

35.7.5 Grid1085

35.8 样式和资源1086

35.8.1 样式1087

35.8.2 资源1088

35.8.3 系统资源1090

35.8.4 从代码中访问资源1090

35.8.5 动态资源1090

35.8.6 资源字典1091

35.9 触发器1092

35.9.1 属性触发器1093

35.9.2 多触发器1094

35.9.3 数据触发器1095

35.10 模板1096

35.10.1 控件模板1097

35.10.2 数据模板1099

35.10.3 样式化列表框1101

35.10.4 ItemTemplate1102

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

35.11 动画1105

35.11.1 时间轴1105

35.11.2 非线性动画1108

35.11.3 事件触发器1109

35.11.4 关键帧动画1111

35.12 可见状态管理器1112

35.12.1 可见的状态1113

35.12.2 变换1115

35.13 3-D1116

35.13.1 模型1116

35.13.2 照相机1118

35.13.3 光线1118

35.13.4 旋转1118

35.14 小结1119

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

36.1 概述1120

36.2 菜单和功能区控件1121

36.2.1 菜单控件1121

36.2.2 功能区控件1122

36.3 Commanding1124

36.3.1 定义命令1125

36.3.2 定义命令源1126

36.3.3 命令绑定1126

36.4 数据绑定1127

36.4.1 BooksDemo应用程序内容1128

36.4.2 用XAML绑定1129

36.4.3 简单对象的绑定1131

36.4.4 更改通知1134

36.4.5 对象数据提供程序1136

36.4.6 列表绑定1138

36.4.7 主从绑定1141

36.4.8 多绑定1142

36.4.9 优先绑定1144

36.4.10 值的转换1145

36.4.11 动态添加列表项1147

36.4.12 动态添加选项卡中的项1148

36.4.13 数据模板选择器1149

36.4.14 绑定到XML上1151

36.4.15 绑定的验证和错误处理1153

36.5 Tree View1161

36.6 DataGrid1165

36.6.1 自定义列1167

36.6.2 行的细节1168

36.6.3 用DataGrid进行分组1168

36.6.4 实时成型1171

36.7 小结1177

第37章 用WPF创建文档1178

37.1 简介1178

37.2 文本元素1179

37.2.1 字体1179

37.2.2 TextEffect1180

37.2.3 内联1181

37.2.4 块1183

37.2.5 列表1185

37.2.6 表1185

37.2.7 块的锚定1186

37.3 流文档1188

37.4 固定文档1192

37.5 XPS文档1196

37.6 打印1197

37.6.1 用PrintDialog打印1198

37.6.2 打印可见元素1198

37.7 小结1200

第38章 Windows Store应用程序:用户界面1201

38.1 概述1201

38.2 Microsoft的现代设计1202

38.2.1 内容,不是边框1202

38.2.2 快速流畅1203

38.2.3 可读性1204

38.3 示例应用程序的核心功能1204

38.3.1 文件和目录1204

38.3.2 应用程序页面1205

38.4 应用程序工具栏1210

38.5 启动与导航1213

38.6 布局的变化1215

应用程序数据1215

38.7 存储1220

38.7.1 定义数据协定1220

38.7.2 写入移动数据1222

38.7.3 读取数据1223

38.7.4 写入图像1224

38.7.5 读取图像1226

38.8 选择器1227

38.9 活动的磁贴1228

38.10 小结1230

第39章 Windows Store应用程序:协定和设备1231

39.1 概述1231

39.2 搜索1232

39.3 共享协定1234

39.3.1 共享源1234

39.3.2 共享目标1237

39.4 相机1239

39.5 定位1240

39.6 感应器1243

39.6.1 光线1244

39.6.2 罗盘1244

39.6.3 加速计1245

39.6.4 倾斜计1246

39.6.5 陀螺仪1246

39.6.6 方向1246

39.6.7 Rolling Marble示例1247

39.7 小结1249

第40章 核心ASP.NET1250

40.1 用于Web应用程序的.NET Framework1250

40.1.1 ASP.NET Web Forms1251

40.1.2 ASP.NET Web Pages1251

40.1.3 ASP.NET MVC1252

40.2 Web技术1252

40.2.1 HTML1253

40.2.2 CSS1253

40.2.3 JavaScript和jQuery1253

40.3 托管和配置1254

40.4 处理程序和模块1256

40.4.1 创建自定义处理程序1257

40.4.2 ASP.NET处理程序1258

40.4.3 创建自定义模块1259

40.4.4 通用模块1260

40.5 全局的应用程序类1261

40.6 请求和响应1262

40.6.1 使用HttpRequest对象1262

40.6.2 使用HttpResponse对象1264

40.7 状态管理1264

40.7.1 视图状态1265

40.7.2 cookie1266

40.7.3 会话1267

40.7.4 应用程序状态1270

40.7.5 缓存1270

40.7.6 配置文件1271

40.8 ASP.NET身份系统1275

40.8.1 基础知识1276

40.8.2 存储和检索用户信息1277

40.8.3 安全启动1278

40.8.4 使用注册和身份验证1278

40.9 小结1279

第41章 ASP.NET Web Forms1281

41.1 概述1281

41.2 ASPX页面模型1282

41.2.1 添加控件1283

41.2.2 使用事件1284

41.2.3 使用回送1284

41.2.4 使用自动回送1285

41.2.5 回送到其他页面1285

41.2.6 定义强类型化的跨页面回送1286

41.2.7 使用页面事件1287

41.2.8 ASPX代码1288

41.2.9 服务器端控件1290

41.3 母版页1291

41.3.1 创建母版页1291

41.3.2 使用母版页1293

41.3.3 在内容页中定义母版页内容1294

41.4 导航1296

41.4.1 站点地图1296

41.4.2 Menu控件1296

41.4.3 菜单路径1297

41.5 验证用户输入1297

41.5.1 使用验证控件1298

41.5.2 使用验证摘要1299

41.5.3 验证组1300

41.6 访问数据1300

41.6.1 使用Object Framework1301

41.6.2 创建库1302

41.6.3 使用Object Data Source1303

41.6.4 编辑1306

41.6.5 定制列1307

41.6.6 在网格中使用模板1308

41.7 安全性1309

41.7.1 建立ASP.NET身份1309

41.7.2 用户注册1310

41.7.3 用户的身份验证1311

41.7.4 用户授权1312

41.8 Aiax1313

41.8.1 ASP.NET AJAX的概念1314

41.8.2 ASP.NET AJAX网站示例1316

41.8.3 支持ASP.NET AJAX的网站配置1319

41.8.4 添加ASP.NET AJAX功能1320

41.9 小结1326

第42章 ASP.NET MVC1328

42.1 ASP.NET MVC概述1328

42.2 定义路由1330

42.2.1 添加路由1330

42.2.2 路由约束1331

42.3 创建控制器1331

42.3.1 动作方法1332

42.3.2 参数1332

42.3.3 返回数据1333

42.4 创建视图1335

42.4.1 向视图传递数据1336

42.4.2 Razor语法1337

42.4.3 强类型视图1338

42.4.4 布局1339

42.4.5 部分视图1342

42.5 从客户端提交数据1346

42.5.1 模型绑定器1347

42.5.2 注释和验证1348

42.6 HTML Helper1350

42.6.1 简单的Helper1350

42.6.2 使用模型数据1351

42.6.3 定义HTML特性1352

42.6.4 创建列表1352

42.6.5 强类型化的Helper1353

42.6.6 编辑器扩展1354

42.6.7 创建自定义Helper1355

42.6.8 模板1355

42.7 创建数据驱动的应用程序1356

42.7.1 定义模型1357

42.7.2 创建控制器和视图1358

42.8 动作过滤器1364

42.9 身份验证和授权1366

42.9.1 登录模型1366

42.9.2 登录控制器1366

42.9.3 登录视图1368

42.10 小结1370

第Ⅵ部分 通信1372

第43章 WCF1372

43.1 WCF概述1372

43.1.1 SOAP1374

43.1.2 WSDL1374

43.1.3 REST1375

43.1.4 JSON1375

43.2 创建简单的服务和客户端1375

43.2.1 定义服务和数据协定1376

43.2.2 数据访问1378

43.2.3 服务的实现1379

43.2.4 WCF服务宿主和WCF测试客户端1380

43.2.5 自定义服务宿主1382

43.2.6 WCF客户端1384

43.2.7 诊断1386

43.2.8 与客户端共享协定程序集1388

43.3 协定1389

43.3.1 数据协定1390

43.3.2 版本问题1390

43.3.3 服务协定1391

43.3.4 消息协定1392

43.3.5 错误协定1392

43.4 服务的行为1394

43.5 绑定1397

43.5.1 标准的绑定1397

43.5.2 标准绑定的特性1399

43.5.3 Web套接字1400

43.6 宿主1403

43.6.1 自定义宿主1403

43.6.2 WAS宿主1404

43.6.3 预配置的宿主类1405

43.7 客户端1406

43.7.1 使用元数据1406

43.7.2 共享类型1407

43.8 双工通信1408

43.8.1 双工通信的协定1408

43.8.2 双工通信的服务1408

43.8.3 双工通信的客户端应用程序1409

43.9 路由1410

43.9.1 示例应用程序1411

43.9.2 路由接口1412

43.9.3 WCF路由服务1412

43.9.4 为失败使用路由器1413

43.9.5 改变协定的桥梁1415

43.9.6 过滤器的类型1415

43.10 小结1415

第44章 ASP.NET Web API1416

44.1 概述1416

44.2 创建服务1417

44.2.1 定义模型1418

44.2.2 创建控制器1418

44.2.3 错误处理1420

44.3 创建.NET客户程序1420

44.3.1 发送GET请求1421

44.3.2 发送POST请求1422

44.3.3 发送PUT请求1423

44.3.4 发送DELETE请求1423

44.4 Web API路由和操作1424

44.4.1 给操作添加HTTP方法1424

44.4.2 基于特性的路由1425

44.5 使用OData1427

44.5.1 创建数据模型1427

44.5.2 创建服务1428

44.5.3 OData查询1430

44.5.4 WCF Data Services客户程序1431

44.6 保护Web API1436

44.6.1 创建账户1437

44.6.2 创建验证令牌1439

44.6.3 发送验证过的调用1440

44.6.4 获取用户信息1440

44.7 自驻留1441

44.8 小结1443

第45章 Windows Workflow Foundation1444

45.1 工作流概述1444

45.2 Hello World示例1445

45.3 活动1446

45.3.1 If活动1447

45.3.2 InvokeMethod活动1448

45.3.3 Parallel活动1448

45.3.4 Delay活动1449

45.3.5 Pick活动1449

45.4 自定义活动1450

45.4.1 活动的验证1451

45.4.2 设计器1452

45.4.3 自定义复合活动1454

45.5 工作流1456

45.5.1 实参和变量1457

45.5.2 WorkflowApplication1458

45.5.3 存放WCF工作流1461

45.5.4 工作流的版本1465

45.5.5 驻留设计器1466

45.6 小结1471

第46章 对等网络1472

46.1 P2P网络概述1472

46.1.1 客户端-服务器体系结构1473

46.1.2 P2P体系结构1473

46.1.3 P2P体系结构的挑战1474

46.1.4 P2P术语1475

46.1.5 P2P解决方案1475

46.2 PNRP1475

46.3 构建P2P应用程序1478

46.4 小结1484

第47章 消息队列1485

47.1 概述1486

47.1.1 使用消息队列的场合1486

47.1.2 消息队列功能1487

47.2 Message Queuing产品1488

47.3 消息队列体系结构1489

47.3.1 消息1489

47.3.2 消息队列1489

47.4 Message Queuing管理工具1490

47.4.1 创建消息队列1490

47.4.2 消息队列属性1491

47.5 消息队列的编程实现1492

47.5.1 创建消息队列1492

47.5.2 查找队列1493

47.5.3 打开已知队列1493

47.5.4 发送消息1495

47.5.5 接收消息1497

47.6 课程订单应用程序1499

47.6.1 课程订单类库1499

47.6.2 课程订单消息发送程序1502

47.6.3 发送优先级和可恢复的消息1504

47.6.4 课程订单消息接收应用程序1505

47.7 接收结果1511

47.7.1 确认队列1511

47.7.2 响应队列1512

47.8 事务队列1512

47.9 消息队列和WCF1514

47.9.1 带数据协定的实体类1514

47.9.2 WCF服务协定1515

47.9.3 WCF消息接收应用程序1516

47.9.4 WCF消息发送应用程序1519

47.10 消息队列的安装1520

47.11 小结1520

热门推荐