当前位置:首页 > 工业技术
C#高级编程  C#6&.NET CORE 1.0  第10版
C#高级编程  C#6&.NET CORE 1.0  第10版

C#高级编程 C#6&.NET CORE 1.0 第10版PDF电子书下载

工业技术

  • 电子书积分:34 积分如何计算积分?
  • 作 者:(美)Christian Nagel著;李铭译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302461968
  • 页数:1442 页
图书介绍:本书是C# 6.0和.NET 6.0高级技术的终极资源,旨在帮助读者更新、提高使用C# 6.0和.NET 6.0编写Windows应用程序、Web应用程序、Windows 8.1样式应用程序的技巧。本书的顶级作者专家团队首先介绍了C#的基础知识,之后全面探讨了该语言和架构中的新增功能,以及新的测试驱动的开发和并发编程特性。本书提供了学习C# 6.0语言和.NET 6.0平台功能所需的所有知识,使读者可以最大限度地发挥出这些动态技术的潜能。
《C#高级编程 C#6&.NET CORE 1.0 第10版》目录
标签:编程

第Ⅰ部分 C#语言 2

第1章 .NET应用程序体系结构 2

1.1 选择技术 2

1.2 回顾.NET历史 3

1.2.1 C#1.0——一种新语言 3

1.2.2 带有泛型的C#2和.NET 2 5

1.2.3 .NET 3.0——Windows Presentation Foundation 5

1.2.4 C#3和.NET 3.5 ——LINQ 5

1.2.5 C#4和.NET4.0——dynamic和TPL 6

1.2.6 C#5和异步编程 6

1.2.7 C#6和.NET Core 7

1.2.8 选择技术,继续前进 8

1.3 .NET2015 8

1.3.1 .NET Framework 4.6 9

1.3.2.NET Core 1.0 10

1.3.3 程序集 11

1.3.4 NuGet包 12

1.3.5 公共语言运行库 13

1.3.6.NET Native 14

1.3.7 Windows运行库 14

1.4 Hello,World 15

1.5 用.NET4.6编译 16

1.6 用.NET Core CLI编译 17

1.6.1 设置环境 18

1.6.2 构建应用程序 18

1.6.3 打包和发布应用程序 21

1.7 应用程序类型和技术 22

1.7.1 数据访问 22

1.7.2 Windows桌面应用程序 23

1.7.3 UWP 24

1.7.4 SOAP服务和WCF 24

1.7.5 Web服务和ASP.NETWeb API 24

1.7.6 WebHooks和SignalR 25

1.7.7 Windows服务 25

1.7.8 Web应用程序 25

1.7.9 Microsoft Azure 26

1.8 开发工具 27

1.8.1 Visual Studio Community 27

1.8.2 Visual Studio Professionalwith MSDN 27

1.8.3 Visual Studio Enterprise with MSDN 27

1.8.4 Visual Studio Code 28

1.9 小结 28

第2章 核心C# 29

2.1 C#基础 30

2.2 用Visual Studio创建Hello,World! 30

2.2.1 创建解决方案 30

2.2.2 创建新项目 31

2.2.3 编译和运行程序 33

2.2.4 代码的详细介绍 35

2.3 变量 36

2.3.1 初始化变量 37

2.3.2 类型推断 38

2.3.3 变量的作用域 39

2.3.4 常量 41

2.4 预定义数据类型 41

2.4.1 值类型和引用类型 42

2.4.2.NET类型 43

2.4.3 预定义的值类型 43

2.4.4 预定义的引用类型 46

2.5 程序流控制 48

2.5.1 条件语句 48

2.5.2 循环 51

2.5.3 跳转语句 55

2.6 枚举 55

2.7 名称空间 57

2.7.1 using语句 58

2.7.2 名称空间的别名 59

2.8 Main()方法 60

2.9 使用注释 61

2.9.1 源文件中的内部注释 61

2.9.2 XML文档 62

2.10 C#预处理器指令 63

2.10.1 #define和#undef 63

2.10.2 #if、#elif、#else和#endif 64

2.10.3 #warning和#error 65

2.10.4 #region和#endregion 65

2.10.5 #line 65

2.10.6 #pragma 65

2.11 C#编程准则 66

2.11.1 关于标识符的规则 66

2.11.2 用法约定 67

2.12 小结 70

第3章 对象和类型 71

3.1 创建及使用类 72

3.2 类和结构 72

3.3 类 73

3.3.1 字段 73

3.3.2 属性 74

3.3.3 方法 76

3.3.4 构造函数 81

3.3.5 只读成员 85

3.3.6 只读字段 85

3.4 匿名类型 88

3.5 结构 89

3.5.1 结构是值类型 90

3.5.2 结构和继承 91

3.5.3 结构的构造函数 91

3.6 按值和按引用传递参数 91

3.6.1 ref参数 92

3.6.2 out参数 93

3.7 可空类型 94

3.8 枚举 95

3.9 部分类 97

3.10 扩展方法 99

3.11 Object类 100

3.12 小结 101

第4章 继承 102

4.1 继承 102

4.2 继承的类型 102

4.2.1 多重继承 103

4.2.2 结构和类 103

4.3 实现继承 103

4.3.1 虚方法 104

4.3.2 多态性 106

4.3.3 隐藏方法 107

4.3.4 调用方法的基类版本 108

4.3.5 抽象类和抽象方法 109

4.3.6 密封类和密封方法 110

4.3.7 派生类的构造函数 110

4.4 修饰符 112

4.4.1 访问修饰符 113

4.4.2 其他修饰符 113

4.5 接口 114

4.5.1 定义和实现接口 115

