C#高级编程C#6&NETCore10Christipdf下载pdf下载

C#高级编程C#6&NETCore10Christi百度网盘pdf下载

作者:
简介:本篇主要提供C#高级编程C#6&NETCore10Christipdf下载
出版社:博远慧达图书专营店
出版时间:2017-04
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

温馨提示: 我店与出版社联袂推出特价馆配图书,旨在为广大读者提供低价格,优品质的书籍。 请认准书背封底直径为1厘米方型或圆型的小孔,此为正版馆配图书的标志。 极少数图书可能略有磨损但不影响您阅读!个别图书的光盘为原盘复刻。 如阅读过程中发现图书光盘无法正常读取,本店会积极协助您网传处理。

基本信息

书名:C#高级编程(第10版) C# 6 & NET Core 1 0

定价:168.00元

售价:117.60元,便宜50.40元,折扣70

作者: Christian Nagel 李铭

出版社:清华大学出版社

出版日期:2017-04-01

ISBN:9787302461968

字数:

页码:

版次:1

装帧:平装-胶订

开本:16开

商品重量:0.4kg

编辑推荐


对于开发人员,把C#语言和.NET描述为*重要的新技术一点都不夸张。.NET提供了一种环境。在这种环境中,可以开发在Windows上运行的几乎所有应用程序。在Windows上运行的是.NET Framework以前的版本,新版本.NET Core 1.0不仅在Windows上运行,还在Linux和Mac系统上运行。C#是专门用于.NET的编程语言。

内容提要


提升C#和.NET技能的必备参考资源 Visual Studio 2015、ASP.NET Core 1.0和Universal Windows Platform的推出,为开发人员提供了使用C#创建应用程序的新方式。作为经典C#畅销书 ,本书涵盖了充分利用升级功能,积极简化工作流程所需的全部信息。本书循序渐进地讲解了Visual Studio 2015、.NET Core 1.0、ASP.NET MVC、Universal Windows Platform、WPF的*变化。每一章都提供了清晰的解释、下载的代码,并从专家的角度提供了有价值的视野。有本书在手,读者可以快速获得*的特性和功能。主要内容◆ 通过.NET Core 和C# 6的增强功能,重新塑造了.NET平台,包括新增的.NET编译器平台◆ 展示了如何使用新的Visual Studio工具和用于ASP.NET Core 1.0、ASP.NET MVC、Web API、WPF和Universal Windows Platform的模板◆ 介绍允许应用程序在Windows、Linux和OS X上运行的.NET Core框架,还囊括了任务和并行编程,访问文件系统,以及网络堆栈◆ 演示了如何使用ASP.NET MVC 6和Web API创建Web应用程序,以及利用SignalR和WebHooks的推送通知◆ 介绍专业开发功能,例如单元测试,通过MVVM模式在WPF和Universal Windows Platform之间共享代码

目录


第Ⅰ部分 C# 语 言

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

1.1 选择技术 2

1.2 回顾.NET历史 3

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

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

1.2.3.NET 3.0—— Windows

Presentation Foundation 5

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

1.2.5C# 4和.NET 4.0—— dynamic

和TPL 6

1.2.6C# 5和异步编程 6

1.2.7C# 6和.NET Core 7

1.2.8选择技术,继续前进 8

1.3.NET 2015 8

1.3.1.NET Framework 4.6 9

1.3.2.NET Core 1.0 10

1.3.3程序集 11

1.3.4NuGet 包 12

1.3.5公共语言运行库 13

1.3.6.NET Native 14

1.3.7Windows 运行库 14

1.4Hello, World 15

1.5 用.NET 4.6编译 16

1.6 用.NET CoreCLI编译 17

1.6.1设置环境 18

1.6.2构建应用程序 18

1.6.3打包和发布应用程序 21

1.7 应用程序类型和技术 22

1.7.1数据访问 22

1.7.2Windows桌面应用程序 23

1.7.3UWP 24

1.7.4SOAP服务和WCF 24

1.7.5Web服务和ASP.NET Web

API 24

1.7.6WebHooks和SignalR 25

1.7.7Windows服务 25

1.7.8Web应用程序 25

1.7.9Microsoft Azure 26

1.8 开发工具 27

1.8.1Visual Studio Community 27

1.8.2Visual Studio Professional with

MSDN 27

1.8.3Visual Studio Enterprise with

MSDN 27

1.8.4Visual Studio Code 28

1.9 小结 28

第2章 核心C# 29

