C#高级编程(第8版)txt,chm,pdf,epub,mobi下载 作者:Christian Nagel/Bill Evjen/Jay Glynn 出版社: 清华大学出版社 原作名: Professional C# 2012 and .NET 4.5 译者: 李铭 出版年: 2013-10-1 页数: 1517 定价: 148.00 装帧: 平装 ISBN: 9787302334118 内容简介 · · · · · ·《c#高级编程(第8版)》是c# 2012和.net 4.5高级技术的终极资源,旨在帮助读者更新、提高用c# 2012和.net 4.5编写windows应用程序、web应用程序、windows 8样式应用程序的技巧。本书的顶级作者专家团队首先介绍了c#的基础知识,之后全面探讨了该语言和架构中的新增功能,以及新的测试驱动的开发和并发编程特性。本书提供了学习c# 2012和.net 4.5所需的所有知识,使读者可以最大限度地发挥出这些动态技术的潜能。 主要内容 介绍富有挑战性的.net特性,包括linq、linq toequities、linq to xml、wcf、wpf、workflow和泛型 详细论述了异步编程、模式、基础和方法 研究了windows 8开发的新选项和接口、winrt和windows 8样式应用程序 阐述了文件和注册表的操作 介绍... 作者简介 · · · · · ·李敏波,2001年获清华大学工学博士,随后在新加坡国立大学从事协同产品设计与门户的博士后研究。2002年至2004年在金蝶软件(中国)公司中央研究院担任高级研究员。现任复旦大学软件学院零售与分销管理系统研究中心的副主任,从事教学与科研工作。 目录 · · · · · ·第Ⅰ部分 C# 语 言第1章 .NET体系结构 2 1.1 C#与.NET的关系 2 1.2 公共语言运行库 3 1.2.1 平台无关性 3 1.2.2 提高性能 3 · · · · · ·() 第Ⅰ部分 C# 语 言 第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 中间语言 5 1.3.1 面向对象和接口的支持 6 1.3.2 不同的值类型和引用类型 6 1.3.3 强数据类型化 7 1.3.4 通过异常处理错误 11 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类 14 1.6 名称空间 15 1.7 用C#创建.NET应用程序 16 1.7.1 创建ASP.NET应用程序 16 1.7.2 使用WPF 18 1.7.3 Windows 8应用程序 18 1.7.4 Windows服务 18 1.7.5 WCF 19 1.7.6 Windows WF 19 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 预定义的值类型 33 2.4.4 预定义的引用类型 35 2.5 流控制 37 2.5.1 条件语句 37 2.5.2 循环 41 2.5.3 跳转语句 44 2.6 枚举 45 2.7 名称空间 46 2.7.1 using语句 47 2.7.2 名称空间的别名 48 2.8 Main()方法 49 2.8.1 多个Main()方法 49 2.8.2 给Main()方法传递参数 50 2.9 有关编译C#文件的更多内容 51 2.10 控制台I/O 53 2.11 使用注释 54 2.11.1 源文件中的内部注释 54 2.11.2 XML文档 55 2.12 C#预处理器指令 57 2.12.1 #define和 #undef 57 2.12.2 #if、#elif、#else和#endif 58 2.12.3 #warning和 # error 59 2.12.4 #region和#endregion 59 2.12.5 #line 60 2.12.6 #pragma 60 2.13 C#编程规则 60 2.13.1 关于标识符的规则 60 2.13.2 用法约定 61 2.14 小结 67 第3章 对象和类型 68 3.1 创建及使用类 68 3.2 类和结构 69 3.3 类 69 3.3.1 数据成员 70 3.3.2 函数成员 70 3.3.3 只读字段 82 3.4 匿名类型 83 3.5 结构 84 3.5.1 结构是值类型 85 3.5.2 结构和继承 86 3.5.3 结构的构造函数 86 3.6 弱引用 86 3.7 部分类 88 3.8 静态类 89 3.9 Object类 89 3.9.1 System.Object()方法 90 3.9.2 ToString()方法 91 3.10 扩展方法 92 3.11 小结 93 第4章 继承 94 4.1 继承 94 4.2 继承的类型 94 4.2.1 实现继承和接口继承 94 4.2.2 多重继承 95 4.2.3 结构和类 95 4.3 实现继承 95 4.3.1 虚方法 96 4.3.2 隐藏方法 97 4.3.3 调用函数的基类版本 98 4.3.4 抽象类和抽象函数 99 4.3.5 密封类和密封方法 99 4.3.6 派生类的构造函数 100 4.4 修饰符 105 4.4.1 可见性修饰符 105 4.4.2 其他修饰符 106 4.5 接口 106 4.5.1 定义和实现接口 107 4.5.2 派生的接口 110 4.6 小结 112 第5章 泛型 113 5.1 泛型概述 113 5.1.1 性能 114 5.1.2 类型安全 115 5.1.3 二进制代码的重用 115 5.1.4 代码的扩展 116 5.1.5 命名约定 116 5.2 创建泛型类 116 5.3 泛型类的功能 120 5.3.1 默认值 121 5.3.2 约束 122 5.3.3 继承 124 5.3.4 静态成员 125 5.4 泛型接口 125 5.4.1 协变和抗变 126 5.4.2 泛型接口的协变 127 5.4.3 泛型接口的抗变 128 5.5 泛型结构 129 5.6 泛型方法 132 5.6.1 泛型方法示例 132 5.6.2 带约束的泛型方法 133 5.6.3 带委托的泛型方法 134 5.6.4 泛型方法规范 135 5.7 小结 136 第6章 数组 137 6.1 同一类型和不同类型的多个对象 137 6.2 简单数组 138 6.2.1 数组的声明 138 6.2.2 数组的初始化 138 6.2.3 访问数组元素 139 6.2.4 使用引用类型 140 6.3 多维数组 141 6.4 锯齿数组 142 6.5 Array类 143 6.5.1 创建数组 143 6.5.2 复制数组 144 6.5.3 排序 145 6.6 数组作为参数 148 6.6.1 数组协变 149 6.6.2 ArraySegment[T] 149 6.7 枚举 150 6.7.1 IEnumerator接口 150 6.7.2 foreach语句 151 6.7.3 yield语句 151 6.8 元组 156 6.9 结构比较 157 6.10 小结 160 第7章 运算符和类型强制转换 161 7.1 运算符和类型转换 161 7.2 运算符 161 7.2.1 运算符的简化操作 163 7.2.2 运算符的优先级 167 7.3 类型的安全性 168 7.3.1 类型转换 168 7.3.2 装箱和拆箱 172 7.4 比较对象的相等性 172 7.4.1 比较引用类型的相等性 172 7.4.2 比较值类型的相等性 173 7.5 运算符重载 174 7.5.1 运算符的工作方式 175 7.5.2 运算符重载的示例:Vector结构 176 7.6 用户定义的类型强制转换 182 7.6.1 实现用户定义的类型强制转换 184 7.6.2 多重类型强制转换 189 7.7 小结 193 第8章 委托、Lambda表达式 和事件 194 8.1 引用方法 194 8.2 委托 195 8.2.1 声明委托 195 8.2.2 使用委托 196 8.2.3 简单的委托示例 199 8.2.4 Action[T]和Func[T]委托 201 8.2.5 BubbleSorter示例 202 8.2.6 多播委托 204 8.2.7 匿名方法 208 8.3 Lambda表达式 209 8.3.1 参数 209 8.3.2 多行代码 210 8.3.3 闭包 210 8.3.4 使用foreach语句的闭包 211 8.4 事件 212 8.4.1 事件发布程序 212 8.4.2 事件侦听器 214 8.4.3 弱事件 215 8.5 小结 219 第9章 字符串和正则表达式 220 9.1 System.String类 221 9.1.1 创建字符串 222 9.1.2 StringBuilder成员 225 9.1.3 格式字符串 226 9.2 正则表达式 231 9.2.1 正则表达式概述 231 9.2.2 RegularExpressionsPlayaround示例 232 9.2.3 显示结果 235 9.2.4 匹配、组合和捕获 236 9.3 小结 238 第10章 集合 239 10.1 概述 239 10.2 集合接口和类型 240 10.3 列表 241 10.3.1 创建列表 242 10.3.2 只读集合 251 10.4 队列 251 10.5 栈 255 10.6 链表 256 10.7 有序列表 262 10.8 字典 263 10.8.1 键的类型 264 10.8.2 字典示例 265 10.8.3 Lookup类 269 10.8.4 有序字典 270 10.9 集 270 10.10 可观察的集合 272 10.11 位数组 273 10.11.1 BitArray类 274 10.11.2 BitVector32结构 276 10.12 并发集合 278 10.12.1 创建管道 279 10.12.2 使用Blocking-Collection 282 10.12.3 使用Concurrent-Dictionary 283 10.12.4 完成管道 285 10.13 性能 286 10.14 小结 288 第11章 LINQ 289 11.1 LINQ概述 289 11.1.1 列表和实体 289 11.1.2 LINQ查询 293 11.1.3 扩展方法 294 11.1.4 推迟查询的执行 295 11.2 标准的查询操作符 297 11.2.1 筛选 299 11.2.2 用索引筛选 299 11.2.3 类型筛选 300 11.2.4 复合的from子句 300 11.2.5 排序 301 11.2.6 分组 302 11.2.7 对嵌套的对象分组 303 11.2.8 内连接 304 11.2.9 左外连接 305 11.2.10 组连接 306 11.2.11 集合操作 309 11.2.12 合并 310 11.2.13 分区 311 11.2.14 聚合操作符 312 11.2.15 转换操作符 314 11.2.16 生成操作符 315 11.3 并行LINQ 316 11.3.1 并行查询 316 11.3.2 分区器 317 11.3.3 取消 317 11.4 表达式树 318 11.5 LINQ提供程序 320 11.6 小结 321 第12章 动态语言扩展 322 12.1 DLR 322 12.2 dynamic类型 323 12.3 包含DLR ScriptRuntime 327 12.4 DynamicObject和ExpandoObject 330 12.4.1 DynamicObject 330 12.4.2 ExpandoObject 332 12.5 小结 333 第13章 异步编程 334 13.1 异步编程的重要性 334 13.2 异步模式 335 13.2.1 同步调用 342 13.2.2 异步模式 343 13.2.3 基于事件的异步模式 344 13.2.4 基于任务的异步模式 345 13.3 异步编程的基础 347 13.3.1 创建任务 347 13.3.2 调用异步方法 348 13.3.3 延续任务 348 13.3.4 同步上下文 349 13.3.5 使用多个异步方法 349 13.3.6 转换异步模式 350 13.4 错误处理 351 13.4.1 异步方法的异常处理 352 13.4.2 多个异步方法的异常处理 352 13.4.3 AggregateException类 353 13.5 取消 353 13.5.1 开始取消任务 354 13.5.2 使用框架特性取消任务 354 13.5.3 取消自定义任务 355 13.6 小结 355 第14章 内存管理和指针 356 14.1 内存管理 356 14.2 后台内存管理 356 14.2.1 值数据类型 357 14.2.2 引用数据类型 358 14.2.3 垃圾回收 359 14.3 释放非托管的资源 361 14.3.1 析构函数 361 14.3.2 IDisposable接口 362 14.3.3 实现IDisposable接口和析构函数 363 14.4 不安全的代码 365 14.4.1 用指针直接访问内存 365 14.4.2 指针示例:PointerPlayground 374 14.4.3 使用指针优化性能 378 14.5 小结 381 第15章 反射 382 15.1 在运行期间处理和检查代码 382 15.2 自定义特性 383 15.2.1 编写自定义特性 383 15.2.2 自定义特性示例:WhatsNewAttributes 386 15.3 反射 389 15.3.1 System.Type类 389 15.3.2 TypeView示例 392 15.3.3 Assembly类 393 15.3.4 完成WhatsNewAttributes示例 395 15.4 小结 398 第16章 错误和异常 399 16.1 简介 399 16.2 异常类 400 16.3 捕获异常 401 16.3.1 实现多个catch块 403 16.3.2 在其他代码中捕获异常 407 16.3.3 System.Exception属性 407 16.3.4 没有处理异常时所发生的情况 408 16.3.5 嵌套的 try块 408 16.4 用户定义的异常类 410 16.4.1 捕获用户定义的异常 411 16.4.2 抛出用户定义的异常 412 16.4.3 定义用户定义的异常类 415 16.5 调用者信息 417 16.6 小结 418 第Ⅱ部分 Visual Studio 第17章 Visual Studio 2012 420 17.1 用Visual Studio 2012进行工作 420 17.1.1 项目文件的改进 423 17.1.2 Visual Studio的版本 423 17.1.3 Visual Studio设置 424 17.2 创建项目 424 17.2.1 面向多个版本的.NET Framework 425 17.2.2 选择项目类型 427 17.3 浏览并编写项目 430 17.3.1 Solution Explorer 430 17.3.2 用代码编辑器进行工作 436 17.3.3 学习和理解其他窗口 438 17.3.4 排列窗口 442 17.4 构建项目 442 17.4.1 构建、编译和生成 442 17.4.2 调试版本和发布版本 443 17.4.3 选择配置 445 17.4.4 编辑配置 445 17.5 调试代码 446 17.5.1 设置断点 446 17.5.2 使用数据提示和调试器可视化工具 447 17.5.3 监视和修改变量 448 17.5.4 异常 449 17.5.5 多线程 450 17.5.6 IntelliTrace 451 17.6 重构工具 451 17.7 体系结构工具 453 17.7.1 依赖项关系图 453 17.7.2 层关系图 454 17.8 分析应用程序 456 17.8.1 序列图 456 17.8.2 探查器 457 17.8.3 Concurrency Visualizer 459 17.8.4 Code Analysis 459 17.8.5 Code Metrics 460 17.9 单元测试 461 17.9.1 创建单元测试 461 17.9.2 运行单元测试 462 17.9.3 预期异常 463 17.9.4 测试全部代码路径 463 17.9.5 外部依赖 464 17.9.6 Fakes Framework 467 17.10 Windows 8、WCF、WF等 468 17.10.1 使用Visual Studio 2012生成WCF应用程序 468 17.10.2 使用Visual Studio 2012生成WF应用程序 470 17.10.3 使用Visual Studio 2012生成Windows Store应用程序 470 17.11 小结 472 第18章 部署 473 18.1 部署是应用程序生命周期的一部分 473 18.2 部署的规划 473 18.2.1 部署选项 474 18.2.2 部署要求 474 18.2.3 部署.NET运行库 475 18.3 传统的部署选项 475 18.3.1 xcopy部署 476 18.3.2 xcopy和Web应用程序 476 18.3.3 Windows Installer 476 18.4 ClickOnce 477 18.4.1 ClickOnce操作 477 18.4.2 发布ClickOnce应用程序 477 18.4.3 ClickOnce设置 479 18.4.4 ClickOnce文件的应用程序缓存 481 18.4.5 应用程序的安装 481 18.4.6 ClickOnce部署API 482 18.5 Web部署 483 18.5.1 Web应用程序 483 18.5.2 配置文件 483 18.5.3 创建Web Deploy包 484 18.6 Windows 8应用程序 485 18.6.1 创建应用程序包 486 18.6.2 Windows App Certification Kit 487 18.6.3 旁加载 487 18.6.4 Windows部署API 488 18.7 小结 490 第Ⅲ部分 基 础 第19章 程序集 492 19.1 程序集的含义 492 19.1.1 程序集的功能 493 19.1.2 程序集的结构 493 19.1.3 程序集清单 494 19.1.4 名称空间、程序集和组件 494 19.1.5 私有程序集和共享程序集 495 19.1.6 附属程序集 495 19.1.7 查看程序集 495 19.2 构建程序集 496 19.2.1 创建模块和程序集 496 19.2.2 程序集的特性 497 19.2.3 创建和动态加载程序集 499 19.3 应用程序域 502 19.4 共享程序集 506 19.4.1 强名 506 19.4.2 使用强名获得完整性 507 19.4.3 全局程序集缓存 508 19.4.4 创建共享程序集 509 19.4.5 创建强名 509 19.4.6 安装共享程序集 510 19.4.7 使用共享程序集 511 19.4.8 程序集的延迟签名 512 19.4.9 引用 513 19.4.10 本机映像生成器 513 19.5 配置.NET应用程序 514 19.5.1 配置类别 515 19.5.2 绑定程序集 516 19.6 版本问题 517 19.6.1 版本号 517 19.6.2 通过编程方式获取版本 518 19.6.3 绑定到程序集版本 518 19.6.4 发行者策略文件 519 19.6.5 运行库的版本 521 19.7 在不同的技术之间共享程序集 522 19.7.1 共享源代码 522 19.7.2 可移植类库 523 19.8 小结 524 第20章 诊断 525 20.1 诊断概述 525 20.2 代码协定 526 20.2.1 前提条件 527 20.2.2 后置条件 528 20.2.3 不变量 529 20.2.4 纯粹性 529 20.2.5 接口的协定 529 20.2.6 简写 531 20.2.7 协定和遗留代码 531 20.3 跟踪 532 20.3.1 跟踪源 533 20.3.2 跟踪开关 534 20.3.3 跟踪侦听器 535 20.3.4 筛选器 537 20.3.5 相关性 538 20.3.6 使用ETW进行跟踪 541 20.4 事件日志 542 20.4.1 事件日志体系结构 542 20.4.2 事件日志类 544 20.4.3 创建事件源 545 20.4.4 写入事件日志 546 20.4.5 资源文件 546 20.5 性能监视 550 20.5.1 性能监视类 550 20.5.2 性能计数器生成器 550 20.5.3 添加PerformanceCounter组件 553 20.5.4 perfmon.exe 555 20.6 小结 556 第21章 任务、线程和同步 557 21.1 概述 557 21.2 Parallel类 558 21.2.1 用Parallel.For()方法循环 559 21.2.2 使用Parallel.ForEach()方法循环 562 21.2.3 通过Parallel.Invoke()方法调用多个方法 563 21.3 任务 563 21.3.1 启动任务 563 21.3.2 Future—— 任务的结果 566 21.3.3 连续的任务 567 21.3.4 任务层次结构 568 21.4 取消架构 568 21.4.1 Parallel.For()方法的取消 569 21.4.2 任务的取消 570 21.5 线程池 571 21.6 Thread类 573 21.6.1 给线程传递数据 574 21.6.2 后台线程 575 21.6.3 线程的优先级 576 21.6.4 控制线程 576 21.7 线程问题 577 21.7.1 争用条件 577 21.7.2 死锁 579 21.8 同步 581 21.8.1 lock语句和线程安全 582 21.8.2 Interlocked类 587 21.8.3 Monitor类 588 21.8.4 SpinLock结构 589 21.8.5 WaitHandle基类 589 21.8.6 Mutex类 590 21.8.7 Semaphore类 591 21.8.8 Events类 593 21.8.9 Barrier类 596 21.8.10 ReaderWriterLockSlim类 598 21.9 Timer类 601 21.10 数据流 602 21.10.1 使用动作块 602 21.10.2 源和目标数据块 603 21.10.3 连接块 604 21.11 小结 606 第22章 安全性 608 22.1 概述 608 22.2 身份验证和授权 609 22.2.1 标识和Principal 609 22.2.2 角色 610 22.2.3 声明基于角色的安全性 611 22.2.4 声称 612 22.2.5 客户端应用程序服务 613 22.3 加密 618 22.3.1 签名 619 22.3.2 交换密钥和安全传输 621 22.4 资源的访问控制 624 22.5 代码访问安全性 627 22.5.1 第2级安全透明性 627 22.5.2 权限 628 22.6 使用证书发布代码 632 22.7 小结 633 第23章 互操作 634 23.1 .NET和COM技术 634 23.1.1 元数据 635 23.1.2 释放内存 635 23.1.3 接口 636 23.1.4 方法绑定 637 23.1.5 数据类型 637 23.1.6 注册 638 23.1.7 线程 638 23.1.8 错误处理 640 23.1.9 事件 640 23.1.10 封送 640 23.2 在.NET客户端中使用COM组件 641 23.2.1 创建一个COM组件 641 23.2.2 创建运行库可调用包装 647 23.2.3 使用RCW 648 23.2.4 通过动态语言扩展使用COM服务 649 23.2.5 线程问题 650 23.2.6 添加连接点 650 23.3 在COM客户端中使用.NET组件 652 23.3.1 COM可调用包装 653 23.3.2 创建.NET组件 653 23.3.3 创建一个类型库 654 23.3.4 COM互操作特性 656 23.3.5 COM注册 658 23.3.6 创建COM客户端应用程序 659 23.3.7 添加连接点 660 23.3.8 使用sink对象创建客户端 661 23.3.9 平台调用 663 23.4 小结 667 第24章 文件和注册表操作 668 24.1 文件和注册表 668 24.2 管理文件系统 669 24.2.1 表示文件和文件夹的.NET类 670 24.2.2 Path类 672 24.2.3 FileProperties示例 672 24.3 移动、复制和删除文件 677 24.3.1 FilePropertiesAndMovement示例 677 24.3.2 FilePropertiesAndMovement示例的代码 678 24.4 读写文件 681 24.4.1 读取文件 681 24.4.2 写入文件 683 24.4.3 流 684 24.4.4 缓存的流 686 24.4.5 使用FileStream类读写二进制文件 686 24.4.6 读写文本文件 691 24.5 映射内存的文件 697 24.6 读取驱动器信息 698 24.7 文件的安全性 700 24.7.1 从文件中读取ACL 700 24.7.2 从目录中读取ACL 701 24.7.3 添加和删除文件中的ACL项 703 24.8 读写注册表 704 24.8.1 注册表 705 24.8.2 .NET注册表类 706 24.9 读写独立存储器 709 24.10 小结 713 第25章 事务处理 714 25.1 简介 714 25.2 概述 715 25.2.1 事务处理阶段 715 25.2.2 ACID属性 716 25.3 数据库和实体类 716 25.4 传统的事务 718 25.4.1 ADO.NET事务 718 25.4.2 System.Enterprise-Services 719 25.5 System.Transactions 720 25.5.1 可提交的事务 722 25.5.2 事务处理的升级 724 25.5.3 依赖事务 726 25.5.4 环境事务 728 25.6 隔离级别 735 25.7 自定义资源管理器 736 25.8 文件系统事务 742 25.9 小结 746 第26章 网络 747 26.1 网络 747 26.2 WebClient类 748 26.2.1 下载文件 748 26.2.2 基本的WebClient示例 748 26.2.3 上传文件 750 26.3 WebRequest类和WebResponse类 750 26.3.1 身份验证 752 26.3.2 使用代理 752 26.3.3 异步页面请求 753 26.4 把输出结果显示为HTML页面 753 26.4.1 从应用程序中进行简单的Web浏览 754 26.4.2 启动Internet Explorer实例 755 26.4.3 给应用程序提供更多IE类型的功能 756 26.4.4 使用WebBrowser控件打印 761 26.4.5 显示所请求页面的代码 761 26.4.6 WebRequest类和WebResponse类的层次结构 762 26.5 实用工具类 763 26.5.1 URI 763 26.5.2 IP地址和DNS名称 764 26.6 较低层的协议 766 26.6.1 使用SmtpClient 767 26.6.2 使用TCP类 768 26.6.3 TcpSend和TcpReceive示例 769 26.6.4 TCP和UDP 771 26.6.5 UDP类 771 26.6.6 Socket类 772 26.6.7 WebSocket 775 26.7 小结 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服务程序 783 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 安装程序 795 27.4 Windows服务的监控和控制 799 27.4.1 MMC管理单元 800 27.4.2 net.exe实用程序 801 27.4.3 sc.exe实用程序 801 27.4.4 Visual Studio Server Explorer 801 27.4.5 编写自定义ServiceController类 801 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 资源文件生成器 825 28.3.3 ResourceWriter 825 28.3.4 使用资源文件 826 28.3.5 System.Resources名称空间 830 28.4 使用Visual Studio的Windows Forms本地化 831 28.4.1 通过编程方式修改区域性 836 28.4.2 使用自定义资源消息 837 28.4.3 资源的自动回退 838 28.4.4 外包翻译 838 28.5 ASP.NET Web Forms的本地化 839 28.6 用WPF本地化 841 28.6.1 用于WPF的.NET资源 842 28.6.2 XAML资源字典 843 28.7 自定义资源读取器 846 28.7.1 创建DatabaseResource- Reader类 847 28.7.2 创建DatabaseResource-Set类 848 28.7.3 创建DatabaseResource-Manager类 849 28.7.4 DatabaseResourceReader的客户端应用程序 850 28.8 创建自定义区域性 850 28.9 用Windows Store应用程序进行本地化 852 28.9.1 使用资源 852 28.9.2 使用多语言应用程序工具集进行本地化 853 28.10 小结 854 第29章 核心XAML 855 29.1 XAML的作用 855 29.2 概述 855 29.2.1 元素如何映射到.NET对象上 856 29.2.2 使用自定义.NET类 857 29.2.3 把属性用作特性 859 29.2.4 把属性用作元素 859 29.2.5 基本的.NET类型 860 29.2.6 使用集合和XAML 860 29.2.7 用XAML代码调用构造函数 861 29.3 依赖属性 861 29.3.1 创建依赖属性 862 29.3.2 强制值回调 863 29.3.3 值变更回调和事件 864 29.3.4 事件的冒泡和隧道 864 29.4 附加属性 867 29.5 标记扩展 870 29.6 创建自定义标记扩展 870 29.7 XAML定义的标记扩展 872 29.8 读写XAML 872 29.9 小结 873 第30章 Managed Extensibility Framework 874 30.1 概述 874 30.2 MEF的体系结构 875 30.2.1 使用属性的MEF 876 30.2.2 基于约定的部件注册 881 30.3 定义协定 883 30.4 导出部件 884 30.4.1 创建部件 884 30.4.2 导出属性和方法 889 30.4.3 导出元数据 891 30.4.4 使用元数据进行惰性加载 893 30.5 导入部件 894 30.5.1 导入连接 896 30.5.2 部件的惰性加载 898 30.5.3 用惰性实例化的部件读取元数据 898 30.6 容器和出口提供程序 901 30.7 类别 903 30.8 小结 905 第31章 Windows运行库 906 31.1 概述 906 31.1.1 .NET与Windows运行库的比较 907 31.1.2 名称空间 907 31.1.3 元数据 909 31.1.4 语言投射 910 31.1.5 Windows运行库中的类型 912 31.2 Windows运行库组件 913 31.2.1 集合 913 31.2.2 流 914 31.2.3 委托与事件 915 31.2.4 异步操作 915 31.3 Windows 8应用程序 916 31.4 Windows 8应用程序的生命周期 918 31.4.1 Windows 8应用程序的执行状态 919 31.4.2 SuspensionManager 920 31.4.3 导航状态 921 31.4.4 测试暂停 922 31.4.5 页面状态 922 31.5 Windows 8应用程序的设置 924 31.6 摄像头功能 926 31.7 小结 928 第Ⅳ部分 数 据 第32章 核心ADO.NET 930 32.1 ADO.NET概述 930 32.1.1 名称空间 931 32.1.2 共享类 932 32.1.3 数据库专用类 932 32.2 使用数据库连接 933 32.2.1 管理连接字符串 934 32.2.2 高效地使用连接 935 32.2.3 事务 937 32.3 命令 938 32.3.1 执行命令 939 32.3.2 调用存储过程 942 32.4 快速数据访问:数据读取器 944 32.5 异步数据访问:使用Task和await 947 32.6 管理数据和关系:DataSet类 949 32.6.1 数据表 949 32.6.2 数据列 950 32.6.3 数据关系 955 32.6.4 数据约束 956 32.7 XML架构:用XSD生成代码 959 32.8 填充DataSet类 965 32.8.1 用数据适配器填充DataSet 965 32.8.2 从XML中填充DataSet类 967 32.9 持久化DataSet类的修改 967 32.9.1 通过数据适配器进行更新 967 32.9.2 写入XML输出结果 969 32.10 使用ADO.NET 971 32.10.1 分层开发 971 32.10.2 生成SQL Server的键 972 32.10.3 命名约定 974 32.11 小结 976 第33章 ADO.NET Entity Framework 977 33.1 用Entity Framework编程 977 33.2 Entity Framework映射 979 33.2.1 逻辑层 979 33.2.2 概念层 981 33.2.3 映射层 983 33.2.4 连接字符串 983 33.3 实体 984 33.4 对象上下文 988 33.5 关系 990 33.5.1 一个层次结构一个表 990 33.5.2 一种类型一个表 992 33.5.3 懒惰加载、延迟加载和预先加载 993 33.6 查询数据 994 33.6.1 Entity SQL 994 33.6.2 对象查询 995 33.6.3 LINQ to Entities 998 33.7 把数据写入数据库 999 33.7.1 对象跟踪 999 33.7.2 改变信息 1000 33.7.3 附加和分离实体 1001 33.7.4 存储实体的变化 1002 33.8 使用POCO对象 1003 33.8.1 定义实体类型 1003 33.8.2 创建数据上下文 1004 33.8.3 查询和更新 1004 33.9 使用Code First编程模型 1005 33.9.1 定义实体类型 1005 33.9.2 创建数据上下文 1006 33.9.3 创建数据库,存储实体 1006 33.9.4 数据库 1007 33.9.5 查询数据 1007 33.9.6 定制数据库的生成 1008 33.10 小结 1009 第34章 处理XML 1010 34.1 XML 1010 34.2 .NET支持的XML标准 1011 34.3 System.Xml名称空间 1011 34.4 使用System.Xml类 1012 34.5 读写流格式的XML 1013 34.5.1 使用 XmlReader类 1013 34.5.2 使用XmlReader类进行验证 1017 34.5.3 使用XmlWriter类 1019 34.6 在.NET中使用DOM 1020 34.7 使用XPathNavigator类 1025 34.7.1 System.Xml.XPath名称空间 1025 34.7.2 System.Xml.Xsl名称空间 1030 34.7.3 调试XSLT 1034 34.8 XML和ADO.NET 1036 34.8.1 将ADO.NET数据转换为XML文档 1036 34.8.2 把XML文档转换为ADO.NET数据 1042 34.9 在XML中序列化对象 1044 34.10 LINQ to XML和.NET 1053 34.11 使用不同的XML对象 1053 34.11.1 XDocument对象 1053 34.11.2 XElement对象 1054 34.11.3 XNamespace对象 1055 34.11.4 XComment对象 1057 34.11.5 XAttribute对象 1058 34.12 使用LINQ查询XML文档 1059 34.12.1 查询静态的XML文档 1059 34.12.2 查询动态的XML文档 1060 34.13 XML文档的更多查询技术 1062 34.13.1 读取XML文档 1062 34.13.2 写入XML文档 1063 34.14 小结 1065 第Ⅴ部分 显 示 第35章 核心WPF 1068 35.1 理解WPF 1069 35.1.1 名称空间 1069 35.1.2 类层次结构 1070 35.2 形状 1072 35.3 几何图形 1073 35.4 变换 1075 35.5 画笔 1077 35.5.1 SolidColorBrush 1077 35.5.2 LinearGradientBrush 1077 35.5.3 RadialGradientBrush 1078 35.5.4 DrawingBrush 1078 35.5.5 ImageBrush 1079 35.5.6 VisualBrush 1079 35.6 控件 1081 35.6.1 简单控件 1081 35.6.2 内容控件 1081 35.6.3 带标题的内容控件 1083 35.6.4 项控件 1084 35.6.5 带标题的项控件 1084 35.6.6 修饰 1085 35.7 布局 1086 35.7.1 StackPanel 1086 35.7.2 WrapPanel 1086 35.7.3 Canvas 1087 35.7.4 DockPanel 1088 35.7.5 Grid 1089 35.8 样式和资源 1090 35.8.1 样式 1090 35.8.2 资源 1092 35.8.3 系统资源 1093 35.8.4 从代码中访问资源 1093 35.8.5 动态资源 1094 35.8.6 资源字典 1095 35.9 触发器 1096 35.9.1 属性触发器 1096 35.9.2 多触发器 1098 35.9.3 数据触发器 1098 35.10 模板 1100 35.10.1 控件模板 1100 35.10.2 数据模板 1103 35.10.3 样式化列表框 1105 35.10.4 ItemTemplate 1106 35.10.5 列表框元素的控件模板 1107 35.11 动画 1108 35.11.1 时间轴 1109 35.11.2 非线性动画 1112 35.11.3 事件触发器 1112 35.11.4 关键帧动画 1115 35.12 可见状态管理器 1116 35.12.1 可见的状态 1117 35.12.2 变换 1118 35.13 3-D 1119 35.13.1 模型 1120 35.13.2 照相机 1121 35.13.3 光线 1122 35.13.4 旋转 1122 35.14 小结 1123 第36章 用WPF编写业务 应用程序 1124 36.1 概述 1124 36.2 菜单和功能区控件 1125 36.2.1 菜单控件 1125 36.2.2 功能区控件 1126 36.3 Commanding 1128 36.3.1 定义命令 1129 36.3.2 定义命令源 1130 36.3.3 命令绑定 1130 36.4 数据绑定 1131 36.4.1 BooksDemo应用程序内容 1132 36.4.2 用XAML绑定 1133 36.4.3 简单对象的绑定 1135 36.4.4 更改通知 1137 36.4.5 对象数据提供程序 1140 36.4.6 列表绑定 1142 36.4.7 主从绑定 1145 36.4.8 多绑定 1145 36.4.9 优先绑定 1147 36.4.10 值的转换 1149 36.4.11 动态添加列表项 1150 36.4.12 动态添加选项卡中的项 1151 36.4.13 数据模板选择器 1152 36.4.14 绑定到XML上 1154 36.4.15 绑定的验证 1156 36.5 TreeView 1164 36.6 DataGrid 1168 36.6.1 自定义列 1170 36.6.2 行的细节 1171 36.6.3 用DataGrid进行分组 1171 36.6.4 实时成型 1174 36.7 小结 1180 第37章 用WPF创建文档 1181 37.1 简介 1181 37.2 文本元素 1182 37.2.1 字体 1182 37.2.2 TextEffect 1183 37.2.3 内联 1184 37.2.4 块 1186 37.2.5 列表 1188 37.2.6 表 1188 37.2.7 块的锚定 1189 37.3 流文档 1191 37.4 固定文档 1195 37.5 XPS文档 1199 37.6 打印 1200 37.6.1 用PrintDialog打印 1201 37.6.2 打印可见元素 1201 37.7 小结 1203 第38章 Windows 8应用程序 1204 38.1 概述 1204 38.2 Windows 8的现代UI设计 1204 38.2.1 内容,不是chrome设计 1205 38.2.2 快速流畅 1206 38.2.3 可读性 1206 38.3 示例应用程序的核心功能 1206 38.3.1 文件和目录 1207 38.3.2 应用程序数据 1208 38.3.3 应用程序页面 1213 38.4 应用程序工具栏 1218 38.5 启动与导航 1219 38.6 布局的变化 1222 38.7 存储 1225 38.7.1 定义数据协定 1226 38.7.2 写入移动数据 1227 38.7.3 读取数据 1229 38.7.4 写入图像 1230 38.7.5 读取图像 1232 38.8 选择器 1233 38.9 共享协定 1234 38.9.1 共享源 1234 38.9.2 共享目标 1237 38.10 Tile 1239 38.11 小结 1241 第39章 核心ASP.NET 1242 39.1 用于Web应用程序的.NET Framework 1242 39.1.1 ASP.NET Web Forms 1243 39.1.2 ASP.NET Web Pages 1243 39.1.3 ASP.NET MVC 1244 39.2 Web技术 1244 39.2.1 HTML 1244 39.2.2 CSS 1245 39.2.3 JavaScript和jQuery 1245 39.3 托管和配置 1246 39.4 处理程序和模块 1248 39.4.1 创建自定义处理程序 1249 39.4.2 ASP.NET处理程序 1250 39.4.3 创建自定义模块 1251 39.4.4 通用模块 1253 39.5 全局的应用程序类 1254 39.6 请求和响应 1254 39.6.1 使用HttpRequest对象 1255 39.6.2 使用HttpResponse对象 1256 39.7 状态管理 1256 39.7.1 视图状态 1257 39.7.2 cookie 1258 39.7.3 会话 1259 39.7.4 应用程序状态 1261 39.7.5 缓存 1262 39.7.6 配置文件 1263 39.8 成员和角色 1267 39.8.1 配置成员 1267 39.8.2 使用成员API 1269 39.8.3 启用角色API 1270 39.9 小结 1270 第40章 ASP.NET Web Forms 1271 40.1 概述 1271 40.2 ASPX页面模型 1272 40.2.1 添加控件 1272 40.2.2 使用事件 1273 40.2.3 使用回送 1274 40.2.4 使用自动回送 1275 40.2.5 回送到其他页面 1275 40.2.6 定义强类型化的跨页面回送 1276 40.2.7 使用页面事件 1277 40.2.8 ASPX代码 1278 40.2.9 服务器端控件 1280 40.3 母版页 1281 40.3.1 创建母版页 1281 40.3.2 使用母版页 1283 40.3.3 在内容页中定义母版页内容 1284 40.4 导航 1285 40.4.1 站点地图 1286 40.4.2 Menu控件 1286 40.4.3 菜单路径 1287 40.5 验证用户输入 1287 40.5.1 使用验证控件 1287 40.5.2 使用验证摘要 1289 40.5.3 验证组 1289 40.6 访问数据 1290 40.6.1 使用Entity Framework 1291 40.6.2 使用Entity Data Source 1291 40.6.3 排序和编辑 1293 40.6.4 定制列 1294 40.6.5 在网格中使用模板 1295 40.6.6 定制对象上下文的创建过程 1297 40.6.7 对象数据源 1298 40.7 安全性 1299 40.7.1 启用表单身份验证 1299 40.7.2 登录控件 1300 40.8 Ajax 1301 40.8.1 ASP.NET AJAX的概念 1302 40.8.2 ASP.NET AJAX网站示例 1305 40.8.3 支持ASP.NET AJAX的网站配置 1308 40.8.4 添加ASP.NET AJAX功能 1308 40.9 小结 1315 第41章 ASP.NET MVC 1316 41.1 ASP.NET MVC概述 1316 41.2 定义路由 1318 41.2.1 添加路由 1319 41.2.2 路由约束 1319 41.3 创建控制器 1320 41.3.1 动作方法 1321 41.3.2 参数 1321 41.3.3 返回数据 1322 41.4 创建视图 1323 41.4.1 向视图传递数据 1325 41.4.2 Razor语法 1325 41.4.3 强类型视图 1326 41.4.4 布局 1327 41.4.5 部分视图 1330 41.5 从客户端提交数据 1334 41.5.1 模型绑定器 1335 41.5.2 注释和验证 1337 41.6 HTML Helper 1338 41.6.1 简单的Helper 1338 41.6.2 使用模型数据 1339 41.6.3 定义HTML特性 1340 41.6.4 创建列表 1340 41.6.5 强类型化的Helper 1341 41.6.6 编辑器扩展 1342 41.6.7 创建自定义Helper 1342 41.6.8 模板 1343 41.7 创建数据驱动的应用程序 1344 41.7.1 定义模型 1344 41.7.2 创建控制器和视图 1345 41.8 动作过滤器 1350 41.9 身份验证和授权 1352 41.9.1 登录模型 1352 41.9.2 登录控制器 1352 41.9.3 登录视图 1354 41.10 ASP.NET Web API 1355 41.10.1 使用Entity Framework Code-First进行数据访问 1355 41.10.2 为ASP.NET Web API定义路由 1357 41.10.3 控制器实现 1357 41.10.4 使用jQuery的客户端应用程序 1358 41.11 小结 1360 第42章 ASP.NET动态数据 1361 42.1 概述 1361 42.2 创建动态数据Web应用程序 1362 42.2.1 配置Scaffolding 1363 42.2.2 查看结果 1364 42.3 定制动态数据网站 1366 42.3.1 控制框架 1367 42.3.2 定制模板 1368 42.3.3 配置路由 1373 42.4 小结 1374 第Ⅵ部分 通 信 第43章 WCF 1376 43.1 WCF概述 1376 43.1.1 SOAP 1378 43.1.2 WSDL 1378 43.1.3 REST 1379 43.1.4 JSON 1379 43.2 创建简单的服务和客户端 1379 43.2.1 定义服务和数据协定 1380 43.2.2 数据访问 1382 43.2.3 服务的实现 1383 43.2.4 WCF服务宿主和WCF测试客户端 1384 43.2.5 自定义服务宿主 1386 43.2.6 WCF客户端 1388 43.2.7 诊断 1390 43.2.8 与客户端共享协定程序集 1392 43.3 协定 1393 43.3.1 数据协定 1394 43.3.2 版本问题 1394 43.3.3 服务协定 1395 43.3.4 消息协定 1396 43.3.5 错误协定 1396 43.4 服务的行为 1398 43.5 绑定 1401 43.5.1 标准的绑定 1401 43.5.2 标准绑定的特性 1402 43.5.3 Web套接字 1404 43.6 宿主 1407 43.6.1 自定义宿主 1407 43.6.2 WAS宿主 1408 43.6.3 预配置的宿主类 1408 43.7 客户端 1410 43.7.1 使用元数据 1410 43.7.2 共享类型 1411 43.8 双工通信 1411 43.8.1 双工通信的协定 1412 43.8.2 双工通信的服务 1412 43.8.3 双工通信的客户端应用程序 1413 43.9 路由 1414 43.9.1 示例应用程序 1415 43.9.2 路由接口 1416 43.9.3 WCF路由服务 1416 43.9.4 为失败使用路由器 1417 43.9.5 改变协定的桥梁 1418 43.9.6 过滤器的类型 1419 43.10 小结 1419 第44章 WCF数据服务 1420 44.1 概述 1420 44.2 包含CLR对象的自定义宿主 1421 44.2.1 CLR对象 1422 44.2.2 数据模型 1424 44.2.3 数据服务 1424 44.2.4 驻留服务 1425 44.2.5 其他服务操作 1426 44.3 HTTP客户端应用程序 1426 44.4 使用WCF数据服务和ADO.NET Entity Framework 1431 44.4.1 ASP.NET宿主和EDM 1432 44.4.2 使用WCF数据服务客户库 1433 44.5 小结 1441 第45章 Windows WF 4 1442 45.1 工作流概述 1442 45.2 Hello World示例 1443 45.3 活动 1444 45.3.1 If活动 1445 45.3.2 InvokeMethod活动 1446 45.3.3 Parallel活动 1446 45.3.4 Delay活动 1447 45.3.5 Pick活动 1447 45.4 自定义活动 1448 45.4.1 活动的验证 1449 45.4.2 设计器 1450 45.4.3 自定义复合活动 1452 45.5 工作流 1454 45.5.1 实参和变量 1455 45.5.2 WorkflowApplication 1455 45.5.3 存放WCF工作流 1459 45.5.4 工作流的版本 1463 45.5.5 驻留设计器 1464 45.6 小结 1468 第46章 对等网络 1469 46.1 P2P网络概述 1469 46.1.1 客户端-服务器体系结构 1469 46.1.2 P2P体系结构 1470 46.1.3 P2P体系结构的挑战 1471 46.1.4 P2P术语 1472 46.1.5 P2P解决方案 1472 46.2 PNRP 1472 46.3 构建P2P应用程序 1475 46.4 小结 1481 第47章 消息队列 1482 47.1 概述 1482 47.1.1 使用消息队列的场合 1483 47.1.2 消息队列功能 1484 47.2 Message Queuing产品 1485 47.3 消息队列体系结构 1486 47.3.1 消息 1486 47.3.2 消息队列 1486 47.4 Message Queuing管理工具 1487 47.4.1 创建消息队列 1487 47.4.2 消息队列属性 1488 47.5 消息队列的编程实现 1489 47.5.1 创建消息队列 1489 47.5.2 查找队列 1490 47.5.3 打开已知队列 1490 47.5.4 发送消息 1492 47.5.5 接收消息 1494 47.6 课程订单应用程序 1496 47.6.1 课程订单类库 1496 47.6.2 课程订单消息发送程序 1499 47.6.3 发送优先级和可恢复的消息 1501 47.6.4 课程订单消息接收应用程序 1502 47.7 接收结果 1508 47.7.1 确认队列 1508 47.7.2 响应队列 1509 47.8 事务队列 1509 47.9 消息队列和WCF 1510 47.9.1 带数据协定的实体类 1511 47.9.2 WCF服务协定 1512 47.9.3 WCF消息接收应用程序 1513 47.9.4 WCF消息发送应用程序 1515 47.10 消息队列的安装 1517 47.11 小结 1517 · · · · · · () |
原来都是有因果关系的。
忍不住一直看下去
能尽量客观的阐述
细腻厚实