4.5.2 派生的接口 118

4.6 is和as运算符 120

4.7 小结 121

第5章 托管和非托管的资源 122

5.1 资源 122

5.2 后台内存管理 123

5.2.1 值数据类型 123

5.2.2 引用数据类型 125

5.2.3 垃圾回收 127

5.3 强引用和弱引用 129

5.4 处理非托管的资源 130

5.4.1 析构函数或终结器 130

5.4.2 IDisposable接口 131

5.4.3 using语句 132

5.4.4 实现IDisposable接口和析构函数 133

5.4.5 IDisposable和终结器的规则 134

5.5 不安全的代码 135

5.5.1 用指针直接访问内存 135

5.5.2 指针示例:PointerPlayground 143

5.5.3 使用指针优化性能 147

5.6 平台调用 150

5.7 小结 154

第6章 泛型 155

6.1 泛型概述 155

6.1.1 性能 156

6.1.2 类型安全 157

6.1.3 二进制代码的重用 157

6.1.4 代码的扩展 158

6.1.5 命名约定 158

6.2 创建泛型类 158

6.3 泛型类的功能 162

6.3.1 默认值 163

6.3.2 约束 163

6.3.3 继承 166

6.3.4 静态成员 167

6.4 泛型接口 167

6.4.1 协变和抗变 168

6.4.2 泛型接口的协变 169

6.4.3 泛型接口的抗变 170

6.5 泛型结构 171

6.6 泛型方法 173

6.6.1 泛型方法示例 174

6.6.2 带约束的泛型方法 175

6.6.3 带委托的泛型方法 176

6.6.4 泛型方法规范 176

6.7 小结 178

第7章 数组和元组 179

7.1 同一类型和不同类型的多个对象 179

7.2 简单数组 180

7.2.1 数组的声明 180

7.2.2 数组的初始化 180

7.2.3 访问数组元素 181

7.2.4 使用引用类型 182

7.3 多维数组 183

7.4 锯齿数组 184

7.5 Array类 185

7.5.1 创建数组 185

7.5.2 复制数组 186

7.5.3 排序 187

7.6 数组作为参数 190

7.6.1 数组协变 190

7.6.2 ArraySegment<T> 191

7.7 枚举 191

7.7.1 IEnumerator接口 192

7.7.2 foreach语句 192

7.7.3 yield语句 193

7.8 元组 197

7.9 结构比较 198

7.10 小结 201

第8章 运算符和类型强制转换 202

8.1 运算符和类型转换 202

8.2 运算符 203

8.2.1 运算符的简化操作 204

8.2.2 运算符的优先级和关联性 212

8.3 类型的安全性 213

8.3.1 类型转换 213

8.3.2 装箱和拆箱 217

8.4 比较对象的相等性 218

8.4.1 比较引用类型的相等性 218

8.4.2 比较值类型的相等性 219

8.5 运算符重载 219

8.5.1 运算符的工作方式 220

8.5.2 运算符重载的示例:Vector结构 221

8.5.3 比较运算符的重载 225

8.5.4 可以重载的运算符 227

8.6 实现自定义的索引运算符 228

8.7 实现用户定义的类型强制转换 230

8.7.1 实现用户定义的类型强制转换 231

8.7.2 多重类型强制转换 237

8.8 小结 240

第9章 委托、lambda表达式和事件 241

9.1 引用方法 241

9.2 委托 242

9.2.1 声明委托 242

9.2.2 使用委托 243

9.2.3 简单的委托示例 246

9.2.4 Action<T>和Func<T>委托 248

9.2.5 BubbleSorter示例 248

9.2.6 多播委托 251

9.2.7 匿名方法 254

9.3 lambda表达式 255

9.3.1 参数 256

9.3.2 多行代码 256

9.3.3 闭包 257

9.4 事件 258

9.4.1 事件发布程序 258

9.4.2 事件侦听器 260

9.4.3 弱事件 261

9.5 小结 263

第10章 字符串和正则表达式 264

10.1 System.String类 265

10.1.1 构建字符串 266

10.1.2 StringBuilder成员 269

10.2 字符串格式 270

10.2.1 字符串插值 270

10.2.2 日期时间和数字的格式 272

10.2.3 自定义字符串格式 274

10.3 正则表达式 275

10.3.1 正则表达式概述 275

10.3.2 RegularExpressionsPlayaround示例 276

10.3.3 显示结果 279

10.3.4 匹配、组和捕获 280

10.4 小结 283

第11章 集合 284

11.1 概述 284

11.2 集合接口和类型 285

11.3 列表 285

11.3.1 创建列表 287

11.3.2 只读集合 294

11.4 队列 294

11.5 栈 298

11.6 链表 300

11.7 有序列表 305

11.8 字典 306

11.8.1 字典初始化器 307

11.8.2 键的类型 307

11.8.3 字典示例 308

11.8.4 Lookup类 312

11.8.5 有序字典 313

11.9 集 313

11.10 性能 315

11.11 小结 316

第12章 特殊的集合 317

12.1 概述 317

12.2 处理位 317

12.2.1 BitArray类 318

12.2.2 BitVector32结构 320

12.3 可观察的集合 323

12.4 不变的集合 324

12.4.1 使用构建器和不变的集合 327

12.4.2 不变集合类型和接口 327

12.4.3 使用LINQ和不变的数组 328

12.5 并发集合 328

12.5.1 创建管道 329

12.5.2 使用BlockingCollection 332

12.5.3 使用Concurrent-Dictionary 333

12.5.4 完成管道 334

12.6 小结 335

第13章 LINQ 337

13.1 LINQ概述 337