2.1C#基础 30

2.2 用VisualStudio创建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.1using语句 58

2.7.2名称空间的别名 59

2.8Main()方法 60

2.9 使用注释 61

2.9.1源文件中的内部注释 61

2.9.2XML文档 62

2.10C#预处理器指令 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.11C#编程准则 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.1ref参数 92

3.6.2out参数 93

3.7 可空类型 94

3.8 枚举 95

3.9 部分类 97

3.10扩展方法 99

3.11Object类 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.6is和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.2IDisposable接口 131

5.4.3using语句 132

5.4.4实现IDisposable接口和

析构函数 133

5.4.5IDisposable和终结器的

规则 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.5Array类 185

7.5.1创建数组 185

7.5.2复制数组 186

7.5.3排序 187

7.6 数组作为参数 190

7.6.1数组协变 190

7.6.2ArraySegment 191

7.7 枚举 191

7.7.1IEnumerator接口 192

7.7.2foreach语句 192

7.7.3yield语句 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.4Action和Func

委托 248

9.2.5BubbleSorter示例 248

9.2.6多播委托 251

9.2.7匿名方法 254

9.3lambda表达式 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.1System.String类 265

10.1.1构建字符串 266

10.1.2StringBuilder成员 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.2RegularExpressionsPlayaround

示例 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.4Lookup类 312

11.8.5有序字典 313

11.9集 313

11.10性能 315

11.11小结 316

第12章 特殊的集合 317

12.1概述 317

12.2处理位 317

12.2.1BitArray类 318

12.2.2BitVector32结构 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.1LINQ概述 337

13.1.1列表和实体 338

13.1.2LINQ查询 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.7LINQ 查询中的变量 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.5LINQ提供程序 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.3System.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.1System.Type类 428

16.3.2TypeView示例 430

16.3.3Assembly类 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.5dynamic类型 443

16.6DLR 448

16.7包含DLR ScriptRuntime 449

16.8DynamicObject和

ExpandoObject 451

16.8.1DynamicObject 451

16.8.2ExpandoObject 453

16.9小结 455

第Ⅱ部分 .NET Core与Windows

Runtime

第17章 Visual Studio 2015 458

17.1使用Visual Studio 2015 458

17.1.1Visual Studio的版本 461

17.1.2Visual 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.2Solution 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.3Live 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.2Concurrency Visualizer 504

17.8.3代码分析器 505

17.8.4Code Metrics 506

17.9小结 506

第18章 .NET编译器平台 507

18.1简介 507

18.2编译器管道 509

18.3语法分析 509

18.3.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.6Visual Studio Code重构 529

18.6.1VSIX包 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.6Fakes Framework 547

19.2.7IntelliTest 549

19.3使用xUnit进行单元测试 549

19.3.1使用xUnit和.NET Core 550

19.3.2创建Fact属性 550

19.3.3创建Theory属性 551

19.3.4用dot工具运行单元

测试 552

19.3.5使用Mocking库 552

19.4UI 测试 556

19.5Web测试 559

19.5.1创建Web测试 560

19.5.2运行Web测试 562

19.5.3Web 负载测试 563

19.6小结 565

第20章 诊断和ApplicationInsights 566

20.1诊断概述 566

20.2使用EventSource跟踪 567

20.2.1EventSource的简单用法 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.2Parallel类 591

21.2.1使用Parallel.For()方法

循环 591

21.2.2提前停止Parallel.For 594

21.2.3Parallel.For()的初始化 595

21.2.4使用Parallel.ForEach()

方法循环 596

21.2.5通过Parallel.Invoke()方法

调用多个方法 597

21.3任务 597

21.3.1启动任务 597

21.3.2Future——任务的结果 600

21.3.3连续的任务 601

21.3.4任务层次结构 602

21.3.5从方法中返回任务 603

21.3.6等待任务 603

21.4取消架构 604

21.4.1Parallel.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.3lock语句和线程安全 618

22.4Interlocked类 623

22.5Monitor类 624

22.6SpinLock结构 625

22.7WaitHandle基类 626

22.8Mutex类 627

22.9Semaphore类 628

22.10Events类 630

22.11Barrier类 633

22.12ReaderWriterLockSlim类 636

22.13Timer类 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.1StreamReader类 663

23.5.2StreamWriter类 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.1Windows应用程序

编辑器 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.2Windows 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.2HttpClient类 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.1URI 721

25.4.2IPAddress 722

25.4.3IPHostEntry 723

