图书介绍

C#高级编程 C#6&.NET CORE 1.0 第10版PDF|Epub|txt|kindle电子书版本网盘下载

C#高级编程 C#6&.NET CORE 1.0 第10版
  • (美)Christian Nagel著;李铭译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302461968
  • 出版时间:2017
  • 标注页数:1442页
  • 文件大小:408MB
  • 文件页数:1480页
  • 主题词:C语言-程序设计;计算机网络-程序设计

PDF下载


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

下载说明

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

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

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

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

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

图书目录

第Ⅰ部分 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 25

1.2.3 .NET 3.0——Windows Presentation Foundation5

1.2.4 C#3和.NET 3.5 ——LINQ5

1.2.5 C#4和.NET4.0——dynamic和TPL6

1.2.6 C#5和异步编程6

1.2.7 C#6和.NET Core7

1.2.8 选择技术,继续前进8

1.3 .NET20158

1.3.1 .NET Framework 4.69

1.3.2.NET Core 1.010

1.3.3 程序集11

1.3.4 NuGet包12

1.3.5 公共语言运行库13

1.3.6.NET Native14

1.3.7 Windows运行库14

1.4 Hello,World15

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 UWP24

1.7.4 SOAP服务和WCF24

1.7.5 Web服务和ASP.NETWeb API24

1.7.6 WebHooks和SignalR25

1.7.7 Windows服务25

1.7.8 Web应用程序25

1.7.9 Microsoft Azure26

1.8 开发工具27

1.8.1 Visual Studio Community27

1.8.2 Visual Studio Professionalwith MSDN27

1.8.3 Visual Studio Enterprise with MSDN27

1.8.4 Visual Studio Code28

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和#undef63

2.10.2 #if、#elif、#else和#endif64

2.10.3 #warning和#error65

2.10.4 #region和#endregion65

2.10.5 #line65

2.10.6 #pragma65

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

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 使用BlockingCollection332

12.5.3 使用Concurrent-Dictionary333

12.5.4 完成管道334

12.6 小结335

第13章 LINQ337

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

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 自定义特性示例:WhatsNewAttributes425

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 DLR448

16.7 包含DLR ScriptRuntime449

16.8 DynamicObject和ExpandoObject451

16.8.1 DynamicObject451

16.8.2 ExpandoObject453

16.9 小结455

第Ⅱ部分 .NET Core与Windows Runtime458

第17章 Visual Studio 201 5458

17.1 使用Visual Studio 2015458

17.1.1 Visual Studio的版本461

17.1.2 Visual Studio设置461

17.2 创建项目462

17.2.1 面向多个版本的.NET Framework463

17.2.2 选择项目类型464

17.3 浏览并编写项目469

17.3.1 构建环境:CLI和MSBuild469

17.3.2 Solution Explorer470

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 Tree492

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 Visualizer504

17.8.3 代码分析器505

17.8.4 Code Metrics506

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 Framework547

19.2.7 IntelliTest549

19.3 使用xUnit进行单元测试549

19.3.1 使用xUnit和.NETCore550

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 Insights566

20.1 诊断概述566

20.2 使用EventSource跟踪567

20.2.1 EventSource的简单用法568

20.2.2 跟踪工具570

20.2.3 派生自EventSource572

20.2.4 使用注释和EventSource574

20.2.5 创建事件清单模式576

20.2.6 使用活动ID578

20.3 创建自定义侦听器581

20.4 使用Application Insights582

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

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 Principal687

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

25.2.7 使用HttpClient和Windows Runtime715

25.3 使用WebListener类717

25.4 使用实用工具类720

25.4.1 URI721

25.4.2 IPAddress722

25.4.3 IPHostEntry723

25.4.4 Dns724

25.5 使用TCP725

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

25.5.2 创建TCP侦听器728

25.5.3 创建TCP客户端736

25.5.4 TCP和UDP740

25.6 使用UDP740

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