13.1.1 列表和实体 338

13.1.2 LINQ查询 341

13.1.3 扩展方法 342

13.1.4 推迟查询的执行 343

13.2 标准的查询操作符 345

13.2.1 筛选 347

13.2.2 用索引筛选 347

13.2.3 类型筛选 348

13.2.4 复合的from子句 348

13.2.5 排序 349

13.2.6 分组 350

13.2.7 LINQ查询中的变量 351

13.2.8 对嵌套的对象分组 352

13.2.9 内连接 353

13.2.10 左外连接 355

13.2.11 组连接 355

13.2.12 集合操作 358

13.2.13 合并 360

13.2.14 分区 360

13.2.15 聚合操作符 362

13.2.16 转换操作符 363

13.2.17 生成操作符 365

13.3 并行LINQ 365

13.3.1 并行查询 365

13.3.2 分区器 366

13.3.3 取消 367

13.4 表达式树 367

13.5 LINQ提供程序 370

13.6 小结 371

第14章 错误和异常 372

14.1 简介 372

14.2 异常类 373

14.3 捕获异常 374

14.3.1 实现多个catch块 377

14.3.2 在其他代码中捕获异常 380

14.3.3 System.Exception属性 380

14.3.4 异常过滤器 381

14.3.5 重新抛出异常 382

14.3.6 没有处理异常时发生的情况 386

14.4 用户定义的异常类 386

14.4.1 捕获用户定义的异常 387

14.4.2 抛出用户定义的异常 389

14.4.3 定义用户定义的异常类 392

14.5 调用者信息 394

14.6 小结 396

第15章 异步编程 397

15.1 异步编程的重要性 397

15.2 异步模式 398

15.2.1 同步调用 405

15.2.2 异步模式 406

15.2.3 基于事件的异步模式 407

15.2.4 基于任务的异步模式 408

15.3 异步编程的基础 410

15.3.1 创建任务 410

15.3.2 调用异步方法 411

15.3.3 延续任务 411

15.3.4 同步上下文 412

15.3.5 使用多个异步方法 412

15.3.6 转换异步模式 413

15.4 错误处理 414

15.4.1 异步方法的异常处理 415

15.4.2 多个异步方法的异常处理 415

15.4.3 使用AggregateException信息 416

15.5 取消 417

15.5.1 开始取消任务 417

15.5.2 使用框架特性取消任务 417

15.5.3 取消自定义任务 418

15.6 小结 419

第16章 反射、元数据和动态编程 420

16.1 在运行期间检查代码和动态编程 420

16.2 自定义特性 421

16.2.1 编写自定义特性 422

16.2.2 自定义特性示例:WhatsNewAttributes 425

16.3 反射 428

16.3.1 System.Type类 428

16.3.2 TypeView示例 430

16.3.3 Assembly类 433

16.3.4 完成WhatsNewAttributes示例 434

16.4 为反射使用动态语言扩展 438

16.4.1 创建Calculator库 438

16.4.2 动态实例化类型 440

16.4.3 用反射API调用成员 442

16.4.4 使用动态类型调用成员 442

16.5 dynamic类型 443

16.6 DLR 448

16.7 包含DLR ScriptRuntime 449

16.8 DynamicObject和ExpandoObject 451

16.8.1 DynamicObject 451

16.8.2 ExpandoObject 453

16.9 小结 455

第Ⅱ部分 .NET Core与Windows Runtime 458

第17章 Visual Studio 201 5 458

17.1 使用Visual Studio 2015 458

17.1.1 Visual Studio的版本 461

17.1.2 Visual Studio设置 461

17.2 创建项目 462

17.2.1 面向多个版本的.NET Framework 463

17.2.2 选择项目类型 464

17.3 浏览并编写项目 469

17.3.1 构建环境:CLI和MSBuild 469

17.3.2 Solution Explorer 470

17.3.3 使用代码编辑器 477

17.3.4 学习和理解其他窗口 481

17.3.5 排列窗口 485

17.4 构建项目 485

17.4.1 构建、编译和生成代码 486

17.4.2 调试版本和发布版本 486

17.4.3 选择配置 488

17.4.4 编辑配置 488

17.5 调试代码 490

17.5.1 设置断点 490

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

17.5.3 Live Visual Tree 492

17.5.4 监视和修改变量 493

17.5.5 异常 494

17.5.6 多线程 495

17.6 重构工具 495

17.7 体系结构工具 497

17.7.1 代码地图 498

17.7.2 层关系图 499

17.8 分析应用程序 500

17.8.1 诊断工具 500

17.8.2 Concurrency Visualizer 504

17.8.3 代码分析器 505

17.8.4 Code Metrics 506

17.9 小结 506

第18章 .NET编译器平台 507

18.1 简介 507

18.2 编译器管道 509

18.3 语法分析 509

183.1 使用查询节点 515

18.3.2 遍历节点 517

18.4 语义分析 519

18.4.1 编译 520

18.4.2 语义模型 521

18.5 代码转换 522

18.5.1 创建新树 522

18.5.2 使用语法重写器 524

18.6 Visual Studio Code重构 529

18.6.1 VSIX包 529

18.6.2 代码重构提供程序 532

18.7 小结 537

第19章 测试 538

19.1 概述 538

19.2 使用MSTest进行单元测试 539

19.2.1 使用MSTest创建单元测试 539

19.2.2 运行单元测试 541

19.2.3 使用MSTest预期异常 543

19.2.4 测试全部代码路径 544

19.2.5 外部依赖 544

19.2.6 Fakes Framework 547

19.2.7 IntelliTest 549