25.4.4Dns 724

25.5使用TCP 725

25.5.1使用TCP创建客户

程序 726

25.5.2创建TCP侦听器 728

25.5.3创建TCP客户端 736

25.5.4TCP和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.2Composition库的体系结构 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.1XML 788

27.1.2.NET支持的XML标准 789

27.1.3在框架中使用XML 790

27.1.4JSON 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.1XPathDocument类 802

27.4.2XPathNavigator类 803

27.4.3XPathNodeIterator类 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.6LINQ to XML 814

27.6.1XDocument对象 815

27.6.2XElement对象 816

27.6.3XNamespace对象 817

27.6.4XComment对象 818

27.6.5XAttribute对象 819

27.6.6使用LINQ查询XML

文档 820

27.6.7查询动态的XML文档 821

27.6.8转换为对象 822

27.6.9转换为XML 823

27.7JSON 824

27.7.1创建JSON 825

27.7.2转换对象 825

27.7.3序列化对象 827

27.8小结 828

第28章 本地化 829

28.1全球市场 830

28.2System.Globalization名称

空间 830

28.2.1Unicode问题 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.4System.Resources名称

空间 846

28.4使用WPF本地化 846

28.5使用ASP.NET Core本地化 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应用程序

第29章 核心XAML 860

29.1XAML的作用 860

29.2XAML概述 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.2WPF的冒泡和隧道 873

29.4.3用WPF实现自定义路由

事件 875

29.5附加属性 876

29.6标记扩展 879

29.6.1创建自定义标记扩展 880

29.6.2XAML定义的标记

扩展 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.1SolidColorBrush 893

30.5.2LinearGradientBrush 894

30.5.3ImageBrush 894

30.5.4WebViewBrush 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.4ListView项的数据模板 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.9IoC容器 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.5Hub 969

32.2.6Pivot 971

32.2.7应用程序shell 972

32.2.8汉堡按钮 976

32.2.9分隔视图 977

32.2.10给SplitView窗格添加

内容 979

32.3布局 981

32.3.1VariableSizedWrapGrid 981

32.3.2RelativePanel 983

32.3.3自适应触发器 984

32.3.4XAML视图 988

32.3.5延迟加载 988

32.4命令 989

32.5已编译的数据绑定 992

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

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

资源 994

32.6控件 995

32.6.1TextBox 控件 995

32.6.2AutoSuggest 996

32.6.3Inking 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.8Geolocation和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.7Rolling 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.1StackPanel 1054

34.3.2WrapPanel 1054

34.3.3Canvas 1055

34.3.4DockPanel 1056

34.3.5Grid 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.6Commanding 1065

34.6.1定义命令 1066

34.6.2定义命令源 1067

34.6.3命令绑定 1067

34.7数据绑定 1068

34.7.1BooksDemo应用程序

内容 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.8TreeView 1101

34.9DataGrid 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.5XPS文档 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.1xcopy部署 1146

36.3.2Windows Installer 1146

36.4ClickOnce 1147

36.4.1ClickOnce操作 1147

36.4.2发布ClickOnce应用

程序 1147

36.4.3ClickOnce设置 1149

36.4.4ClickOnce文件的应用

程序缓存 1151

36.4.5应用程序的安装 1151

36.4.6ClickOnce部署API 1152

36.5UWP应用程序 1153

36.5.1创建应用程序包 1153

36.5.2Windows App Certification

Kit 1155

36.5.3旁加载 1156

36.6小结 1156

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

第37章 ADO.NET 1158

37.1ADO.NET概述 1158

37.1.1示例数据库 1159

37.1.2NuGet 包和名称空间 1160

37.2使用数据库连接 1160

37.2.1管理连接字符串 1161

37.2.2连接池 1162

37.2.3连接信息 1162

37.3命令 1162

37.3.1ExecuteNonQuery()

方法 1164

37.3.2ExecuteScalar()方法 1165

37.3.3ExecuteReader()方法 1165

37.3.4调用存储过程 1167

37.4异步数据访问 1168

37.5事务 1169

37.6小结 1173

第38章 Entity Framework Core 1174

38.1Entity Framework简史 1174

38.2Entity 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.1Windows服务 1207

39.2Windows服务的体系结构 1209

39.2.1服务程序 1209

39.2.2服务控制程序 1210

39.2.3服务配置程序 1210

39.2.4Windows服务的类 1211

39.3创建Windows服务程序 1211

39.3.1创建服务的核心功能 1211