26.1 概述754

26.2 Composition库的体系结构756

26.2.1 使用特性的Composition757

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和JSON787

27.1 数据格式787

27.1.1 XML788

27.1.2.NET支持的XML标准789

27.1.3 在框架中使用XML790

27.1.4 JSON790

27.2 读写流格式的XML792

27.2.1 使用XmlReader类读取XML793

27.2.2 使用XmlWriter类797

27.3 在.NET中使用DOM798

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导航XML803

27.4.5 使用XPath评估804

27.4.6 用XPath修改XML805

27.5 在XML中序列化对象806

27.5.1 序列化简单对象807

27.5.2 序列化一个对象树809

27.5.3 没有特性的序列化811

27.6 LINQ to XML814

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 转换为XML823

27.7 JSON824

27.7.1 创建JSON825

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

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 使用集合和XAML867

29.3 依赖属性867

29.3.1 创建依赖属性868

29.3.2 值变更回调和事件869

29.3.3 强制值回调和WPF870

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 SolidColorBrush893

30.5.2 LinearGradientBrush894

30.5.3 ImageBrush894

30.5.4 WebViewBrush894

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 样式化ListView913

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 Hub969

32.2.6 Pivot971

32.2.7 应用程序shell972

32.2.8 汉堡按钮976

32.2.9 分隔视图977

32.2.10 给SplitView窗格添加内容979

32.3 布局981

32.3.1 VariableSizedWrapGrid981

32.3.2 RelativePanel983

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 AutoSuggest996

32.6.3 Inking998

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和Mapcontrol1031

33.8.1 使用MapControl1031

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 StackPanel1054

34.3.2 WrapPanel1054

34.3.3 Canvas1055

34.3.4 DockPanel1056

34.3.5 Grid1056

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 Commanding1065

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 TreeView1101

34.9 DataGrid1106

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 TextEffect1121

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 Installer1146

36.4 ClickOnce1147

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部署API1152

36.5 UWP应用程序1153

36.5.1 创建应用程序包1153

36.5.2 Windows App Certification Kit1155

36.5.3 旁加载1156

36.6 小结1156

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

第37章 ADO.NET1158

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 Core1174

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 流利API1190

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 Explorer1227

39.4.5 编写自定义ServiceController类1228

39.5 故障排除和事件日志1236

39.6 小结1237

第40章 ASP.NET Core1238

40.1 ASP.NET Core 1.01238

40.2 Web技术1239

40.2.1 HTML1239

40.2.2 CSS1240

40.2.3 JavaScript和TypeScript1240

40.2.4 脚本库1240

40.3 ASP.NETWeb项目1241

40.4 启动1245

40.5 添加静态内容1248

40.5.1 使用JavaScript包管理器:npm1249

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 cookie1261

40.6.6 发送JSON1262

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

40.11.1 读取配置1271

40.11.2 基于环境的不同配置1271

40.11.3 用户密钥1272

40.12 小结1273

第41章 ASP.NET MVC1274

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 Helper1300

41.6.1 简单的Helper1300

41.6.2 使用模型数据1301

41.6.3 定义HTML特性1302

41.6.4 创建列表1302

41.6.5 强类型化的Helper1303

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

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 从服务中接收XML1349

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和SignalR1362

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配置WebHooks1377

43.6.3 实现处理程序1377

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

43.6.5 运行应用程序1380

43.7 小结1382

第44章 WCF1383

44.1 WCF概述1383

44.1.1 SOAP1385

44.1.2 WSDL1385

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 WebSocket1410

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 部署到IIS1433

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

45.3.2 Web部署到IIS1437

45.4 部署到Microsoft Azure1440

45.4.1 创建SQL数据库1440

45.4.2 用SQL Azure测试本地网站1440

45.4.3 部署到Microsoft Azure Web应用1441

45.5 部署到Docker1441

45.6 小结1442

热门推荐