19.3 使用xUnit进行单元测试 549

19.3.1 使用xUnit和.NETCore 550

19.3.2 创建Fact属性 550

19.3.3 创建Theory属性 551

19.3.4 用dotnet工具运行单元测试 552

19.3.5 使用Mocking库 552

19.4 UI测试 556

19.5 Web测试 559

19.5.1 创建Web测试 560

19.5.2 运行Web测试 562

19.5.3 Web负载测试 563

19.6 小结 565

第20章 诊断和Application Insights 566

20.1 诊断概述 566

20.2 使用EventSource跟踪 567

20.2.1 EventSource的简单用法 568

20.2.2 跟踪工具 570

20.2.3 派生自EventSource 572

20.2.4 使用注释和EventSource 574

20.2.5 创建事件清单模式 576

20.2.6 使用活动ID 578

20.3 创建自定义侦听器 581

20.4 使用Application Insights 582

20.4.1 创建通用Windows应用程序 583

20.4.2 创建Application Insights资源 583

20.4.3 配置Windows应用程序 584

20.4.4 使用收集器 586

20.4.5 编写自定义事件 587

20.5 小结 588

第21章 任务和并行编程 590

21.1 概述 590

21.2 Parallel类 591

21.2.1 使用Parallel.For()方法循环 591

21.2.2 提前停止Parallel.For 594

21.2.3 Parallel.For()的初始化 595

21.2.4 使用Parallel.ForEach()方法循环 596

21.2.5 通过Parallel.Invoke()方法调用多个方法 597

21.3 任务 597

21.3.1 启动任务 597

21.3.2 Future——任务的结果 600

21.3.3 连续的任务 601

21.3.4 任务层次结构 602

21.3.5 从方法中返回任务 603

21.3.6 等待任务 603

21.4 取消架构 604

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

21.4.2 任务的取消 605

21.5 数据流 607

21.5.1 使用动作块 607

21.5.2 源和目标数据块 608

21.5.3 连接块 609

21.6 小结 611

第22章 任务同步 612

22.1 概述 613

22.2 线程问题 613

22.2.1 争用条件 614

22.2.2 死锁 616

22.3 lock语句和线程安全 618

22.4 Interlocked类 623

22.5 Monitor类 624

22.6 SpinLock结构 625

22.7 WaitHandle基类 626

22.8 Mutex类 627

22.9 Semaphore类 628

22.10 Events类 630

22.11 Barrier类 633

22.12 ReaderWriterLockSlim类 636

22.13 Timer类 639

22.14 小结 641

第23章 文件和流 643

23.1 概述 644

23.2 管理文件系统 644

23.2.1 检查驱动器信息 645

23.2.2 使用Path类 646

23.2.3 创建文件和文件夹 647

23.2.4 访问和修改文件的属性 648

23.2.5 创建简单的编辑器 649

23.2.6 使用File执行读写操作 651

23.3 枚举文件 653

23.4 使用流处理文件 654

23.4.1 使用文件流 655

23.4.2 读取流 659

23.4.3 写入流 659

23.4.4 复制流 660

23.4.5 随机访问流 661

23.4.6 使用缓存的流 663

23.5 使用读取器和写入器 663

23.5.1 StreamReader类 663

23.5.2 StreamWriter类 664

23.5.3 读写二进制文件 665

23.6 压缩文件 666

23.6.1 使用压缩流 667

23.6.2 压缩文件 668

23.7 观察文件的更改 668

23.8 使用内存映射的文件 670

23.8.1 使用访问器创建内存映射文件 671

23.8.2 使用流创建内存映射文件 673

23.9 使用管道通信 675

23.9.1 创建命名管道服务器 675

23.9.2 创建命名管道客户端 677

23.9.3 创建匿名管道 677

23.10 通过Windows运行库使用文件和流 679

23.10.1 Windows应用程序编辑器 679

23.10.2 把Windows Runtime类型映射为.NET类型 682

23.11 小结 684

第24章 安全性 685

24.1 概述 685

24.2 验证用户信息 686

24.2.1 使用Windows标识 686

24.2.2 Windows Principal 687

24.2.3 使用声称 688

24.3 加密数据 690

24.3.1 创建和验证签名 692

24.3.2 实现安全的数据交换 694

24.3.3 使用RSA签名和散列 697

24.3.4 实现数据的保护 700

24.4 资源的访问控制 703

24.5 使用证书发布代码 706

24.6 小结 707

第25章 网络 708

25.1 网络 708

25.2 HttpClient类 709

25.2.1 发出异步的Get请求 709

25.2.2 抛出异常 710

25.2.3 传递标题 711

25.2.4 访问内容 713

25.2.5 用HttpMessageHandler自定义请求 713

25.2.6 使用SendAsync创建HttpRequestMessage 714

25.2.7 使用HttpClient和Windows Runtime 715

25.3 使用WebListener类 717

25.4 使用实用工具类 720

25.4.1 URI 721

25.4.2 IPAddress 722

25.4.3 IPHostEntry 723

25.4.4 Dns 724

25.5 使用TCP 725

25.5.1 使用TCP创建HTTP客户程序 726

25.5.2 创建TCP侦听器 728

25.5.3 创建TCP客户端 736

25.5.4 TCP和UDP 740

25.6 使用UDP 740

25.6.1 建立UDP接收器 741

25.6.2 创建UDP发送器 742

25.6.3 使用多播 745

25.7 使用套接字 745

25.7.1 使用套接字创建侦听器 746

25.7.2 使用NetworkStream和套接字 749

25.7.3 通过套接字使用读取器和写入器 749

25.7.4 使用套接字实现接收器 751

25.8 小结 753

第26章 Composition 754

26.1 概述 754

26.2 Composition库的体系结构 756

26.2.1 使用特性的Composition 757

26.2.2 基于约定的部件注册 763

26.3 定义协定 766

26.4 导出部件 770

26.4.1 创建部件 770

26.4.2 使用部件的部件 776

26.4.3 导出元数据 776

26.4.4 使用元数据进行惰性加载 778

26.5 导入部件 779

26.5.1 导入连接 782

26.5.2 部件的惰性加载 784

26.5.3 读取元数据 784

26.6 小结 786

第27章 XML和JSON 787

27.1 数据格式 787

27.1.1 XML 788

27.1.2.NET支持的XML标准 789

27.1.3 在框架中使用XML 790

27.1.4 JSON 790

27.2 读写流格式的XML 792

27.2.1 使用XmlReader类读取XML 793

27.2.2 使用XmlWriter类 797

27.3 在.NET中使用DOM 798

27.3.1 使用XmlDocument类读取 799

27.3.2 遍历层次结构 799

27.3.3 使用XmlDocument插入节点 800

27.4 使用XPathNavigator类 802

27.4.1 XPathDocument类 802

27.4.2 XPathNavigator类 803

27.4.3 XPathNodeIterator类 803

27.4.4 使用XPath导航XML 803

27.4.5 使用XPath评估 804

27.4.6 用XPath修改XML 805

27.5 在XML中序列化对象 806

27.5.1 序列化简单对象 807

27.5.2 序列化一个对象树 809

27.5.3 没有特性的序列化 811

27.6 LINQ to XML 814

27.6.1 XDocument对象 815

27.6.2 XElement对象 816

27.6.3 XNamespace对象 817

27.6.4 XComment对象 818

27.6.5 XAttribute对象 819

27.6.6 使用LINQ查询XML文档 820

27.6.7 查询动态的XML文档 821

27.6.8 转换为对象 822

27.6.9 转换为XML 823

27.7 JSON 824

27.7.1 创建JSON 825

27.7.2 转换对象 825

27.7.3 序列化对象 827

27.8 小结 828

第28章 本地化 829

28.1 全球市场 830

28.2 System.Globalization名称空间 830

28.2.1 Unicode问题 830

28.2.2 区域性和区域 831

28.2.3 使用区域性 835

28.2.4 排序 841

28.3 资源 843

28.3.1 资源读取器和写入器 843

28.3.2 使用资源文件生成器 844

28.3.3 通过ResourceManager使用资源文件 845

28.3.4 System.Resources名称空间 846

28.4 使用WPF本地化 846

28.5 使用ASP.NETCore本地化 848

28.5.1 注册本地化服务 848

28.5.2 注入本地化服务 849

28.5.3 区域性提供程序 850

28.5.4 在ASP.NET Core中使用资源 851

28.6 本地化通用Windows平台 852

28.6.1 给UWP使用资源 853

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

28.7 创建自定义区域性 856

28.8 小结 857

第Ⅲ部分 Windows应用程序 860

第29章 核心XAML 860

29.1 XAML的作用 860

29.2 XAML概述 861

29.2.1 使用WPF把元素映射到类上 862

29.2.2 通过通用Windows应用程序把元素映射到类上 863

29.2.3 使用自定义.NET类 864

29.2.4 把属性用作特性 865

29.2.5 把属性用作元素 866

29.2.6 使用集合和XAML 867

29.3 依赖属性 867

29.3.1 创建依赖属性 868

29.3.2 值变更回调和事件 869

29.3.3 强制值回调和WPF 870

29.4 路由事件 871

29.4.1 用于Windows应用程序的路由事件 871

29.4.2 WPF的冒泡和隧道 873

29.4.3 用WPF实现自定义路由事件 875

29.5 附加属性 876

29.6 标记扩展 879

29.6.1 创建自定义标记扩展 880

29.6.2 XAML定义的标记扩展 882

29.7 小结 882

第30章 样式化XAML应用程序 883

30.1 样式设置 883

30.2 形状 884

30.3 几何图形 887

30.3.1 使用段的几何图形 887

30.3.2 使用PML的几何图形 888

30.3.3 合并的几何图形(WPF) 889

30.4 变换 889

30.4.1 缩放 890

30.4.2 平移 890

30.4.3 旋转 891

30.4.4 倾斜 891

30.4.5 组合变换和复合变换 891

30.4.6 使用矩阵的变换 891

30.4.7 变换布局 892

30.5 画笔 893

30.5.1 SolidColorBrush 893

30.5.2 LinearGradientBrush 894

30.5.3 ImageBrush 894

30.5.4 WebViewBrush 894

30.5.5 只用于WPF的画笔 895

30.6 样式和资源 898

30.6.1 样式 898

30.6.2 资源 900

30.6.3 从代码中访问资源 901

30.6.4 动态资源(WPF) 902

30.6.5 资源字典 903

30.6.6 主题资源(UWp) 905

30.7 模板 906

30.7.1 控件模板 907

30.7.2 数据模板 912

30.7.3 样式化ListView 913

30.7.4 ListView项的数据模板 915

30.7.5 项容器的样式 915

30.7.6 项面板 916

30.7.7 列表视图的控件模板 917

30.8 动画 918

30.8.1 时间轴 919

30.8.2 缓动函数 921

30.8.3 关键帧动画 927

30.8.4 过渡(UWP应用程序) 928

30.9 可视化状态管理器 931

30.9.1 用控件模板预定义状态 932

30.9.2 定义自定义状态 933

30.9.3 设置自定义的状态 934

30.10 小结 934

第31章 模式和XAML应用程序 935

31.1 使用MVVM的原因 935

31.2 定义MVVM模式 936

31.3 共享代码 938

31.3.1 使用API协定和通用Windows平台 938

31.3.2 使用共享项目 939

31.3.3 使用移动库 941

31.4 示例解决方案 942

31.5 模型 942

31.5.1 实现变更通知 943

31.5.2 使用Repository模式 944

31.6 视图模型 946

31.6.1 命令 948

31.6.2 服务和依赖注入 949

31.7 视图 952

31.7.1 注入视图模型 953

31.7.2 用于WPF的数据绑定 953

31.7.3 用于UWP的已编译数据绑定 955

31.8 使用事件传递消息 957

31.9 IoC容器 959

31.10 使用框架 961

31.11 小结 961

第32章 Windows应用程序:用户界面 962

32.1 概述 962

32.2 导航 963

32.2.1 导航回最初的页面 963

32.2.2 重写Page类的导航 965

32.2.3 在页面之间导航 965

32.2.4 后退按钮 967

32.2.5 Hub 969

32.2.6 Pivot 971

32.2.7 应用程序shell 972

32.2.8 汉堡按钮 976

32.2.9 分隔视图 977

32.2.10 给SplitView窗格添加内容 979

32.3 布局 981

32.3.1 VariableSizedWrapGrid 981

32.3.2 RelativePanel 983

32.3.3 自适应触发器 984

32.3.4 XAML视图 988

32.3.5 延迟加载 988

32.4 命令 989

32.5 已编译的数据绑定 992

32.5.1 已编译绑定的生命周期 992

32.5.2 给已编译的数据模板使用资源 994

32.6 控件 995

32.6.1 TextBox控件 995

32.6.2 AutoSuggest 996

32.6.3 Inking 998

32.6.4 读写笔触的选择器 1001

32.7 小结 1002

第33章 高级Windows应用程序 1003

33.1 概述 1003

33.2 应用程序的生命周期 1004

33.3 应用程序的执行状态 1004

33.4 导航状态 1007

33.4.1 暂停应用程序 1008

33.4.2 激活暂停的应用程序 1009

33.4.3 测试暂停 1010

33.4.4 页面状态 1011

33.5 共享数据 1013

33.5.1 共享源 1014

33.5.2 共享目标 1017

33.6 应用程序服务 1023

33.6.1 创建模型 1024

33.6.2 为应用程序服务连接创建后台任务 1025

33.6.3 注册应用程序服务 1026

33.6.4 调用应用程序服务 1027

33.7 相机 1029

33.8 Geolocation和Mapcontrol 1031

33.8.1 使用MapControl 1031

33.8.2 使用Geolocator定位信息 1034

33.8.3 街景地图 1036

33.8.4 继续请求位置信息 1037

33.9 传感器 1037

33.9.1 光线 1038

33.9.2 罗盘 1040

33.9.3 加速计 1041

33.9.4 倾斜计 1042

33.9.5 陀螺仪 1042

33.9.6 方向 1043

33.9.7 Rolling Marble示例 1044

33.10 小结 1046

第34章 带WPF的Windows桌面应用程序 1047

34.1 概述 1048

34.2 控件 1048

34.2.1 简单控件 1048

34.2.2 内容控件 1049

34.2.3 带标题的内容控件 1050

34.2.4 项控件 1052

34.2.5 带标题的项控件 1052

34.2.6 修饰 1052

34.3 布局 1053

34.3.1 StackPanel 1054

34.3.2 WrapPanel 1054

34.3.3 Canvas 1055

34.3.4 DockPanel 1056

34.3.5 Grid 1056

34.4 触发器 1058

34.4.1 属性触发器 1058

34.4.2 多触发器 1059

34.4.3 数据触发器 1060

34.5 菜单和功能区控件 1062

34.5.1 菜单控件 1062

34.5.2 功能区控件 1063

34.6 Commanding 1065

34.6.1 定义命令 1066

34.6.2 定义命令源 1067

34.6.3 命令绑定 1067

34.7 数据绑定 1068

34.7.1 BooksDemo应用程序内容 1069

34.7.2 用XAML绑定 1070

34.7.3 简单对象的绑定 1073

34.7.4 更改通知 1075

34.7.5 对象数据提供程序 1077

34.7.6 列表绑定 1079

34.7.7 主从绑定 1082

34.7.8 多绑定 1082

34.7.9 优先绑定 1084

34.7.10 值的转换 1086

34.7.11 动态添加列表项 1087

34.7.12 动态添加选项卡中的项 1088

34.7.13 数据模板选择器 1089

34.7.14 绑定到XML上 1091

34.7.15 绑定的验证和错误处理 1093

34.8 TreeView 1101

34.9 DataGrid 1106

34.9.1 自定义列 1108

34.9.2 行的细节 1109

34.9.3 用DataGrid进行分组 1109

34.9.4 实时成型 1112

34.10 小结 1118

第35章 用WPF创建文档 1119

35.1 简介 1119

35.2 文本元素 1120

35.2.1 字体 1120

35.2.2 TextEffect 1121

35.2.3 内联 1123

35.2.4 块 1124

35.2.5 列表 1126

35.2.6 表 1126

35.2.7 块的锚定 1128

35.3 流文档 1130

35.4 固定文档 1134

35.5 XPS文档 1137

35.6 打印 1139

35.6.1 用PrintDialog打印 1139

35.6.2 打印可见元素 1140

35.7 小结 1142

第36章 部署Windows应用程序 1143

36.1 部署是应用程序生命周期的一部分 1143

36.2 部署的规划 1144

36.2.1 部署选项 1144

36.2.2 部署要求 1144

36.2.3 部署.NET运行库 1145

36.3 传统的部署选项 1145

36.3.1 xcopy部署 1146

36.3.2 Windows Installer 1146

36.4 ClickOnce 1147

36.4.1 ClickOnce操作 1147

36.4.2 发布ClickOnce应用程序 1147

36.4.3 ClickOnce设置 1149

36.4.4 ClickOnce文件的应用程序缓存 1151

36.4.5 应用程序的安装 1151

36.4.6 ClickOnce部署API 1152

36.5 UWP应用程序 1153

36.5.1 创建应用程序包 1153

36.5.2 Windows App Certification Kit 1155

36.5.3 旁加载 1156

36.6 小结 1156

第Ⅳ部分 Web应用程序和服务 1158

第37章 ADO.NET 1158

37.1 ADO.NET概述 1158

37.1.1 示例数据库 1159

37.1.2 NuGet包和名称空间 1160

37.2 使用数据库连接 1160

37.2.1 管理连接字符串 1161

37.2.2 连接池 1162

37.2.3 连接信息 1162

37.3 命令 1162

37.3.1 ExecuteNonQuery()方法 1164

37.3.2 ExecuteScalar()方法 1165

37.3.3 ExecuteReader()方法 1165

37.3.4 调用存储过程 1167

37.4 异步数据访问 1168

37.5 事务 1169

37.6 小结 1173

第38章 Entity Framework Core 1174

38.1 EntityFramework简史 1174

38.2 Entity Framework简介 1176

38.2.1 创建模型 1176

38.2.2 创建上下文 1177

38.2.3 写入数据库 1178

38.2.4 读取数据库 1179

38.2.5 更新记录 1180

38.2.6 删除记录 1180

38.3 使用依赖注入 1181

38.4 创建模型 1184

38.4.1 创建关系 1184

38.4.2 用.NET CLI迁移 1185

38.4.3 用MSBuild迁移 1187

38.4.4 创建数据库 1188

38.4.5 数据注释 1189

38.4.6 流利API 1190

38.4.7 在数据库中搭建模型 1191

38.5 使用对象状态 1191

38.5.1 用关系添加对象 1192

38.5.2 对象的跟踪 1193

38.5.3 更新对象 1194

38.5.4 更新未跟踪的对象 1195

38.6 冲突的处理 1196

38.6.1 最后一个更改获胜 1196

38.6.2 第一个更改获胜 1198

38.7 使用事务 1202

38.7.1 使用隐式的事务 1202

38.7.2 创建显式的事务 1204

38.8 小结 1206

第39章 Windows服务 1207

39.1 Windows服务 1207

39.2 Windows服务的体系结构 1209

39.2.1 服务程序 1209

39.2.2 服务控制程序 1210

39.2.3 服务配置程序 1210

39.2.4 Windows服务的类 1211

39.3 创建Windows服务程序 1211

39.3.1 创建服务的核心功能 1211

39.3.2 QuoteClient示例 1214

39.3.3 Windows服务程序 1218

39.3.4 线程化和服务 1221

39.3.5 服务的安装 1222

39.3.6 安装程序 1222

39.4 Windows服务的监控和控制 1226

39.4.1 MMC管理单元 1226

39.4.2 net.exe实用程序 1227

39.4.3 sc.exe实用程序 1227

39.4.4 Visual Studio Server Explorer 1227

39.4.5 编写自定义ServiceController类 1228

39.5 故障排除和事件日志 1236

39.6 小结 1237

第40章 ASP.NET Core 1238

40.1 ASP.NET Core 1.0 1238

40.2 Web技术 1239

40.2.1 HTML 1239

40.2.2 CSS 1240

40.2.3 JavaScript和TypeScript 1240

40.2.4 脚本库 1240

40.3 ASP.NETWeb项目 1241

40.4 启动 1245

40.5 添加静态内容 1248

40.5.1 使用JavaScript包管理器:npm 1249

40.5.2 用gulp构建 1250

40.5.3 通过Bower使用客户端库 1252

40.6 请求和响应 1254

40.6.1 请求标题 1256

40.6.2 查询字符串 1258

40.6.3 编码 1259

40.6.4 表单数据 1260

40.6.5 cookie 1261

40.6.6 发送JSON 1262

40.7 依赖注入 1262

40.7.1 定义服务 1263

40.7.2 注册服务 1263

40.7.3 注入服务 1264

40.7.4 调用控制器 1264

40.8 使用映射的路由 1265

40.9 使用中间件 1266

40.10 会话状态 1268

40.11 配置ASP.NET 1270

40.11.1 读取配置 1271

40.11.2 基于环境的不同配置 1271

40.11.3 用户密钥 1272

40.12 小结 1273

第41章 ASP.NET MVC 1274

41.1 为ASP.NETMVC 6建立服务 1274

41.2 定义路由 1276

41.2.1 添加路由 1277

41.2.2 使用路由约束 1278

41.3 创建控制器 1278

41.3.1 理解动作方法 1278

41.3.2 使用参数 1279

41.3.3 返回数据 1280

41.3.4 使用Controller基类和POCO控制器 1281

41.4 创建视图 1283

41.4.1 向视图传递数据 1283

41.4.2 Razor语法 1284

41.4.3 创建强类型视图 1285

41.4.4 定义布局 1286

41.4.5 用部分视图定义内容 1290

41.4.6 使用视图组件 1294

41.4.7 在视图中使用依赖注入 1296

41.4.8 为多个视图导入名称空间 1296

41.5 从客户端提交数据 1296

41.5.1 模型绑定器 1298

41.5.2 注解和验证 1299

41.6 使用HTML Helper 1300

41.6.1 简单的Helper 1300

41.6.2 使用模型数据 1301

41.6.3 定义HTML特性 1302

41.6.4 创建列表 1302

41.6.5 强类型化的Helper 1303

41.6.6 编辑器扩展 1304

41.6.7 实现模板 1304

41.7 标记辅助程序 1305

41.7.1 激活标记辅助程序 1306

41.7.2 使用锚定标记辅助程序 1306

41.7.3 使用标签标记辅助程序 1307

41.7.4 使用输入标记辅助程序 1308

41.7.5 使用表单进行验证 1309

41.7.6 创建自定义标记辅助程序 1310

41.8 实现动作过滤器 1313

41.9 创建数据驱动的应用程序 1315

41.9.1 定义模型 1315

41.9.2 创建数据库 1317

41.9.3 创建服务 1319

41.9.4 创建控制器 1321

41.9.5 创建视图 1324

41.10 实现身份验证和授权 1327

41.10.1 存储和检索用户信息 1327

41.10.2 启动身份系统 1328

41.10.3 执行用户注册 1329

41.10.4 设置用户登录 1331

41.10.5 验证用户的身份 1332

41.11 小结 1333

第42章 ASP.NETWebAPI 1334

42.1 概述 1334

42.2 创建服务 1335

42.2.1 定义模型 1336

42.2.2 创建存储库 1336

42.2.3 创建控制器 1338

42.2.4 修改响应格式 1341

42.2.5 REST结果和状态码 1341

42.3 创建异步服务 1342

42.4 创建.NET客户端 1345

42.4.1 发送GET请求 1345

42.4.2 从服务中接收XML 1349

42.4.3 发送POST请求 1350

42.4.4 发送PUT请求 1351

42.4.5 发送DELETE请求 1352

42.5 写入数据库 1353

42.5.1 定义数据库 1353

42.5.2 创建存储库 1354

42.6 创建元数据 1356

42.7 创建和使用OData服务 1358

42.7.1 创建数据模型 1358

42.7.2 创建服务 1359

42.7.3 OData查询 1360

42.8 小结 1361

第43章 WebHooks和SignalR 1362

43.1 概述 1362

43.2 SignalR的体系结构 1363

43.3 使用SignalR的简单聊天程序 1364

43.3.1 创建集线器 1364

43.3.2 用HTML和JavaScript创建客户端 1365

43.3.3 创建SignalR.NET客户端 1367

43.4 分组连接 1370

43.4.1 用分组扩展集线器 1371

43.4.2 用分组扩展WPF客户端 1372

43.5 WebHooks的体系结构 1375

43.6 创建Dropbox和GitHub接收器 1376

43.6.1 创建Web应用程序 1376

43.6.2 为Dropbox和GitHub配置WebHooks 1377

43.6.3 实现处理程序 1377

43.6.4 用Dropbox和GitHub配置应用程序 1379

43.6.5 运行应用程序 1380

43.7 小结 1382

第44章 WCF 1383

44.1 WCF概述 1383

44.1.1 SOAP 1385

44.1.2 WSDL 1385

44.2 创建简单的服务和客户端 1386

44.2.1 定义服务和数据协定 1386

44.2.2 数据访问 1389

44.2.3 服务的实现 1390

44.2.4 WCF服务宿主和WCF测试客户端 1391

44.2.5 自定义服务宿主 1393

44.2.6 WCF客户端 1395

44.2.7 诊断 1397

44.2.8 与客户端共享协定程序集 1399

44.3 协定 1400

44.3.1 数据协定 1400

44.3.2 版本问题 1401

44.3.3 服务协定和操作协定 1401

44.3.4 消息协定 1402

44.3.5 错误协定 1403

44.4 服务的行为 1404

44.5 绑定 1408

44.5.1 标准绑定 1408

44.5.2 标准绑定的功能 1409

44.5.3 WebSocket 1410

44.6 宿主 1414

44.6.1 自定义宿主 1414

44.6.2 WAS宿主 1415

44.6.3 预配置的宿主类 1415

44.7 客户端 1416

44.7.1 使用元数据 1417

44.7.2 共享类型 1418

44.8 双工通信 1418

44.8.1 双工通信的协定 1418

44.8.2 用于双工通信的服务 1419

44.8.3 用于双工通信的客户应用程序 1420

44.9 路由 1421

44.9.1 路由示例应用程序 1422

44.9.2 路由接口 1423

44.9.3 WCF路由服务 1423

44.9.4 为故障切换使用路由器 1424

44.9.5 改变协定的桥梁 1425

44.9.6 过滤器的类型 1426

44.10 小结 1426

第45章 部署网站和服务 1427

45.1 部署Web应用程序 1427

45.2 部署前的准备 1428

45.2.1 创建ASP.NET 4.6Web应用程序 1428

45.2.2 创建ASP.NET Core 1.0Web应用程序 1429

45.2.3 ASP.NET 4.6的配置文件 1430

45.2.4 ASP.NETCore 1.0的配置文件 1431

45.3 部署到IIS 1433

45.3.1 使用IIS Manager准备Web应用程序 1433

45.3.2 Web部署到IIS 1437

45.4 部署到Microsoft Azure 1440

45.4.1 创建SQL数据库 1440

45.4.2 用SQL Azure测试本地网站 1440

45.4.3 部署到Microsoft Azure Web应用 1441

45.5 部署到Docker 1441

45.6 小结 1442

相关图书
作者其它书籍
返回顶部