请问c#高级编程11版怎么样值不值得入手? [问题点数:20分]

Bbs1
本版专家分:0
结帖率 0%
Bbs9
本版专家分:60992
Blank
黄花 2019年2月 .NET技术大版内专家分月排行榜第二
Blank
蓝花 2019年3月 .NET技术大版内专家分月排行榜第三
Bbs1
本版专家分:80
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:80
C#高级编程(第10版)源码VS2017版
C#<em>高级编程</em>(第10版)源码VS2017版,另有VS2015版,分开发布。
C#高级编程(第11版)英文 原版
C#<em>高级编程</em>(第<em>11版</em>)PDF完整版及源码,名字叫做Professional C# 7 and .NET Core 2.0。<em>高级编程</em>(Professional)系列写得非常详细,适合希望对代码和原理有深入研究的人
C#高级编程(第11版) 附随书编码
C#<em>高级编程</em>出第<em>11版</em>了,目前只有英文原版,名字叫做Professional C# 7 and .NET Core 2.0,中文版预计19年下半年出版。<em>高级编程</em>(Professional)系列写得非常详细,适合希望对代码和原理有深入研究的人阅读。 Professional C# 7 and .NET Core 2.0为有经验的程序员提供了他们需要与世界领先的编程语言有效合作的信息。最新的C语言更新增加了许多新的特性,帮助你在更短的时间内完成更多的工作,这本书是你快速入门的理想指南。C# 7重点关注数据消耗、代码简化和性能,对本地函数、元组类型、记录类型、模式匹配、非可空引用类型、不可变类型以及更好地支持变量提供了新的支持。VisualStudio的改进将给C开发人员与空间交互的方式带来重大改变,将.NET引入非微软平台,并将工具从诸如Docker、GULP和NPM等其他平台结合起来。在一个领先的.NET专家的指导下,沉浸在真实的实用性中,这个指南旨在让你跟上时代并回到工作中去。 本书首先简要介绍了C# 7 和 .NET Core 2.0的最新特性,然后继续解释如何使用面向对象的范例来实现C# 7。您将学习使用实体框架与关系数据一起工作,并了解如何实际使用ASP.NET核心。本书将向您展示.NETCype如何允许跨平台应用程序的创建。 您还可以了解Simulalr向应用程序添加实时功能。然后,您将看到如何使用MUGODB以及如何将MUGDB应用到应用程序中。您将了解无服务器计算和OAuthe概念,以及使用DokeCo编写ASP.NET核心应用程序。 这个基于项目的指南使用实际的应用来证明这些概念。在本书的末尾,您将熟练地使用.NETCype 2开发应用程序。
C/C++高级编程pdf
关于构造类,指针用法的具体说明 反正乱七八糟的很高级
C#高级编程11版 英文原版
C#<em>高级编程</em> 第<em>11版</em> 英文原版;Christian Nagel著,2018年刚出版,超级经典。带书签,可复制。
C#高级编程(第10版)高清pdf及源码
提升C#和.NET技能的必备参考资源 Visual Studio 2015、ASP.NET Core 1.0和Universal Windows Platform的推出,为开发人员提供了使用C#创建应
C 高级编程 第3版 免费下载 含英文的原版PDF文件和中文的DOC文件
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C#<em>高级编程</em>(第3版)
C#高级编程(第11版_高清版_课程+源代码)
C#<em>高级编程</em>出第<em>11版</em>了,目前只有英文原版,名字叫做Professional C# 7 and .NET Core 2.0,中文版预计19年下半年出版。<em>高级编程</em>(Professional)系列写得非常详细,适合希望对代码和原理有深入研究的人阅读。 翻译: Professional C# 7 and .NET Core 2.0为有经验的程序员提供了他们需要与世界领先的编程语言有效合作的信息。最新的C语言更新增加了许多新的特性,帮助你在更短的时间内完成更多的工作,这本书是你快速入门的理想指南。C# 7重点关注数据消耗、代码简化和性能,对本地函数、元组类型、记录类型、模式匹配、非可空引用类型、不可变类型以及更好地支持变量提供了新的支持。VisualStudio的改进将给C开发人员与空间交互的方式带来重大改变,将.NET引入非微软平台,并将工具从诸如Docker、GULP和NPM等其他平台结合起来。在一个领先的.NET专家的指导下,沉浸在真实的实用性中,这个指南旨在让你跟上时代并回到工作中去。 本书首先简要介绍了C# 7 和 .NET Core 2.0的最新特性,然后继续解释如何使用面向对象的范例来实现C# 7。您将学习使用实体框架与关系数据一起工作,并了解如何实际使用ASP.NET核心。本书将向您展示.NETCype如何允许跨平台应用程序的创建。 您还可以了解Simulalr向应用程序添加实时功能。然后,您将看到如何使用MUGODB以及如何将MUGDB应用到应用程序中。您将了解无服务器计算和OAuthe概念,以及使用DokeCo编写ASP.NET核心应用程序。 这个基于项目的指南使用实际的应用来证明这些概念。在本书的末尾,您将熟练地使用.NETCype 2开发应用程序。 .NET Core is a general purpose, modular, cross-platform, and open source implementation of .NET. With the latest release of .NET Core, many more APIs are expected to show up, which will make APIs consistent across .Net Framework, .NET Core, and Xamarin. This step-by-step guide will teach you the essential .NET Core and C# concepts with the help of real-world projects. The book starts with a brief introduction to the latest features of C# 7 and .NET Core 2.0 before moving on to explain how C# 7 can be implemented using the object-oriented paradigm. You'll learn to work with relational data using Entity Framework and see how to use ASP.NET Core practically. This book will show you how .NET Core allows the creations of cross-platform applications. You'll also learn about SignalR to add real-time functionality to your application. Then you will see how to use MongoDB and how to implement MongoDB into your applications. You'll learn about serverless computing and OAuth concepts, along with running ASP.NET Core applications with Docker Compose. This project-based guide uses practical applications to demonstrate these concepts. By the end of the book, you'll be proficient in developing applications using .NET Core 2.0. 目录 eBook Manager and Catalog App Cricket Score Calculator and Tracker Cross Platform .NET Core System Info Manager Task Bug logging ASP .NET Core MVC app ASP.NET SignalR Chat Application Web Research Tool with Entity Framework Core A Serverless email validation Azure Function Twitter Clone using Oauth Using Docker and ASP.NET Core
C#高级编程(第11版
压缩包有2个内容: Professional C# 7 and .NET Core 2.0.pdf C#<em>高级编程</em>(第<em>11版</em>)源码_Professional C# 7 and .NET Core 2.0 Code.zip
C#高级编程11版 英文原版
C#<em>高级编程</em> 第<em>11版</em> 英文原版;Christian Nagel著,2018年刚出版,超级经典。带书签,可复制。
C#高级编程11版(Professional C# 7 and .NET Core 2.0)英文原版
18年4月17日C#<em>高级编程</em>出第<em>11版</em>了,目前只有英文原版,名字叫做Professional C# 7 and .NET Core 2.0,中文版预计19年下半年出版。<em>高级编程</em>(Professional)系列写得非常详细,适合希望对代码和原理有深入研究的人阅读。
C#高级编程11版
新鲜出炉的,欢迎尝尝鲜。 C#<em>高级编程</em>第<em>11版</em>(Professional C# 7 and .NET Core 2.0) 原版pdf+源码 C#<em>高级编程</em>出第<em>11版</em>了,目前只有英文原版,名字叫做Professional C# 7 and .NET Core 2.0, 中文版预计19年下半年出版。<em>高级编程</em>(Professional)系列写得非常详细,适合希望对代码和原理有深入研究的人阅读。
C#高级编程 11版
最新版<em>c#</em><em>高级编程</em>,原汁原味。掌握第一手资料。
C#入门经典(第五版)+c#高级编程(第10版)+Professional C# 7 and .NET Core 2.0(全部高清)
文件错了审批不要通过 C#入门经典(第五版)+<em>c#</em><em>高级编程</em>(第10版)+Professional C# 7 and .NET Core 2.0,C#入门经典(第五版)包含源码,全部非水印高清版本,避免童靴到处找资源
c#高级编程 第十版 中文完整版
C#<em>高级编程</em> C#6&.NET CORE 1.0 第10版 【作 者】(美)Christian Nagel著;李铭译 【丛书名】.NET开发经典名著 【形态项】 1442 【出版项】 北京:清华大学出版社 , 2017.03 【ISBN号】978-7-302-46196-8 【中图法分类号】TP312;C 【原书定价】168.00 【主题词】计算机网络-程序设计-C语言-程序设计 【参考文献格式】 (美)Christian Nagel著;李铭译. C#<em>高级编程</em> C#6&.NET CORE 1.0 第10版. 北京:清华大学出版社, 2017.03. 内容提要: 提升C#和.NET技能的必备参考资源VisualStudio2015、ASP.NETCore1.0和UniversalWindowsPlatform的推出,为开发人员提供了使用C#创建应用程序的新方式。作为经典C#畅销书,本书涵盖了充分利用升级功能,积极简化工作流程所需的全部信息。本书循序渐进地讲解了VisualStudio2015、.NETCore1.0、ASP.NETMVC、UniversalWindowsPlatform、WPF的变化。每一章都提供了清晰的解释、下载的代码,并从专家的角度提供了有价值的视野。有本书在手,读者可以快速获得的特性和功能。 扫描完整版 大小 229m带书签,文件太大使用百度网盘下载
C#高级编程 第10版(中文高清完整版)
提升C#和.NET技能的必备参考资源,VisualStudio2015、ASP.NETCore1.0和UniversalWindowsPlatform的推出,为开发人员提供了使用C#创建应用程序的新方式。
C#高级编程(第11版)Professional C# 7 and .NET Core 2.0
C#<em>高级编程</em>(第<em>11版</em>)Professional C# 7 and .NET Core 2.0,此版本为原版英语,非中文.需要的朋友请选择下载。
C#入门经典(第五版)+c#高级编程(第10版)+Professional C# 7 and .NET Core 2.0(全部高清原版)
C#入门经典(第五版)+<em>c#</em><em>高级编程</em>(第10版)+Professional C# 7 and .NET Core 2.0,C#入门经典(第五版)包含源码,全部非水印高清版本
C#高级编程 第10版(中文高清版)
本书首先探讨了C#的基础知识,包括基本语法、数据类型和面向对象的特性。接着阐述了如何把该语言应用于各种使用相关技术的应用程序,倒如数据库访问和高级绘图技术。这种方式有助于对C#语言的各个方面进行深入细致的理解,以专业人员的方式开始编程。
C#高级编程(第11版)
C#<em>高级编程</em>PDF完整版第<em>11版</em>,是学习C#7.0和VS2017的好材料。
C#高级编程(第7版)中文完整pdf版 (随书源代码)
C#<em>高级编程</em>(第7版)》的顶级专家作者团队首先复习了C#的基础知识,之后详细讲解了该语言和架构中的所有新增功能,使读者能立即开始编写Windows应用程序和ASP.NET Web应用程序。   本书几乎涵盖C#语言的所有功能,对于C#初学者和有经验的程序员是值得大力推荐的书籍。实践证明,本书是关于C# 和 Visual Studio的一本全面而且权威的参考书。   《C#<em>高级编程</em>(第7版)》的顶级专家作者团队首先复习了C#的基础知识,之后详细讲解了该语言和架构中的所有新增功能,使读者能立即开始编写Windows应用程序和ASP.NET Web应用程序。
C#高级编程(第10版) 百度网盘资源
C#<em>高级编程</em>(第10版) 的百度网盘资源 C#<em>高级编程</em>(第10版) 的百度网盘资源
《C#高级编程(第9版)》中文高清完整PDF版
内容简介 · · · · · · 本书由.NET专家的梦幻组合编写,包含开发人员使用C#所需的所有内容。C#是编写.NET应用程序的一种语言,本书适合于希望提高编程技巧的、有经验的C#程序员,也适用于刚开始使用C#的专业开发人员。本书探讨了Visual Studio 2013和.NET Framework 4.5.1、新的测试驱动开发和并发编程功能。所有示例的源代码都可以下载,读者可以立即开始编写Windows桌面应用程序、Windows Store应用程序和ASP.NET Web应用程序。 作者简介 · · · · · · Christian Nagel是Microsoft RD、Microsoft MVP、thinktecture的合作伙伴、CN革新技术的奠基人,他还是一位软件架构师和开发人员,为开发Microsoft .NET解决方案提供培训和咨询服务。他具备超过25年的软件开发经验。Christian从PDP 11和VAX/VMS系统开始其计算机生涯,熟悉各种语言和平台。他具备Microsoft技术的深厚功底,编写了大量图书,并获得了Microsoft认证培训师和专业开发人员证书。 Jay Glynn开发软件的时间超过20年,使用PICK Basic为PICK操作系统编写应用程序。到目前为止,他使用过Delphi、VBA、Visual Basic、C、Java和C#编写软件。他目前是VGT的高级软件工程师,编写基于Web的应用程序。 Morgan Skinner是一位自由顾问,他在开始自己的顾问生涯之前,在Microsoft工作了将近10年。
c#高级编程 第十版 PDF
C#<em>高级编程</em> C#6&.NET CORE 1.0 第10版 【作 者】(美)Christian Nagel著;李铭译 【主题词】计算机网络-程序设计-C语言-程序设计 【参考文献格式】 (美)Christian Nagel著;李铭译. C#<em>高级编程</em> C#6&.NET CORE 1.0 第10版. 北京:清华大学出版社, 2017.03. 内容提要: 提升C#和.NET技能的必备参考资源VisualStudio2015、ASP.NETCore1.0和UniversalWindowsPlatform的推出,为开发人员提供了使用C#创建应用程序的新方式。作为经典C#畅销书,本书涵盖了充分利用升级功能,积极简化工作流程所需的全部信息。本书循序渐进地讲解了VisualStudio2015、.NETCore1.0、ASP.NETMVC、UniversalWindowsPlatform、WPF的变化。每一章都提供了清晰的解释、下载的代码,并从专家的角度提供了有价值的视野。有本书在手,读者可以快速获得的特性和功能。 扫描完整版 大小 229M,带书签,文件较大使用百度网盘下载
C#高级编程(第10版)中文高清非扫描目录完整文字可复制 配源码
前言 第Ⅰ部分 C#语言 第1章 .NET应用程序体系结构 1.1 选择技术 1.2 回顾.NET历史 1.2.1 C#1.0——一种新语言 1.2.2 带有泛型的C# 2和.NET 2 1.2.3 .NET 3.0 ——Windows Presentation Foundation 1.2.4 C# 3和.NET 3.5——LINQ 1.2.5 C# 4和.NET 4.0——dynamic和TPL 1.2.6 C# 5和异步编程 1.2.7 C# 6和.NET Core 1.2.8 选择技术,继续前进 1.3 .NET 2015 1.3.1 .NET Framework 4.6 1.3.2 .NET Core 1.0 1.3.3 程序集 1.3.4 NuGet包 1.3.5 公共语言运行库 1.3.6 .NET Native 1.3.7 Windows运行库 1.4 Hello, World 1.5 用.NET 4.6编译 1.6 用.NET Core CLI编译 1.6.1 设置环境 1.6.2 构建应用程序 1.6.3 打包和发布应用程序 1.7 应用程序类型和技术 1.7.1 数据访问 1.7.2 Windows桌面应用程序 1.7.3 UWP 1.7.4 SOAP服务和WCF 1.7.5 Web服务和ASP.NET Web API 1.7.6 WebHooks和SignalR 1.7.7 Windows服务 1.7.8 Web应用程序 1.7.9 Microsoft Azure 1.8 开发工具 1.8.1 Visual Studio Community 1.8.2 Visual Studio Professional with MSDN 1.8.3 Visual Studio Enterprise with MSDN 1.8.4 Visual Studio Code 1.9 小结 第2章 核心C# 2.1 C#基础 2.2 用Visual Studio创建Hello, World! 2.2.1 创建解决方案 2.2.2 创建新项目 2.2.3 编译和运行程序 2.2.4 代码的详细介绍 2.3 变量 2.3.1 初始化变量 2.3.2 类型推断 2.3.3 变量的作用域 2.3.4 常量 2.4 预定义数据类型 2.4.1 值类型和引用类型 2.4.2 .NET类型 2.4.3 预定义的值类型 2.4.4 预定义的引用类型 2.5 程序流控制 2.5.1 条件语句 2.5.2 循环 2.5.3 跳转语句 2.6 枚举 2.7 名称空间 2.7.1 using语句 2.7.2 名称空间的别名 2.8 Main()方法 2.9 使用注释 2.9.1 源文件中的内部注释 2.9.2 XML文档 2.10 C#预处理器指令 2.10.1 #define和#undef 2.10.2 #if、#elif、#else和#endif 2.10.3 #warning和# error 2.10.4 #region和#endregion 2.10.5 #line 2.10.6 #pragma 2.11 C#编程准则 2.11.1 关于标识符的规则 2.11.2 用法约定 2.12 小结 第3章 对象和类型 3.1 创建及使用类 3.2 类和结构 3.3 类 3.3.1 字段 3.3.2 属性 3.3.3 方法 3.3.4 构造函数 3.3.5 只读成员 3.3.6 只读字段 3.4 匿名类型 3.5 结构 3.5.1 结构是值类型 3.5.2 结构和继承 3.5.3 结构的构造函数 3.6 按值和按引用传递参数 3.6.1 ref参数 3.6.2 out参数 3.7 可空类型 3.8 枚举 3.9 部分类 3.10 扩展方法 3.11 Object类 3.12 小结 第4章 继承 4.1 继承 4.2 继承的类型 4.2.1 多重继承 4.2.2 结构和类 4.3 实现继承 4.3.1 虚方法 4.3.2 多态性 4.3.3 隐藏方法 4.3.4 调用方法的基类版本 4.3.5 抽象类和抽象方法 4.3.6 密封类和密封方法 4.3.7 派生类的构造函数 4.4 修饰符 4.4.1 访问修饰符 4.4.2 其他修饰符 4.5 接口 4.5.1 定义和实现接口 4.5.2 派生的接口 4.6 is和as运算符 4.7 小结 第5章 托管和非托管的资源 5.1 资源 5.2 后台内存管理 5.2.1 值数据类型 5.2.2 引用数据类型 5.2.3 垃圾回收 5.3 强引用和弱引用 5.4 处理非托管的资源 5.4.1 析构函数或终结器 5.4.2 IDisposable接口 5.4.3 using语句 5.4.4 实现IDisposable接口和析构函数 5.4.5 IDisposable和终结器的规则 5.5 不安全的代码 5.5.1 用指针直接访问内存 5.5.2 指针示例:PointerPlayground 5.5.3 使用指针优化性能 5.6 平台调用 5.7 小结 第6章 泛型 6.1 泛型概述 6.1.1 性能 6.1.2 类型安全 6.1.3 二进制代码的重用 6.1.4 代码的扩展 6.1.5 命名约定 6.2 创建泛型类 6.3 泛型类的功能 6.3.1 默认值 6.3.2 约束 6.3.3 继承 6.3.4 静态成员 6.4 泛型接口 6.4.1 协变和抗变 6.4.2 泛型接口的协变 6.4.3 泛型接口的抗变 6.5 泛型结构 6.6 泛型方法 6.6.1 泛型方法示例 6.6.2 带约束的泛型方法 6.6.3 带委托的泛型方法 6.6.4 泛型方法规范 6.7 小结 第7章 数组和元组 7.1 同一类型和不同类型的多个对象 7.2 简单数组 7.2.1 数组的声明 7.2.2 数组的初始化 7.2.3 访问数组元素 7.2.4 使用引用类型 7.3 多维数组 7.4 锯齿数组 7.5 Array类 7.5.1 创建数组 7.5.2 复制数组 7.5.3 排序 7.6 数组作为参数 7.6.1 数组协变 7.6.2 ArraySegment 7.7 枚举 7.7.1 IEnumerator接口 7.7.2 foreach语句 7.7.3 yield语句 7.8 元组 7.9 结构比较 7.10 小结 第8章 运算符和类型强制转换 8.1 运算符和类型转换 8.2 运算符 8.2.1 运算符的简化操作 8.2.2 运算符的优先级和关联性 8.3 类型的安全性 8.3.1 类型转换 8.3.2 装箱和拆箱 8.4 比较对象的相等性 8.4.1 比较引用类型的相等性 8.4.2 比较值类型的相等性 8.5 运算符重载 8.5.1 运算符的工作方式 8.5.2 运算符重载的示例:Vector结构 8.5.3 比较运算符的重载 8.5.4 可以重载的运算符 8.6 实现自定义的索引运算符 8.7 实现用户定义的类型强制转换 8.7.1 实现用户定义的类型强制转换 8.7.2 多重类型强制转换 8.8 小结 第9章 委托、Iambda表达式和事件 9.1 引用方法 9.2 委托 9.2.1 声明委托 9.2.2 使用委托 9.2.3 简单的委托示例 9.2.4 Action和Func委托 9.2.5 BubbleSorter示例 9.2.6 多播委托 9.2.7 匿名方法 9.3 lambda表达式 9.3.1 参数 9.3.2 多行代码 9.3.3 闭包 9.4 事件 9.4.1 事件发布程序 9.4.2 事件侦听器 9.4.3 弱事件 9.5 小结 第10章 字符串和正则表达式 10.1 System.String类 10.1.1 构建字符串 10.1.2 StringBuilder成员 10.2 字符串格式 10.2.1 字符串插值 10.2.2 日期时间和数字的格式 10.2.3 自定义字符串格式 10.3 正则表达式 10.3.1 正则表达式概述 10.3.2 RegularExpressionsPlayaround示例 10.3.3 显示结果 10.3.4 匹配、组和捕获 10.4 小结 第11章 集合 11.1 概述 11.2 集合接口和类型 11.3 列表 11.3.1 创建列表 11.3.2 只读集合 11.4 队列 11.5 栈 11.6 链表 11.7 有序列表 11.8 字典 11.8.1 字典初始化器 11.8.2 键的类型 11.8.3 字典示例 11.8.4 Lookup类 11.8.5 有序字典 11.9 集 11.10 性能 11.11 小结 第12章 特殊的集合 12.1 概述 12.2 处理位 12.2.1 BitArray类 12.2.2 BitVector32结构 12.3 可观察的集合 12.4 不变的集合 12.4.1 使用构建器和不变的集合 12.4.2 不变集合类型和接口 12.4.3 使用LINQ和不变的数组 12.5 并发集合 12.5.1 创建管道 12.5.2 使用BlockingCollection 12.5.3 使用ConcurrentDictionary 12.5.4 完成管道 12.6 小结 第13章 LINQ 13.1 LINQ概述 13.1.1 列表和实体 13.1.2 LINQ查询 13.1.3 扩展方法 13.1.4 推迟查询的执行 13.2 标准的查询操作符 13.2.1 筛选 13.2.2 用索引筛选 13.2.3 类型筛选 13.2.4 复合的from子句 13.2.5 排序 13.2.6 分组 13.2.7 LINQ查询中的变量 13.2.8 对嵌套的对象分组 13.2.9 内连接 13.2.10 左外连接 13.2.11 组连接 13.2.12 集合操作 13.2.13 合并 13.2.14 分区 13.2.15 聚合操作符 13.2.16 转换操作符 13.2.17 生成操作符 13.3 并行LINQ 13.3.1 并行查询 13.3.2 分区器 13.3.3 取消 13.4 表达式树 13.5 LINQ提供程序 13.6 小结 第14章 错误和异常 14.1 简介 14.2 异常类 14.3 捕获异常 14.3.1 实现多个catch块 14.3.2 在其他代码中捕获异常 14.3.3 System.Exception属性 14.3.4 异常过滤器 14.3.5 重新抛出异常 14.3.6 没有处理异常时发生的情况 14.4 用户定义的异常类 14.4.1 捕获用户定义的异常 14.4.2 抛出用户定义的异常 14.4.3 定义用户定义的异常类 14.5 调用者信息 14.6 小结 第15章 异步编程 15.1 异步编程的重要性 15.2 异步模式 15.2.1 同步调用 15.2.2 异步模式 15.2.3 基于事件的异步模式 15.2.4 基于任务的异步模式 15.3 异步编程的基础 15.3.1 创建任务 15.3.2 调用异步方法 15.3.3 延续任务 15.3.4 同步上下文 15.3.5 使用多个异步方法 15.3.6 转换异步模式 15.4 错误处理 15.4.1 异步方法的异常处理 15.4.2 多个异步方法的异常处理 15.4.3 使用AggregateException信息 15.5 取消 15.5.1 开始取消任务 15.5.2 使用框架特性取消任务 15.5.3 取消自定义任务 15.6 小结 第16章 反射、元数据和动态编程 16.1 在运行期间检查代码和动态编程 16.2 自定义特性 16.2.1 编写自定义特性 16.2.2 自定义特性示例:WhatsNewAttributes 16.3 反射 16.3.1 System.Type类 16.3.2 TypeView示例 16.3.3 Assembly类 16.3.4 完成WhatsNewAttributes示例 16.4 为反射使用动态语言扩展 16.4.1 创建Calculator库 16.4.2 动态实例化类型 16.4.3 用反射API调用成员 16.4.4 使用动态类型调用成员 16.5 dynamic类型 16.6 DLR 16.7 包含DLR ScriptRuntime 16.8 DynamicObject和ExpandoObject 16.8.1 DynamicObject 16.8.2 ExpandoObject 16.9 小结 第Ⅱ部分 .NET Core与Windows Runtime 第17章 Visual Studio 2015 17.1 使用Visual Studio 2015 17.1.1 Visual Studio的版本 17.1.2 Visual Studio设置 17.2 创建项目 17.2.1 面向多个版本的.NET Framework 17.2.2 选择项目类型 17.3 浏览并编写项目 17.3.1 构建环境:CLI和MSBuild 17.3.2 Solution Explorer 17.3.3 使用代码编辑器 17.3.4 学习和理解其他窗口 17.3.5 排列窗口 17.4 构建项目 17.4.1 构建、编译和生成代码 17.4.2 调试版本和发布版本 17.4.3 选择配置 17.4.4 编辑配置 17.5 调试代码 17.5.1 设置断点 17.5.2 使用数据提示和调试器可视化工具 17.5.3 Live Visual Tree 17.5.4 监视和修改变量 17.5.5 异常 17.5.6 多线程 17.6 重构工具 17.7 体系结构工具 17.7.1 代码地图 17.7.2 层关系图 17.8 分析应用程序 17.8.1 诊断工具 17.8.2 Concurrency Visualizer 17.8.3 代码分析器 17.8.4 Code Metrics 17.9 小结 第18章 .NET编译器平台 18.1 简介 18.2 编译器管道 18.3 语法分析 18.3.1 使用查询节点 18.3.2 遍历节点 18.4 语义分析 18.4.1 编译 18.4.2 语义模型 18.5 代码转换 18.5.1 创建新树 18.5.2 使用语法重写器 18.6 Visual Studio Code重构 18.6.1 VSIX包 18.6.2 代码重构提供程序 18.7 小结 第19章 测试 19.1 概述 19.2 使用MSTest进行单元测试 19.2.1 使用MSTest创建单元测试 19.2.2 运行单元测试 19.2.3 使用MSTest预期异常 19.2.4 测试全部代码路径 19.2.5 外部依赖 19.2.6 Fakes Framework 19.2.7 IntelliTest 19.3 使用xUnit进行单元测试 19.3.1 使用xUnit和.NET Core 19.3.2 创建Fact属性 19.3.3 创建Theory属性 19.3.4 用dotnet工具运行单元测试 19.3.5 使用Mocking库 19.4 UI测试 19.5 Web测试 19.5.1 创建Web测试 19.5.2 运行Web测试 19.5.3 Web负载测试 19.6 小结 第20章 诊断和Application Insights 20.1 诊断概述 20.2 使用EventSource跟踪 20.2.1 EventSource的简单用法 20.2.2 跟踪工具 20.2.3 派生自EventSource 20.2.4 使用注释和EventSource 20.2.5 创建事件清单模式 20.2.6 使用活动ID 20.3 创建自定义侦听器 20.4 使用Application Insights 20.4.1 创建通用Windows应用程序 20.4.2 创建Application Insights资源 20.4.3 配置Windows应用程序 20.4.4 使用收集器 20.4.5 编写自定义事件 20.5 小结 第21章 任务和并行编程 21.1 概述 21.2 Parallel类 21.2.1 使用Parallel.For()方法循环 21.2.2 提前停止Parallel.For 21.2.3 Parallel.For()的初始化 21.2.4 使用Parallel.ForEach()方法循环 21.2.5 通过Parallel.Invoke()方法调用多个方法 21.3 任务 21.3.1 启动任务 21.3.2 Future——任务的结果 21.3.3 连续的任务 21.3.4 任务层次结构 21.3.5 从方法中返回任务 21.3.6 等待任务 21.4 取消架构 21.4.1 Parallel.For()方法的取消 21.4.2 任务的取消 21.5 数据流 21.5.1 使用动作块 21.5.2 源和目标数据块 21.5.3 连接块 21.6 小结 第22章 任务同步 22.1 概述 22.2 线程问题 22.2.1 争用条件 22.2.2 死锁 22.3 lock语句和线程安全 22.4 Interlocked类 22.5 Monitor类 22.6 SpinLock结构 22.7 WaitHandle基类 22.8 Mutex类 22.9 Semaphore类 22.10 Events类 22.11 Barrier类 22.12 ReaderWriterLockSlim类 22.13 Timer类 22.14 小结 第23章 文件和流 23.1 概述 23.2 管理文件系统 23.2.1 检查驱动器信息 23.2.2 使用Path类 23.2.3 创建文件和文件夹 23.2.4 访问和修改文件的属性 23.2.5 创建简单的编辑器 23.2.6 使用File执行读写操作 23.3 枚举文件 23.4 使用流处理文件 23.4.1 使用文件流 23.4.2 读取流 23.4.3 写入流 23.4.4 复制流 23.4.5 随机访问流 23.4.6 使用缓存的流 23.5 使用读取器和写入器 23.5.1 StreamReader类 23.5.2 StreamWriter类 23.5.3 读写二进制文件 23.6 压缩文件 23.6.1 使用压缩流 23.6.2 压缩文件 23.7 观察文件的更改 23.8 使用内存映射的文件 23.8.1 使用访问器创建内存映射文件 23.8.2 使用流创建内存映射文件 23.9 使用管道通信 23.9.1 创建命名管道服务器 23.9.2 创建命名管道客户端 23.9.3 创建匿名管道 23.10 通过Windows运行库使用文件和流 23.10.1 Windows应用程序编辑器 23.10.2 把Windows Runtime类型映射为.NET类型 23.11 小结 第24章 安全性 24.1 概述 24.2 验证用户信息 24.2.1 使用Windows标识 24.2.2 Windows Principal 24.2.3 使用声称 24.3 加密数据 24.3.1 创建和验证签名 24.3.2 实现安全的数据交换 24.3.3 使用RSA签名和散列 24.3.4 实现数据的保护 24.4 资源的访问控制 24.5 使用证书发布代码 24.6 小结 第25章 网络 25.1 网络 25.2 HttpClient类 25.2.1 发出异步的Get请求 25.2.2 抛出异常 25.2.3 传递标题 25.2.4 访问内容 25.2.5 用HttpMessageHandler自定义请求 25.2.6 使用SendAsync创建HttpRequestMessage 25.2.7 使用HttpClient和Windows Runtime 25.3 使用WebListener类 25.4 使用实用工具类 25.4.1 URI 25.4.2 IPAddress 25.4.3 IPHostEntry 25.4.4 Dns 25.5 使用TCP 25.5.1 使用TCP创建HTTP客户程序 25.5.2 创建TCP侦听器 25.5.3 创建TCP客户端 25.5.4 TCP和UDP 25.6 使用UDP 25.6.1 建立UDP接收器 25.6.2 创建UDP发送器 25.6.3 使用多播 25.7 使用套接字 25.7.1 使用套接字创建侦听器 25.7.2 使用NetworkStream和套接字 25.7.3 通过套接字使用读取器和写入器 25.7.4 使用套接字实现接收器 25.8 小结 第26章 Composition 26.1 概述 26.2 Composition库的体系结构 26.2.1 使用特性的Composition 26.2.2 基于约定的部件注册 26.3 定义协定 26.4 导出部件 26.4.1 创建部件 26.4.2 使用部件的部件 26.4.3 导出元数据 26.4.4 使用元数据进行惰性加载 26.5 导入部件 26.5.1 导入连接 26.5.2 部件的惰性加载 26.5.3 读取元数据 26.6 小结 第27章 XML和JSON 27.1 数据格式 27.1.1 XML 27.1.2 .NET支持的XML标准 27.1.3 在框架中使用XML 27.1.4 JSON 27.2 读写流格式的XML 27.2.1 使用XmlReader类读取XML 27.2.2 使用XmlWriter类 27.3 在.NET中使用DOM 27.3.1 使用XmlDocument类读取 27.3.2 遍历层次结构 27.3.3 使用XmlDocument插入节点 27.4 使用XPathNavigator类 27.4.1 XPathDocument类 27.4.2 XPathNavigator类 27.4.3 XPathNodeIterator类 27.4.4 使用XPath导航XML 27.4.5 使用XPath评估 27.4.6 用XPath修改XML 27.5 在XML中序列化对象 27.5.1 序列化简单对象 27.5.2 序列化一个对象树 27.5.3 没有特性的序列化 27.6 LINQ to XML 27.6.1 XDocument对象 27.6.2 XElement对象 27.6.3 XNamespace对象 27.6.4 XComment对象 27.6.5 XAttribute对象 27.6.6 使用LINQ查询XML文档 27.6.7 查询动态的XML文档 27.6.8 转换为对象 27.6.9 转换为XML 27.7 JSON 27.7.1 创建JSON 27.7.2 转换对象 27.7.3 序列化对象 27.8 小结 第28章 本地化 28.1 全球市场 28.2 System.Globalization名称空间 28.2.1 Unicode问题 28.2.2 区域性和区域 28.2.3 使用区域性 28.2.4 排序 28.3 资源 28.3.1 资源读取器和写入器 28.3.2 使用资源文件生成器 28.3.3 通过ResourceManager使用资源文件 28.3.4 System.Resources名称空间 28.4 使用WPF本地化 28.5 使用ASP.NET Core本地化 28.5.1 注册本地化服务 28.5.2 注入本地化服务 28.5.3 区域性提供程序 28.5.4 在ASP.NET Core中使用资源 28.6 本地化通用Windows平台 28.6.1 给UWP使用资源 28.6.2 使用多语言应用程序工具集进行本地化 28.7 创建自定义区域性 28.8 小结 第Ⅲ部分 Windows应用程序 第29章 核心XAML 29.1 XAML的作用 29.2 XAML概述 29.2.1 使用WPF把元素映射到类上 29.2.2 通过通用Windows应用程序把元素映射到类上 29.2.3 使用自定义.NET类 29.2.4 把属性用作特性 29.2.5 把属性用作元素 29.2.6 使用集合和XAML 29.3 依赖属性 29.3.1 创建依赖属性 29.3.2 值变更回调和事件 29.3.3 强制值回调和WPF 29.4 路由事件 29.4.1 用于Windows应用程序的路由事件 29.4.2 WPF的冒泡和隧道 29.4.3 用WPF实现自定义路由事件 29.5 附加属性 29.6 标记扩展 29.6.1 创建自定义标记扩展 29.6.2 XAML定义的标记扩展 29.7 小结 第30章 样式化XAML应用程序 30.1 样式设置 30.2 形状 30.3 几何图形 30.3.1 使用段的几何图形 30.3.2 使用PML的几何图形 30.3.3 合并的几何图形(WPF) 30.4 变换 30.4.1 缩放 30.4.2 平移 30.4.3 旋转 30.4.4 倾斜 30.4.5 组合变换和复合变换 30.4.6 使用矩阵的变换 30.4.7 变换布局 30.5 画笔 30.5.1 SolidColorBrush 30.5.2 LinearGradientBrush 30.5.3 ImageBrush 30.5.4 WebViewBrush 30.5.5 只用于WPF的画笔 30.6 样式和资源 30.6.1 样式 30.6.2 资源 30.6.3 从代码中访问资源 30.6.4 动态资源(WPF) 30.6.5 资源字典 30.6.6 主题资源(UWP) 30.7 模板 30.7.1 控件模板 30.7.2 数据模板 30.7.3 样式化ListView 30.7.4 ListView项的数据模板 30.7.5 项容器的样式 30.7.6 项面板 30.7.7 列表视图的控件模板 30.8 动画 30.8.1 时间轴 30.8.2 缓动函数 30.8.3 关键帧动画 30.8.4 过渡(UWP应用程序) 30.9 可视化状态管理器 30.9.1 用控件模板预定义状态 30.9.2 定义自定义状态 30.9.3 设置自定义的状态 30.10 小结 第31章 模式和XAML应用程序 31.1 使用MVVM的原因 31.2 定义MVVM模式 31.3 共享代码 31.3.1 使用API协定和通用Windows平台 31.3.2 使用共享项目 31.3.3 使用移动库 31.4 示例解决方案 31.5 模型 31.5.1 实现变更通知 31.5.2 使用Repository模式 31.6 视图模型 31.6.1 命令 31.6.2 服务和依赖注入 31.7 视图 31.7.1 注入视图模型 31.7.2 用于WPF的数据绑定 31.7.3 用于UWP的已编译数据绑定 31.8 使用事件传递消息 31.9 IoC容器 31.10 使用框架 31.11 小结 第32章 Windows应用程序:用户界面 32.1 概述 32.2 导航 32.2.1 导航回最初的页面 32.2.2 重写Page类的导航 32.2.3 在页面之间导航 32.2.4 后退按钮 32.2.5 Hub 32.2.6 Pivot 32.2.7 应用程序shell 32.2.8 汉堡按钮 32.2.9 分隔视图 32.2.10 给SplitView窗格添加内容 32.3 布局 32.3.1 VariableSizedWrapGrid 32.3.2 RelativePanel 32.3.3 自适应触发器 32.3.4 XAML视图 32.3.5 延迟加载 32.4 命令 32.5 已编译的数据绑定 32.5.1 已编译绑定的生命周期 32.5.2 给已编译的数据模板使用资源 32.6 控件 32.6.1 TextBox控件 32.6.2 AutoSuggest 32.6.3 Inking 32.6.4 读写笔触的选择器 32.7 小结 第33章 高级Windows应用程序 33.1 概述 33.2 应用程序的生命周期 33.3 应用程序的执行状态 33.4 导航状态 33.4.1 暂停应用程序 33.4.2 激活暂停的应用程序 33.4.3 测试暂停 33.4.4 页面状态 33.5 共享数据 33.5.1 共享源 33.5.2 共享目标 33.6 应用程序服务 33.6.1 创建模型 33.6.2 为应用程序服务连接创建后台任务 33.6.3 注册应用程序服务 33.6.4 调用应用程序服务 33.7 相机 33.8 Geolocation和MapControl 33.8.1 使用MapControl 33.8.2 使用Geolocator定位信息 33.8.3 街景地图 33.8.4 继续请求位置信息 33.9 传感器 33.9.1 光线 33.9.2 罗盘 33.9.3 加速计 33.9.4 倾斜计 33.9.5 陀螺仪 33.9.6 方向 33.9.7 Rolling Marble示例 33.10 小结 第34章 带WPF的Windows桌面应用程序 34.1 概述 34.2 控件 34.2.1 简单控件 34.2.2 内容控件 34.2.3 带标题的内容控件 34.2.4 项控件 34.2.5 带标题的项控件 34.2.6 修饰 34.3 布局 34.3.1 StackPanel 34.3.2 WrapPanel 34.3.3 Canvas 34.3.4 DockPanel 34.3.5 Grid 34.4 触发器 34.4.1 属性触发器 34.4.2 多触发器 34.4.3 数据触发器 34.5 菜单和功能区控件 34.5.1 菜单控件 34.5.2 功能区控件 34.6 Commanding 34.6.1 定义命令 34.6.2 定义命令源 34.6.3 命令绑定 34.7 数据绑定 34.7.1 BooksDemo应用程序内容 34.7.2 用XAML绑定 34.7.3 简单对象的绑定 34.7.4 更改通知 34.7.5 对象数据提供程序 34.7.6 列表绑定 34.7.7 主从绑定 34.7.8 多绑定 34.7.9 优先绑定 34.7.10 值的转换 34.7.11 动态添加列表项 34.7.12 动态添加选项卡中的项 34.7.13 数据模板选择器 34.7.14 绑定到XML上 34.7.15 绑定的验证和错误处理 34.8 TreeView 34.9 DataGrid 34.9.1 自定义列 34.9.2 行的细节 34.9.3 用DataGrid进行分组 34.9.4 实时成型 34.10 小结 第35章 用WPF创建文档 35.1 简介 35.2 文本元素 35.2.1 字体 35.2.2 TextEffect 35.2.3 内联 35.2.4 块 35.2.5 列表 35.2.6 表 35.2.7 块的锚定 35.3 流文档 35.4 固定文档 35.5 XPS文档 35.6 打印 35.6.1 用PrintDialog打印 35.6.2 打印可见元素 35.7 小结 第36章 部署Windows应用程序 36.1 部署是应用程序生命周期的一部分 36.2 部署的规划 36.2.1 部署选项 36.2.2 部署要求 36.2.3 部署.NET运行库 36.3 传统的部署选项 36.3.1 xcopy部署 36.3.2 Windows Installer 36.4 ClickOnce 36.4.1 ClickOnce操作 36.4.2 发布ClickOnce应用程序 36.4.3 ClickOnce设置 36.4.4 ClickOnce文件的应用程序缓存 36.4.5 应用程序的安装 36.4.6 ClickOnce部署API 36.5 UWP应用程序 36.5.1 创建应用程序包 36.5.2 Windows App Certification Kit 36.5.3 旁加载 36.6 小结 第Ⅳ部分 Web应用程序和服务 第37章 ADO.NET 37.1 ADO.NET概述 37.1.1 示例数据库 37.1.2 NuGet包和名称空间 37.2 使用数据库连接 37.2.1 管理连接字符串 37.2.2 连接池 37.2.3 连接信息 37.3 命令 37.3.1 ExecuteNonQuery()方法 37.3.2 ExecuteScalar()方法 37.3.3 ExecuteReader()方法 37.3.4 调用存储过程 37.4 异步数据访问 37.5 事务 37.6 小结 第38章 Entity Framework Core 38.1 Entity Framework简史 38.2 Entity Framework简介 38.2.1 创建模型 38.2.2 创建上下文 38.2.3 写入数据库 38.2.4 读取数据库 38.2.5 更新记录 38.2.6 删除记录 38.3 使用依赖注入 38.4 创建模型 38.4.1 创建关系 38.4.2 用.NET CLI迁移 38.4.3 用MSBuild迁移 38.4.4 创建数据库 38.4.5 数据注释 38.4.6 流利API 38.4.7 在数据库中搭建模型 38.5 使用对象状态 38.5.1 用关系添加对象 38.5.2 对象的跟踪 38.5.3 更新对象 38.5.4 更新未跟踪的对象 38.6 冲突的处理 38.6.1 最后一个更改获胜 38.6.2 第一个更改获胜 38.7 使用事务 38.7.1 使用隐式的事务 38.7.2 创建显式的事务 38.8 小结 第39章 Windows服务 39.1 Windows服务 39.2 Windows服务的体系结构 39.2.1 服务程序 39.2.2 服务控制程序 39.2.3 服务配置程序 39.2.4 Windows服务的类 39.3 创建Windows服务程序 39.3.1 创建服务的核心功能 39.3.2 QuoteClient示例 39.3.3 Windows服务程序 39.3.4 线程化和服务 39.3.5 服务的安装 39.3.6 安装程序 39.4 Windows服务的监控和控制 39.4.1 MMC管理单元 39.4.2 net.exe实用程序 39.4.3 sc.exe实用程序 39.4.4 Visual Studio Server Explorer 39.4.5 编写自定义ServiceController类 39.5 故障排除和事件日志 39.6 小结 第40章 ASP.NET Core 40.1 ASP.NET Core 1.0 40.2 Web技术 40.2.1 HTML 40.2.2 CSS 40.2.3 JavaScript和TypeScript 40.2.4 脚本库 40.3 ASP.NET Web项目 40.4 启动 40.5 添加静态内容 40.5.1 使用JavaScript包管理器:npm 40.5.2 用gulp构建 40.5.3 通过Bower使用客户端库 40.6 请求和响应 40.6.1 请求标题 40.6.2 查询字符串 40.6.3 编码 40.6.4 表单数据 40.6.5 cookie 40.6.6 发送JSON 40.7 依赖注入 40.7.1 定义服务 40.7.2 注册服务 40.7.3 注入服务 40.7.4 调用控制器 40.8 使用映射的路由 40.9 使用中间件 40.10 会话状态 40.11 配置ASP.NET 40.11.1 读取配置 40.11.2 基于环境的不同配置 40.11.3 用户密钥 40.12 小结 第41章 ASP.NET MVC 41.1 为ASP.NET MVC 6建立服务 41.2 定义路由 41.2.1 添加路由 41.2.2 使用路由约束 41.3 创建控制器 41.3.1 理解动作方法 41.3.2 使用参数 41.3.3 返回数据 41.3.4 使用Controller基类和POCO控制器 41.4 创建视图 41.4.1 向视图传递数据 41.4.2 Razor语法 41.4.3 创建强类型视图 41.4.4 定义布局 41.4.5 用部分视图定义内容 41.4.6 使用视图组件 41.4.7 在视图中使用依赖注入 41.4.8 为多个视图导入名称空间 41.5 从客户端提交数据 41.5.1 模型绑定器 41.5.2 注解和验证 41.6 使用HTML Helper 41.6.1 简单的Helper 41.6.2 使用模型数据 41.6.3 定义HTML特性 41.6.4 创建列表 41.6.5 强类型化的Helper 41.6.6 编辑器扩展 41.6.7 实现模板 41.7 标记辅助程序 41.7.1 激活标记辅助程序 41.7.2 使用锚定标记辅助程序 41.7.3 使用标签标记辅助程序 41.7.4 使用输入标记辅助程序 41.7.5 使用表单进行验证 41.7.6 创建自定义标记辅助程序 41.8 实现动作过滤器 41.9 创建数据驱动的应用程序 41.9.1 定义模型 41.9.2 创建数据库 41.9.3 创建服务 41.9.4 创建控制器 41.9.5 创建视图 41.10 实现身份验证和授权 41.10.1 存储和检索用户信息 41.10.2 启动身份系统 41.10.3 执行用户注册 41.10.4 设置用户登录 41.10.5 验证用户的身份 41.11 小结 第42章 ASP.NET Web API 42.1 概述 42.2 创建服务 42.2.1 定义模型 42.2.2 创建存储库 42.2.3 创建控制器 42.2.4 修改响应格式 42.2.5 REST结果和状态码 42.3 创建异步服务 42.4 创建.NET客户端 42.4.1 发送GET请求 42.4.2 从服务中接收XML 42.4.3 发送POST请求 42.4.4 发送PUT请求 42.4.5 发送DELETE请求 42.5 写入数据库 42.5.1 定义数据库 42.5.2 创建存储库 42.6 创建元数据 42.7 创建和使用OData服务 42.7.1 创建数据模型 42.7.2 创建服务 42.7.3 OData查询 42.8 小结 第43章 WebHooks和SignaIR 43.1 概述 43.2 SignalR的体系结构 43.3 使用SignalR的简单聊天程序 43.3.1 创建集线器 43.3.2 用HTML和JavaScript创建客户端 43.3.3 创建SignalR .NET客户端 43.4 分组连接 43.4.1 用分组扩展集线器 43.4.2 用分组扩展WPF客户端 43.5 WebHooks的体系结构 43.6 创建Dropbox和GitHub接收器 43.6.1 创建Web应用程序 43.6.2 为Dropbox和GitHub配置WebHooks 43.6.3 实现处理程序 43.6.4 用Dropbox和GitHub配置应用程序 43.6.5 运行应用程序 43.7 小结 第44章 WCF 44.1 WCF概述 44.1.1 SOAP 44.1.2 WSDL 44.2 创建简单的服务和客户端 44.2.1 定义服务和数据协定 44.2.2 数据访问 44.2.3 服务的实现 44.2.4 WCF服务宿主和WCF测试客户端 44.2.5 自定义服务宿主 44.2.6 WCF客户端 44.2.7 诊断 44.2.8 与客户端共享协定程序集 44.3 协定 44.3.1 数据协定 44.3.2 版本问题 44.3.3 服务协定和操作协定 44.3.4 消息协定 44.3.5 错误协定 44.4 服务的行为 44.5 绑定 44.5.1 标准绑定 44.5.2 标准绑定的功能 44.5.3 WebSocket 44.6 宿主 44.6.1 自定义宿主 44.6.2 WAS宿主 44.6.3 预配置的宿主类 44.7 客户端 44.7.1 使用元数据 44.7.2 共享类型 44.8 双工通信 44.8.1 双工通信的协定 44.8.2 用于双工通信的服务 44.8.3 用于双工通信的客户应用程序 44.9 路由 44.9.1 路由示例应用程序 44.9.2 路由接口 44.9.3 WCF路由服务 44.9.4 为故障切换使用路由器 44.9.5 改变协定的桥梁 44.9.6 过滤器的类型 44.10 小结 第45章 部署网站和服务 45.1 部署Web应用程序 45.2 部署前的准备 45.2.1 创建ASP.NET 4.6 Web应用程序 45.2.2 创建ASP.NET Core 1.0 Web应用程序 45.2.3 ASP.NET 4.6的配置文件 45.2.4 ASP.NET Core 1.0的配置文件 45.3 部署到IIS 45.3.1 使用IIS Manager准备Web应用程序 45.3.2 Web部署到IIS 45.4 部署到Microsoft Azure 45.4.1 创建SQL数据库 45.4.2 用SQL Azure测试本地网站 45.4.3 部署到Microsoft Azure Web应用 45.5 部署到Docker 45.6 小结
c#高级编程(第10版)【原版】【目录完整】
目录 第Ⅰ部分 C#语言 第1章 .NET应用程序体系结构 1.1 选择技术 1.2 回顾.NET历史 1.2.1 C#1.0——一种新语言 1.2.2 带有泛型的C# 2和.NET 2 1.2.3 .NET 3.0 —— Windows Presentation Foundation 1.2.4 C# 3和.NET 3.5——LINQ 1.2.5 C# 4和.NET 4.0—— dynamic和TPL 1.2.6 C# 5和异步编程 1.2.7 C# 6和.NET Core 1.2.8 选择技术,继续前进 1.3 .NET 2015 1.3.1 .NET Framework 4.6 1.3.2 .NET Core 1.0 1.3.3 程序集 1.3.4 NuGet包 1.3.5 公共语言运行库 1.3.6 .NET Native 1.3.7 Windows 运行库 1.4 Hello, World 1.5 用.NET 4.6编译 1.6 用.NET Core CLI编译 1.6.1 设置环境 1.6.2 构建应用程序 1.6.3 打包和发布应用程序 1.7 应用程序类型和技术 1.7.1 数据访问 1.7.2 Windows桌面应用程序 1.7.3 UWP 1.7.4 SOAP服务和WCF 1.7.5 Web服务和ASP.NET Web API 1.7.6 WebHooks和SignalR 1.7.7 Windows服务 1.7.8 Web应用程序 1.7.9 Microsoft Azure 1.8 开发工具 1.8.1 Visual Studio Community 1.8.2 Visual Studio Professional with MSDN 1.8.3 Visual Studio Enterprise with MSDN 1.8.4 Visual Studio Code 1.9 小结 2.5 程序流控制 2.5.1 条件语句 2.5.2 循环 2.5.3 跳转语句 2.6 枚举 2.7 名称空间 2.7.1 using语句 2.7.2 名称空间的别名 2.8 Main()方法 2.9 使用注释 2.9.1 源文件中的内部注释 2.9.2 XML文档 2.10 C#预处理器指令 2.10.1 #define和#undef 2.10.2 #if、#elif、#else和#endif 2.10.3 #warning和 # error 2.10.4 #region和#endregion 2.10.5 #line 2.10.6 #pragma 2.11 C#编程准则 2.11.1 关于标识符的规则 2.11.2 用法约定 2.12 小结 第2章 核心C# 2.1 C#基础 2.2 用Visual Studio创建Hello, World! 2.2.1 创建解决方案 2.2.2 创建新项目 2.2.3 编译和运行程序 2.2.4 代码的详细介绍 2.3 变量 2.3.1 初始化变量 2.3.2 类型推断 2.3.3 变量的作用域 2.3.4 常量 2.4 预定义数据类型 2.4.1 值类型和引用类型 2.4.2 .NET类型 2.4.3 预定义的值类型 2.4.4 预定义的引用类型 第3章 对象和类型 3.1 创建及使用类 3.2 类和结构 3.3 类 3.3.1 字段 3.3.2 属性 3.3.3 方法 3.3.4 构造函数 3.3.5 只读成员 3.3.6 只读字段 3.4 匿名类型 3.5 结构 3.5.1 结构是值类型 3.5.2 结构和继承 3.5.3 结构的构造函数 3.6 按值和按引用传递参数 3.6.1 ref参数 3.6.2 out参数 3.7 可空类型 3.8 枚举 3.9 部分类 3.10 扩展方法 3.11 Object类 3.12 小结 第4章 继承 4.1 继承 4.2 继承的类型 4.2.1 多重继承 4.2.2 结构和类 4.3 实现继承 4.3.1 虚方法 4.3.2 多态性 4.3.3 隐藏方法 4.3.4 调用方法的基类版本 4.3.5 抽象类和抽象方法 4.3.6 密封类和密封方法 4.3.7 派生类的构造函数 4.4 修饰符 4.4.1 访问修饰符 4.4.2 其他修饰符 4.5 接口 4.5.1 定义和实现接口 4.5.2 派生的接口 4.6 is和as运算符 4.7 小结 第5章 托管和非托管的资源 5.1 资源 5.2 后台内存管理 5.2.1 值数据类型 5.2.2 引用数据类型 5.2.3 垃圾回收 5.3 强引用和弱引用 5.4 处理非托管的资源 5.4.1 析构函数或终结器 5.4.2 IDisposable接口 5.4.3 using语句 5.4.4 实现IDisposable接口和析构函数 5.4.5 IDisposable和终结器的规则 5.5 不安全的代码 5.5.1 用指针直接访问内存 5.5.2 指针示例:PointerPlayground 5.5.3 使用指针优化性能 5.6 平台调用 5.7 小结 第6章 泛型 6.1 泛型概述 6.1.1 性能 6.1.2 类型安全 6.1.3 二进制代码的重用 6.1.4 代码的扩展 6.1.5 命名约定 6.2 创建泛型类 6.3 泛型类的功能 6.3.1 默认值 6.3.2 约束 6.3.3 继承 6.3.4 静态成员 6.4 泛型接口 6.4.1 协变和抗变 6.4.2 泛型接口的协变 6.4.3 泛型接口的抗变 6.5 泛型结构 6.6 泛型方法 6.6.1 泛型方法示例 6.6.2 带约束的泛型方法 6.6.3 带委托的泛型方法 6.6.4 泛型方法规范 6.7 小结 第7章 数组和元组 7.1 同一类型和不同类型的多个对象 7.2 简单数组 7.2.1 数组的声明 7.2.2 数组的初始化 7.2.3 访问数组元素 7.2.4 使用引用类型 7.3 多维数组 7.4 锯齿数组 7.5 Array类 7.5.1 创建数组 7.5.2 复制数组 7.5.3 排序 7.6 数组作为参数 7.6.1 数组协变 7.6.2 ArraySegment 7.7 枚举 7.7.1 IEnumerator接口 7.7.2 foreach语句 7.7.3 yield语句 7.8 元组 7.9 结构比较 7.10 小结 第8章 运算符和类型强制转换 8.1 运算符和类型转换 8.2 运算符 8.2.1 运算符的简化操作 8.2.2 运算符的优先级和关联性 8.3 类型的安全性 8.3.1 类型转换 8.3.2 装箱和拆箱 8.4 比较对象的相等性 8.4.1 比较引用类型的相等性 8.4.2 比较值类型的相等性 8.5 运算符重载 8.5.1 运算符的工作方式 8.5.2 运算符重载的示例:Vector结构 8.5.3 比较运算符的重载 8.5.4 可以重载的运算符 8.6 实现自定义的索引运算符 8.7 实现用户定义的类型强制转换 8.7.1 实现用户定义的类型强制转换 8.7.2 多重类型强制转换 8.8 小结 第9章 委托、Iambda表达式和事件 9.1 引用方法 9.2 委托 9.2.1 声明委托 9.2.2 使用委托 9.2.3 简单的委托示例 9.2.4 Action和Func委托 9.2.5 BubbleSorter示例 9.2.6 多播委托 9.2.7 匿名方法 9.3 lambda表达式 9.3.1 参数 9.3.2 多行代码 9.3.3 闭包 9.4 事件 9.4.1 事件发布程序 9.4.2 事件侦听器 9.4.3 弱事件 9.5 小结 第10章 字符串和正则表达式 10.1 System.String类 10.1.1 构建字符串 10.1.2 StringBuilder成员 10.2 字符串格式 10.2.1 字符串插值 10.2.2 日期时间和数字的格式 10.2.3 自定义字符串格式 10.3 正则表达式 10.3.1 正则表达式概述 10.3.2 RegularExpressionsPlayaround示例 10.3.3 显示结果 10.3.4 匹配、组和捕获 10.4 小结 第11章 集合 11.1 概述 11.2 集合接口和类型 11.3 列表 11.3.1 创建列表 11.3.2 只读集合 11.4 队列 11.5 栈 11.6 链表 11.7 有序列表 11.8 字典 11.8.1 字典初始化器 11.8.2 键的类型 11.8.3 字典示例 11.8.4 Lookup类 11.8.5 有序字典 11.9 集 11.10 性能 11.11 小结 第12章 特殊的集合 12.1 概述 12.2 处理位 12.2.1 BitArray类 12.2.2 BitVector32结构 12.3 可观察的集合 12.4 不变的集合 12.4.1 使用构建器和不变的集合 12.4.2 不变集合类型和接口 12.4.3 使用LINQ和不变的数组 12.5 并发集合 12.5.1 创建管道 12.5.2 使用BlockingCollection 12.5.3 使用ConcurrentDictionary 12.5.4 完成管道 12.6 小结 第13章 LINQ 13.1 LINQ概述 13.1.1 列表和实体 13.1.2 LINQ查询 13.1.3 扩展方法 13.1.4 推迟查询的执行 13.2 标准的查询操作符 13.2.1 筛选 13.2.2 用索引筛选 13.2.3 类型筛选 13.2.4 复合的from子句 13.2.5 排序 13.2.6 分组 13.2.7 LINQ 查询中的变量 13.2.8 对嵌套的对象分组 13.2.9 内连接 13.2.10 左外连接 13.2.11 组连接 13.2.12 集合操作 13.2.13 合并 13.2.14 分区 13.2.15 聚合操作符 13.2.16 转换操作符 13.2.17 生成操作符 13.3 并行LINQ 13.3.1 并行查询 13.3.2 分区器 13.3.3 取消 13.4 表达式树 13.5 LINQ提供程序 13.6 小结 第14章 错误和异常 14.1 简介 14.2 异常类 14.3 捕获异常 14.3.1 实现多个catch块 14.3.2 在其他代码中捕获异常 14.3.3 System.Exception属性 14.3.4 异常过滤器 14.3.5 重新抛出异常 14.3.6 没有处理异常时发生的情况 14.4 用户定义的异常类 14.4.1 捕获用户定义的异常 14.4.2 抛出用户定义的异常 14.4.3 定义用户定义的异常类 14.5 调用者信息 14.6 小结 第15章 异步编程 15.1 异步编程的重要性 15.2 异步模式 15.2.1 同步调用 15.2.2 异步模式 15.2.3 基于事件的异步模式 15.2.4 基于任务的异步模式 15.3 异步编程的基础 15.3.1 创建任务 15.3.2 调用异步方法 15.3.3 延续任务 15.3.4 同步上下文 15.3.5 使用多个异步方法 15.3.6 转换异步模式 15.4 错误处理 15.4.1 异步方法的异常处理 15.4.2 多个异步方法的异常处理 15.4.3 使用AggregateException信息 15.5 取消 15.5.1 开始取消任务 15.5.2 使用框架特性取消任务 15.5.3 取消自定义任务 15.6 小结 第16章 反射、元数据和动态编程 16.1 在运行期间检查代码和动态编程 16.2 自定义特性 16.2.1 编写自定义特性 16.2.2 自定义特性示例:WhatsNewAttributes 16.3 反射 16.3.1 System.Type类 16.3.2 TypeView示例 16.3.3 Assembly类 16.3.4 完成WhatsNewAttributes示例 16.4 为反射使用动态语言扩展 16.4.1 创建Calculator库 16.4.2 动态实例化类型 16.4.3 用反射API调用成员 16.4.4 使用动态类型调用成员 16.5 dynamic类型 16.6 DLR 16.7 包含DLR ScriptRuntime 16.8 DynamicObject和ExpandoObject 16.8.1 DynamicObject 16.8.2 ExpandoObject 16.9 小结 第Ⅱ部分 .NET Core与Windows Runtime 第17章 Visual Studio 2015 17.1 使用Visual Studio 2015 17.1.1 Visual Studio的版本 17.1.2 Visual Studio设置 17.2 创建项目 17.2.1 面向多个版本的.NET Framework 17.2.2 选择项目类型 17.3 浏览并编写项目 17.3.1 构建环境:CLI和MSBuild 17.3.2 Solution Explorer 17.3.3 使用代码编辑器 17.3.4 学习和理解其他窗口 17.3.5 排列窗口 17.4 构建项目 17.4.1 构建、编译和生成代码 17.4.2 调试版本和发布版本 17.4.3 选择配置 17.4.4 编辑配置 17.5 调试代码 17.5.1 设置断点 17.5.2 使用数据提示和调试器可视化工具 17.5.3 Live Visual Tree 17.5.4 监视和修改变量 17.5.5 异常 17.5.6 多线程 17.6 重构工具 17.7 体系结构工具 17.7.1 代码地图 17.7.2 层关系图 17.8 分析应用程序 17.8.1 诊断工具 17.8.2 Concurrency Visualizer 17.8.3 代码分析器 17.8.4 Code Metrics 17.9 小结 第18章 .NET编译器平台 18.1 简介 18.2 编译器管道 18.3 语法分析 18.3.1 使用查询节点 18.3.2 遍历节点 18.4 语义分析 18.4.1 编译 18.4.2 语义模型 18.5 代码转换 18.5.1 创建新树 18.5.2 使用语法重写器 18.6 Visual Studio Code重构 18.6.1 VSIX包 18.6.2 代码重构提供程序 18.7 小结 第19章 测试 19.1 概述 19.2 使用MSTest进行单元测试 19.2.1 使用MSTest创建单元测试 19.2.2 运行单元测试 19.2.3 使用MSTest预期异常 19.2.4 测试全部代码路径 19.2.5 外部依赖 19.2.6 Fakes Framework 19.2.7 IntelliTest 19.3 使用xUnit进行单元测试 19.3.1 使用xUnit和.NET Core 19.3.2 创建Fact属性 19.3.3 创建Theory属性 19.3.4 用dotnet工具运行单元测试 19.3.5 使用Mocking库 19.4 UI测试 19.5 Web测试 19.5.1 创建Web测试 19.5.2 运行Web测试 19.5.3 Web负载测试 19.6 小结 第20章 诊断和Application Insights 20.1 诊断概述 20.2 使用EventSource跟踪 20.2.1 EventSource的简单用法 20.2.2 跟踪工具 20.2.3 派生自EventSource 20.2.4 使用注释和EventSource 20.2.5 创建事件清单模式 20.2.6 使用活动ID 20.3 创建自定义侦听器 20.4 使用Application Insights 20.4.1 创建通用Windows应用程序 20.4.2 创建Application Insights资源 20.4.3 配置Windows应用程序 20.4.4 使用收集器 20.4.5 编写自定义事件 20.5 小结 第21章 任务和并行编程 21.1 概述 21.2 Parallel类 21.2.1 使用Parallel.For()方法循环 21.2.2 提前停止Parallel.For 21.2.3 Parallel.For()的初始化 21.2.4 使用Parallel.ForEach()方法循环 21.2.5 通过Parallel.Invoke()方法调用多个方法 21.3 任务 21.3.1 启动任务 21.3.2 Future——任务的结果 21.3.3 连续的任务 21.3.4 任务层次结构 21.3.5 从方法中返回任务 21.3.6 等待任务 21.4 取消架构 21.4.1 Parallel.For()方法的取消 21.4.2 任务的取消 21.5 数据流 21.5.1 使用动作块 21.5.2 源和目标数据块 21.5.3 连接块 21.6 小结 22.13 Timer类 22.14 小结 第22章 任务同步 22.1 概述 22.2 线程问题 22.2.1 争用条件 22.2.2 死锁 22.3 lock语句和线程安全 22.4 Interlocked类 22.5 Monitor类 22.6 SpinLock结构 22.7 WaitHandle基类 22.8 Mutex类 22.9 Semaphore类 22.10 Events类 22.11 Barrier类 22.12 ReaderWriterLockSlim类 第23章 文件和流 23.1 概述 23.2 管理文件系统 23.2.1 检查驱动器信息 23.2.2 使用Path类 23.2.3 创建文件和文件夹 23.2.4 访问和修改文件的属性 23.2.5 创建简单的编辑器 23.2.6 使用File执行读写操作 23.3 枚举文件 23.4 使用流处理文件 23.4.1 使用文件流 23.4.2 读取流 23.4.3 写入流 23.4.4 复制流 23.4.5 随机访问流 23.4.6 使用缓存的流 23.5 使用读取器和写入器 23.5.1 StreamReader类 23.5.2 StreamWriter类 23.5.3 读写二进制文件 23.6 压缩文件 23.6.1 使用压缩流 23.6.2 压缩文件 23.7 观察文件的更改 23.8 使用内存映射的文件 23.8.1 使用访问器创建内存映射文件 23.8.2 使用流创建内存映射文件 23.9 使用管道通信 23.9.1 创建命名管道服务器 23.9.2 创建命名管道客户端 23.9.3 创建匿名管道 23.10 通过Windows运行库使用文件和流 23.10.1 Windows应用程序编辑器 23.10.2 把Windows Runtime类型映射为.NET类型 23.11 小结 24.4 资源的访问控制 24.5 使用证书发布代码 24.6 小结 第24章 安全性 24.1 概述 24.2 验证用户信息 24.2.1 使用Windows标识 24.2.2 Windows Principal 24.2.3 使用声称 24.3 加密数据 24.3.1 创建和验证签名 24.3.2 实现安全的数据交换 24.3.3 使用RSA签名和散列 24.3.4 实现数据的保护 第25章 网络 25.1 网络 25.2 HttpClient类 25.2.1 发出异步的Get请求 25.2.2 抛出异常 25.2.3 传递标题 25.2.4 访问内容 25.2.5 用HttpMessageHandler自定义请求 25.2.6 使用SendAsync创建HttpRequestMessage 25.2.7 使用HttpClient和Windows Runtime 25.3 使用WebListener类 25.4 使用实用工具类 25.4.1 URI 25.4.2 IPAddress 25.4.3 IPHostEntry 25.4.4 Dns 25.5 使用TCP 25.5.1 使用TCP创建HTTP客户程序 25.5.2 创建TCP侦听器 25.5.3 创建TCP客户端 25.5.4 TCP和UDP 25.6 使用UDP 25.6.1 建立UDP接收器 25.6.2 创建UDP发送器 25.6.3 使用多播 25.7 使用套接字 25.7.1 使用套接字创建侦听器 25.7.2 使用NetworkStream和套接字 25.7.3 通过套接字使用读取器和写入器 25.7.4 使用套接字实现接收器 25.8 小结 第26章 Composition 26.1 概述 26.2 Composition库的体系结构 26.2.1 使用特性的Composition 26.2.2 基于约定的部件注册 26.3 定义协定 26.4 导出部件 26.4.1 创建部件 26.4.2 使用部件的部件 26.4.3 导出元数据 26.4.4 使用元数据进行惰性加载 26.5 导入部件 26.5.1 导入连接 26.5.2 部件的惰性加载 26.5.3 读取元数据 26.6 小结 第27章 XML和JSON 27.1 数据格式 27.1.1 XML 27.1.2 .NET支持的XML标准 27.1.3 在框架中使用XML 27.1.4 JSON 27.2 读写流格式的XML 27.2.1 使用XmlReader类读取XML 27.2.2 使用XmlWriter类 27.3 在.NET中使用DOM 27.3.1 使用XmlDocument类读取 27.3.2 遍历层次结构 27.3.3 使用XmlDocument插入节点 27.4 使用XPathNavigator类 27.4.1 XPathDocument类 27.4.2 XPathNavigator类 27.4.3 XPathNodeIterator类 27.4.4 使用XPath导航XML 27.4.5 使用XPath评估 27.4.6 用XPath修改XML 27.5 在XML中序列化对象 27.5.1 序列化简单对象 27.5.2 序列化一个对象树 27.5.3 没有特性的序列化 27.6 LINQ to XML 27.6.1 XDocument对象 27.6.2 XElement对象 27.6.3 XNamespace对象 27.6.4 XComment对象 27.6.5 XAttribute对象 27.6.6 使用LINQ查询XML文档 27.6.7 查询动态的XML文档 27.6.8 转换为对象 27.6.9 转换为XML 27.7 JSON 27.7.1 创建JSON 27.7.2 转换对象 27.7.3 序列化对象 27.8 小结 第28章 本地化 28.1 全球市场 28.2 System.Globalization名称空间 28.2.1 Unicode问题 28.2.2 区域性和区域 28.2.3 使用区域性 28.2.4 排序 28.3 资源 28.3.1 资源读取器和写入器 28.3.2 使用资源文件生成器 28.3.3 通过ResourceManager使用资源文件 28.3.4 System.Resources名称空间 28.4 使用WPF本地化 28.5 使用ASP.NET Core本地化 28.5.1 注册本地化服务 28.5.2 注入本地化服务 28.5.3 区域性提供程序 28.5.4 在ASP.NET Core中使用资源 28.6 本地化通用Windows平台 28.6.1 给UWP使用资源 28.6.2 使用多语言应用程序工具集进行本地化 28.7 创建自定义区域性 28.8 小结 第Ⅲ部分 Windows应用程序 第29章 核心XAML 29.1 XAML的作用 29.2 XAML概述 29.2.1 使用WPF把元素映射到类上 29.2.2 通过通用Windows应用程序把元素映射到类上 29.2.3 使用自定义.NET类 29.2.4 把属性用作特性 29.2.5 把属性用作元素 29.2.6 使用集合和XAML 29.3 依赖属性 29.3.1 创建依赖属性 29.3.2 值变更回调和事件 29.3.3 强制值回调和WPF 29.4 路由事件 29.4.1 用于Windows 应用程序的路由事件 29.4.2 WPF的冒泡和隧道 29.4.3 用WPF实现自定义路由事件 29.5 附加属性 29.6 标记扩展 29.6.1 创建自定义标记扩展 29.6.2 XAML定义的标记扩展 29.7 小结 第30章 样式化XAML应用程序 30.1 样式设置 30.2 形状 30.3 几何图形 30.3.1 使用段的几何图形 30.3.2 使用PML的几何图形 30.3.3 合并的几何图形(WPF) 30.4 变换 30.4.1 缩放 30.4.2 平移 30.4.3 旋转 30.4.4 倾斜 30.4.5 组合变换和复合变换 30.4.6 使用矩阵的变换 30.4.7 变换布局 30.5 画笔 30.5.1 SolidColorBrush 30.5.2 LinearGradientBrush 30.5.3 ImageBrush 30.5.4 WebViewBrush 30.5.5 只用于WPF的画笔 30.6 样式和资源 30.6.1 样式 30.6.2 资源 30.6.3 从代码中访问资源 30.6.4 动态资源(WPF) 30.6.5 资源字典 30.6.6 主题资源(UWP) 30.7 模板 30.7.1 控件模板 30.7.2 数据模板 30.7.3 样式化ListView 30.7.4 ListView项的数据模板 30.7.5 项容器的样式 30.7.6 项面板 30.7.7 列表视图的控件模板 30.8 动画 30.8.1 时间轴 30.8.2 缓动函数 30.8.3 关键帧动画 30.8.4 过渡(UWP应用程序) 30.9 可视化状态管理器 30.9.1 用控件模板预定义状态 30.9.2 定义自定义状态 30.9.3 设置自定义的状态 30.10 小结 第31章 模式和XAML应用程序 31.1 使用 MVVM的原因 31.2 定义 MVVM模式 31.3 共享代码 31.3.1 使用API 协定和通用Windows平台 31.3.2 使用共享项目 31.3.3 使用移动库 31.4 示例解决方案 31.5 模型 31.5.1 实现变更通知 31.5.2 使用Repository模式 31.6 视图模型 31.6.1 命令 31.6.2 服务和依赖注入 31.7 视图 31.7.1 注入视图模型 31.7.2 用于WPF的数据绑定 31.7.3 用于UWP的已编译数据绑定 31.8 使用事件传递消息 31.9 IoC容器 31.10 使用框架 31.11 小结 第32章 Windows应用程序:用户界面 32.1 概述 32.2 导航 32.2.1 导航回最初的页面 32.2.2 重写Page类的导航 32.2.3 在页面之间导航 32.2.4 后退按钮 32.2.5 Hub 32.2.6 Pivot 32.2.7 应用程序shell 32.2.8 汉堡按钮 32.2.9 分隔视图 32.2.10 给SplitView窗格添加内容 32.3 布局 32.3.1 VariableSizedWrapGrid 32.3.2 RelativePanel 32.3.3 自适应触发器 32.3.4 XAML视图 32.3.5 延迟加载 32.4 命令 32.5 已编译的数据绑定 32.5.1 已编译绑定的生命周期 32.5.2 给已编译的数据模板使用资源 32.6 控件 32.6.1 TextBox 控件 32.6.2 AutoSuggest 32.6.3 Inking 32.6.4 读写笔触的选择器 32.7 小结 第33章 高级Windows应用程序 33.1 概述 33.2 应用程序的生命周期 33.3 应用程序的执行状态 33.4 导航状态 33.4.1 暂停应用程序 33.4.2 激活暂停的应用程序 33.4.3 测试暂停 33.4.4 页面状态 33.5 共享数据 33.5.1 共享源 33.5.2 共享目标 33.6 应用程序服务 33.6.1 创建模型 33.6.2 为应用程序服务连接创建后台任务 33.6.3 注册应用程序服务 33.6.4 调用应用程序服务 33.7 相机 33.8 Geolocation和MapControl 33.8.1 使用MapControl 33.8.2 使用Geolocator定位信息 33.8.3 街景地图 33.8.4 继续请求位置信息 33.9 传感器 33.9.1 光线 33.9.2 罗盘 33.9.3 加速计 33.9.4 倾斜计 33.9.5 陀螺仪 33.9.6 方向 33.9.7 Rolling Marble示例 33.10 小结 第34章 带WPF的Windows桌面应用程序 34.1 概述 34.2 控件 34.2.1 简单控件 34.2.2 内容控件 34.2.3 带标题的内容控件 34.2.4 项控件 34.2.5 带标题的项控件 34.2.6 修饰 34.3 布局 34.3.1 StackPanel 34.3.2 WrapPanel 34.3.3 Canvas 34.3.4 DockPanel 34.3.5 Grid 34.4 触发器 34.4.1 属性触发器 34.4.2 多触发器 34.4.3 数据触发器 34.5 菜单和功能区控件 34.5.1 菜单控件 34.5.2 功能区控件 34.6 Commanding 34.6.1 定义命令 34.6.2 定义命令源 34.6.3 命令绑定 34.7 数据绑定 34.7.1 BooksDemo应用程序内容 34.7.2 用XAML绑定 34.7.3 简单对象的绑定 34.7.4 更改通知 34.7.5 对象数据提供程序 34.7.6 列表绑定 34.7.7 主从绑定 34.7.8 多绑定 34.7.9 优先绑定 34.7.10 值的转换 34.7.11 动态添加列表项 34.7.12 动态添加选项卡中的项 34.7.13 数据模板选择器 34.7.14 绑定到XML上 34.7.15 绑定的验证和错误处理 34.8 TreeView 34.9 DataGrid 34.9.1 自定义列 34.9.2 行的细节 34.9.3 用DataGrid进行分组 34.9.4 实时成型 34.10 小结 第35章 用WPF创建文档 35.1 简介 35.2 文本元素 35.2.1 字体 35.2.2 TextEffect 35.2.3 内联 35.2.4 块 35.2.5 列表 35.2.6 表 35.2.7 块的锚定 35.3 流文档 35.4 固定文档 35.5 XPS文档 35.6 打印 35.6.1 用PrintDialog打印 35.6.2 打印可见元素 35.7 小结 第36章 部署Windows应用程序 36.1 部署是应用程序生命周期的一部分 36.2 部署的规划 36.2.1 部署选项 36.2.2 部署要求 36.2.3 部署.NET运行库 36.3 传统的部署选项 36.3.1 xcopy部署 36.3.2 Windows Installer 36.4 ClickOnce 36.4.1 ClickOnce操作 36.4.2 发布ClickOnce应用程序 36.4.3 ClickOnce设置 36.4.4 ClickOnce文件的应用程序缓存 36.4.5 应用程序的安装 36.4.6 ClickOnce部署API 36.5 UWP应用程序 36.5.1 创建应用程序包 36.5.2 Windows App Certification Kit 36.5.3 旁加载 36.6 小结 第Ⅳ部分 Web应用程序和服务 第37章 ADO.NET 37.1 ADO.NET概述 37.1.1 示例数据库 37.1.2 NuGet 包和名称空间 37.2 使用数据库连接 37.2.1 管理连接字符串 37.2.2 连接池 37.2.3 连接信息 37.3 命令 37.3.1 ExecuteNonQuery()方法 37.3.2 ExecuteScalar()方法 37.3.3 ExecuteReader()方法 37.3.4 调用存储过程 37.4 异步数据访问 37.5 事务 37.6 小结 第38章 Entity Framework Core 38.1 Entity Framework简史 38.2 Entity Framework简介 38.2.1 创建模型 38.2.2 创建上下文 38.2.3 写入数据库 38.2.4 读取数据库 38.2.5 更新记录 38.2.6 删除记录 38.3 使用依赖注入 38.4 创建模型 38.4.1 创建关系 38.4.2 用.NET CLI迁移 38.4.3 用MSBuild迁移 38.4.4 创建数据库 38.4.5 数据注释 38.4.6 流利API 38.4.7 在数据库中搭建模型 38.5 使用对象状态 38.5.1 用关系添加对象 38.5.2 对象的跟踪 38.5.3 更新对象 38.5.4 更新未跟踪的对象 38.6 冲突的处理 38.6.1 最后一个更改获胜 38.6.2 第一个更改获胜 38.7 使用事务 38.7.1 使用隐式的事务 38.7.2 创建显式的事务 38.8 小结 第39章 Windows服务 39.1 Windows服务 39.2 Windows服务的体系结构 39.2.1 服务程序 39.2.2 服务控制程序 39.2.3 服务配置程序 39.2.4 Windows服务的类 39.3 创建Windows服务程序 39.3.1 创建服务的核心功能 39.3.2 QuoteClient示例 39.3.3 Windows服务程序 39.3.4 线程化和服务 39.3.5 服务的安装 39.3.6 安装程序 39.4 Windows服务的监控和控制 39.4.1 MMC管理单元 39.4.2 net.exe实用程序 39.4.3 sc.exe实用程序 39.4.4 Visual Studio Server Explorer 39.4.5 编写自定义ServiceController类 39.5 故障排除和事件日志 39.6 小结 第40章 ASP.NET Core 40.1 ASP.NET Core 1.0 40.2 Web技术 40.2.1 HTML 40.2.2 CSS 40.2.3 JavaScript和TypeScript 40.2.4 脚本库 40.3 ASP.NET Web项目 40.4 启动 40.5 添加静态内容 40.5.1 使用JavaScript包管理器:npm 40.5.2 用gulp构建 40.5.3 通过Bower使用客户端库 40.6 请求和响应 40.6.1 请求标题 40.6.2 查询字符串 40.6.3 编码 40.6.4 表单数据 40.6.5 cookie 40.6.6 发送JSON 40.7 依赖注入 40.7.1 定义服务 40.7.2 注册服务 40.7.3 注入服务 40.7.4 调用控制器 40.8 使用映射的路由 40.9 使用中间件 40.10 会话状态 40.11 配置ASP.NET 40.11.1 读取配置 40.11.2 基于环境的不同配置 40.11.3 用户密钥 40.12 小结 第41章 ASP.NET MVC 41.1 为ASP.NET MVC 6建立服务 41.2 定义路由 41.2.1 添加路由 41.2.2 使用路由约束 41.3 创建控制器 41.3.1 理解动作方法 41.3.2 使用参数 41.3.3 返回数据 41.3.4 使用Controller基类和POCO控制器 41.4 创建视图 41.4.1 向视图传递数据 41.4.2 Razor语法 41.4.3 创建强类型视图 41.4.4 定义布局 41.4.5 用部分视图定义内容 41.4.6 使用视图组件 41.4.7 在视图中使用依赖注入 41.4.8 为多个视图导入名称空间 41.5 从客户端提交数据 41.5.1 模型绑定器 41.5.2 注解和验证 41.6 使用HTML Helper 41.6.1 简单的Helper 41.6.2 使用模型数据 41.6.3 定义HTML特性 41.6.4 创建列表 41.6.5 强类型化的Helper 41.6.6 编辑器扩展 41.6.7 实现模板 41.7 标记辅助程序 41.7.1 激活标记辅助程序 41.7.2 使用锚定标记辅助程序 41.7.3 使用标签标记辅助程序 41.7.4 使用输入标记辅助程序 41.7.5 使用表单进行验证 41.7.6 创建自定义标记辅助程序 41.8 实现动作过滤器 41.9 创建数据驱动的应用程序 41.9.1 定义模型 41.9.2 创建数据库 41.9.3 创建服务 41.9.4 创建控制器 41.9.5 创建视图 41.10 实现身份验证和授权 41.10.1 存储和检索用户信息 41.10.2 启动身份系统 41.10.3 执行用户注册 41.10.4 设置用户登录 41.10.5 验证用户的身份 41.11 小结 第42章 ASP.NET Web API 42.1 概述 42.2 创建服务 42.2.1 定义模型 42.2.2 创建存储库 42.2.3 创建控制器 42.2.4 修改响应格式 42.2.5 REST 结果和状态码 42.3 创建异步服务 42.4 创建.NET客户端 42.4.1 发送GET请求 42.4.2 从服务中接收XML 42.4.3 发送POST请求 42.4.4 发送PUT请求 42.4.5 发送DELETE请求 42.5 写入数据库 42.5.1 定义数据库 42.5.2 创建存储库 42.6 创建元数据 42.7 创建和使用OData服务 42.7.1 创建数据模型 42.7.2 创建服务 42.7.3 OData查询 42.8 小结 第43章 WebHooks和SignaIR 43.1 概述 43.2 SignalR的体系结构 43.3 使用SignalR的简单聊天程序 43.3.1 创建集线器 43.3.2 用HTML和JavaScript创建客户端 43.3.3 创建SignalR .NET客户端 43.4 分组连接 43.4.1 用分组扩展集线器 43.4.2 用分组扩展WPF客户端 43.5 WebHooks的体系结构 43.6 创建Dropbox和GitHub接收器 43.6.1 创建Web应用程序 43.6.2 为Dropbox和GitHub配置WebHooks 43.6.3 实现处理程序 43.6.4 用Dropbox和GitHub配置应用程序 43.6.5 运行应用程序 43.7 小结 第44章 WCF 44.1 WCF概述 44.1.1 SOAP 44.1.2 WSDL 44.2 创建简单的服务和客户端 44.2.1 定义服务和数据协定 44.2.2 数据访问 44.2.3 服务的实现 44.2.4 WCF服务宿主和WCF测试客户端 44.2.5 自定义服务宿主 44.2.6 WCF客户端 44.2.7 诊断 44.2.8 与客户端共享协定程序集 44.3 协定 44.3.1 数据协定 44.3.2 版本问题 44.3.3 服务协定和操作协定 44.3.4 消息协定 44.3.5 错误协定 44.4 服务的行为 44.5 绑定 44.5.1 标准绑定 44.5.2 标准绑定的功能 44.5.3 WebSocket 44.6 宿主 44.6.1 自定义宿主 44.6.2 WAS宿主 44.6.3 预配置的宿主类 44.7 客户端 44.7.1 使用元数据 44.7.2 共享类型 44.8 双工通信 44.8.1 双工通信的协定 44.8.2 用于双工通信的服务 44.8.3 用于双工通信的客户应用程序 44.9 路由 44.9.1 路由示例应用程序 44.9.2 路由接口 44.9.3 WCF路由服务 44.9.4 为故障切换使用路由器 44.9.5 改变协定的桥梁 44.9.6 过滤器的类型 44.10 小结 第45章 部署网站和服务 45.1 部署Web应用程序 45.2 部署前的准备 45.2.1 创建ASP.NET 4.6 Web应用程序 45.2.2 创建ASP.NET Core 1.0 Web应用程序 45.2.3 ASP.NET 4.6的配置文件 45.2.4 ASP.NET Core 1.0的配置文件 45.3 部署到IIS 45.3.1 使用IIS Manager准备Web应用程序 45.3.2 Web部署到IIS 45.4 部署到Microsoft Azure 45.4.1 创建SQL数据库 45.4.2 用SQL Azure测试本地网站 45.4.3 部署到Microsoft Azure Web应用 45.5 部署到Docker 45.6 小结
C#高级编程(第四版)中文版/C#高级编程(第三版)中文版电子书下载地址
C#<em>高级编程</em>(第四版)中文版电子书下载地址下载地址如果上面的点击不可用,那就直接在IE中用下面的地址:http://download.csdn.net/user/cnfangbo/All/7C#<em>高级编程</em>(第四版)part1中文版------------------C#<em>高级编程</em>(第四版)part6中文版注:把下载文件的文件名改成一个连续的文件名才能正常解压非常感谢提供网友提供,希望下载的朋友给顶一下
C#高级编程(第10版)C# 6 .NET Core 1.0 中文完整pdf扫描版[229MB] 附随书源码 百度云盘
C#<em>高级编程</em>(第10版)C# 6 .NET Core 1.0 中文完整pdf扫描版[229MB] 附随书源码 百度云盘
C#高效编程.mobi
C#高效编程.mobi
c#高级编程_第10版 云盘地址_无积分
<em>c#</em><em>高级编程</em>_第10版 云盘地址_无积分!最低1积分,评论一下即可回收1分。
C#高级编程第十版百度云下载链接
这个是C#<em>高级编程</em>,电子版高清书籍,附带有供学习的源码,因为文件太大所以分享的是一个下载链接
c#高级编程(第10版 中文版) 非扫描高清 目录全 可复制文字
C#是微软公司在2000年6月发布的一种新的编程语言,由Delphi语言的设计者 Hejlsberg带领微软公司的开发团队开发,是一种安全的、稳定的、简单的、优雅的、由C 和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时,去掉了它们 的一些复杂特性(例如没有宏以及不允许多重继承)。C#综合了Visual Basic简单的可视 化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和 便捷的面向组件编程支持,成为.NET开发的首选语言。
最新版Professional C#7 and net core2.0
最新版的professional C#7 and net core2.0, pdf格式,配套VS2017
C#高级编程(第10版)C# 6 .NET Core 1.0 中文完整pdf扫描版[229MB] 附随书源码
C#<em>高级编程</em>(第10版)C# 6 .NET Core 1.0 中文完整pdf扫描版[229MB] 附随书源码
C#高级编程 第10版PDF
C#<em>高级编程</em> C#6&.NET CORE 1.0 第10版 【作 者】(美)Christian Nagel著;李铭译 【丛书名】.NET开发经典名著 【形态项】 1442 【出版项】 北京:清华大学出版社 , 2017.03 【ISBN号】978-7-302-46196-8 【中图法分类号】TP312;C 【原书定价】168.00 【主题词】计算机网络-程序设计-C语言-程序设计 【参考文献格式】 (美)Christian Nagel著;李铭译. C#<em>高级编程</em> C#6&.NET CORE 1.0 第10版. 北京:清华大学出版社, 2017.03. 内容提要: 提升C#和.NET技能的必备参考资源VisualStudio2015、ASP.NETCore1.0和UniversalWindowsPlatform的推出,为开发人员提供了使用C#创建应用程序的新方式。作为经典C#畅销书,本书涵盖了充分利用升级功能,积极简化工作流程所需的全部信息。本书循序渐进地讲解了VisualStudio2015、.NETCore1.0、ASP.NETMVC、UniversalWindowsPlatform、WPF的变化。每一章都提供了清晰的解释、下载的代码, 并从专家的角度提供了有价值的视野。有本书在手,读者可以快速获得的特性和功能。 扫描完整版 大小 229m带书签,文件太大使用百度网盘下载
c#高级编程第10版(中文版)
Visual Studio 2015、ASP.NET Core 1.0和Universal Windows Platform的推出,为开发人员提供了使用C#创建应用程序的新方式。作为经典C#畅销书 ,C#<em>高级编程</em>(第10版)涵盖了充分利用升级功能,积极简化工作流程所需的全部信息。本书循序渐进地讲解了Visual Studio 2015、.NET Core 1.0、ASP.NET MVC、Universal Windows Platform、WPF的最新变化。每一章都提供了清晰的解释、下载的代码,并从专家的角度提供了有价值的视野。有本书在手,读者可以快速获得最新的特性和功能。
C++高级编程 第3版 PDF电子书下载 带书签目录
C++<em>高级编程</em> 第3版 PDF电子书下载 带书签目录 完整版---
Professional C# 7 and NET Core 2.0-PDF
Professional C# 7 and .NET Core 2.0 provides experienced programmers with the information they need to work effectively with the world’s leading programming language. The latest C# update added many new features that help you get more done in less time, and this book is your ideal guide for getting up to speed quickly. C# 7 focuses on data consumption, code simplification, and performance, with new support for local functions, tuple types, record types, pattern matching, non-nullable reference types, immutable types, and better support for variables. Improvements to Visual Studio will bring significant changes to the way C# developers interact with the space, bringing .NET to non-Microsoft platforms and incorporating tools from other platforms like Docker, Gulp, and NPM. Guided by a leading .NET expert and steeped in real-world practicality, this guide is designed to get you up to date and back to work. With Microsoft speeding up its release cadence while offering more significant improvement with each update, it has never been more important to get a handle on new tools and features quickly. This book is designed to do just that, and more—everything you need to know about C# is right here, in the single-volume resource on every developer’s shelf. Tour the many new and enhanced features packed into C# 7 and .NET Core 2.0 Learn how the latest Visual Studio update makes developers’ jobs easier Streamline your workflow with a new focus on code simplification and performance enhancement Delve into improvements made for localization, networking, diagnostics, deployments, and more
C#高级编程----反射的小结
C#反射的应用小结 1.何谓反射? 反射就是在运行的时候发现对象的相关信息.根据这些信息可以动态的执行对象的方法以及获取对象的属性所存储的值.使用.NET编写的代码时自动反射的,或者说是自我描述的.之所以可以反射,是通过编译后产生的元数据来做到的.因此,你可以在你的程序中使用反射来查找托管代码中的类型(包括类的名称,方法和参数)和与其相关的信息这其中包括执行被发现的代码.你也可以在程序运行的时
C++高级编程pdf
链接:https://pan.baidu.com/s/1fiv_A2WO774_oktxiYhXmw 密码:nioq 本书为完整版,以下为内容截图:  
0分 C#高级编程 第10版(中文高清版)百度云盘 含源码
本书首先探讨了C#的基础知识,包括基本语法、数据类型和面向对象的特性。接着阐述了如何把该语言应用于各种使用相关技术的应用程序,倒如数据库访问和高级绘图技术。这种方式有助于对C#语言的各个方面进行深入细致的理解,以专业人员的方式开始编程
C#高级编程(第9版)中文高清完整pdf版.zip下载
C#<em>高级编程</em>(第9版)中文版.zip
c#高级编程(第10版) C# 6 & .NET Core 1.0(非扫描,带完整目录)
  Visual Studio 2015、ASP.NET Core 1.0和Universal Windows Platform的推出,为开发人员提供了使用C#创建应用程序的新方式。作为经典C#畅销书,《C#<em>高级编程</em>(第10版 C#6&.NET Core1.0)/.NET开发经典名著》涵盖了充分利用升级功能,积极简化工作流程所需的全部信息。   《C#<em>高级编程</em>(第10版 C#6&.NET Core1.0)/.NET开发经典名著》循序渐进地讲解了Visual Studio 2015、NET Core 1.0、ASP.NET MVC、Universal Windows Platform、WPF的新变化。每一章都提供了清晰的解释、下载的代码,并从专家的角度提供了有价值的视野。   有《C#<em>高级编程</em>(第10版 C#6&.NET Core1.0)/.NET开发经典名著》在手,读者可以快速获得新的特性和功能。
C#高级编程 第七版 中文完整pdf版 93M (随书源代码+第6版)
《C#<em>高级编程</em>(第7版)》的顶级专家作者团队首先复习了C#的基础知识,之后详细讲解了该语言和架构中的所有新增功能,使读者能立即开始编写Windows应用程序和ASP.NET Web应用程序。   本书几乎涵盖C#语言的所有功能,对于C#初学者和有经验的程序员是值得大力推荐的书籍。实践证明,本书是关于C# 和 Visual Studio的一本全面而且权威的参考书。   《C#<em>高级编程</em>(第7版)》的顶级专家作者团队首先复习了C#的基础知识,之后详细讲解了该语言和架构中的所有新增功能,使读者能立即开始编写Windows应用程序和ASP.NET Web应用程序。 C#经典名著!Wrox畅销书!累计销售已达8万册!   荣获“2005年最权威的十大IT图书”、“2005年度引进版科技类优秀图书”、“2006年最受读者喜爱的十大技术开发类图书”、“2007年最畅销的C#零售图书”、“2008年度优秀IT技术图书”、“2009年度全行业优秀畅销品种”等奖项。 本书是Wrox畅销书,C#经典名著!2009年度全行业优秀畅销书。自第一版出版以来,都是国内读者的普遍好评,累计销量近十万册。     本书主要内容   ◆ 回顾.NET体系结构、对象、泛型、继承、数组、运算符、类型强制转换、委托、事件、Lambda表达式等   ◆ 详细论述C#中的动态对象、命名参数和可选参数、COM专用的交互操作功能、安全类型变体   ◆ 阐述.NET 4的新增功能、WF 4、ADO.NET 数据服务、MEF、并行任务库和PLINQ   ◆ 深入探讨LINQ、WCF、WPF、流文档和固定文档及Silverlight等功能强大的技术   ◆ 回顾ASP.NET编程,介绍ASP.NET MVC和ASP.NET 动态数据等新功能   ◆ 讨论使用WCF、MSMQ、点对点和联合进行通信 第1部分 <em>c#</em>语言 第1章 .net体系结构 1.1 <em>c#</em>与.net的关系 1.2 公共语言运行库 1.2.1 平台无关性 1.2.2 提高性能 1.2.3 语言的互操作性 1.3 中间语言 1.3.1 面向对象和接口的支持 1.3.2 不同的值类型和引用类型 1.3.3 强数据类型化
C++ 高级编程(第3版)
C++ <em>高级编程</em>(第3版)。电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍。
c#高级编程(第10版)【原版非扫描】【目录完整】
<em>c#</em><em>高级编程</em>(第10版)【原版非扫描】【目录完整】 书名页 版权页 译者序 作者简介 技术编辑简介 致谢 前言 目录 第Ⅰ部分 C#语言 第1章 .NET应用程序体系结构 1.1 选择技术 1.2 回顾.NET历史 1.2.1 C#1.0——一种新语言 1.2.2 带有泛型的C# 2和.NET 2 1.2.3 .NET 3.0 —— Windows Presentation Foundation 1.2.4 C# 3和.NET 3.5——LINQ 1.2.5 C# 4和.NET 4.0—— dynamic和TPL 1.2.6 C# 5和异步编程 1.2.7 C# 6和.NET Core 1.2.8 选择技术,继续前进 1.3 .NET 2015 1.3.1 .NET Framework 4.6 1.3.2 .NET Core 1.0 1.3.3 程序集 1.3.4 NuGet包 1.3.5 公共语言运行库 1.3.6 .NET Native 1.3.7 Windows 运行库 1.4 Hello, World 1.5 用.NET 4.6编译 1.6 用.NET Core CLI编译 1.6.1 设置环境 1.6.2 构建应用程序 1.6.3 打包和发布应用程序 1.7 应用程序类型和技术 1.7.1 数据访问 1.7.2 Windows桌面应用程序 1.7.3 UWP 1.7.4 SOAP服务和WCF 1.7.5 Web服务和ASP.NET Web API 1.7.6 WebHooks和SignalR 1.7.7 Windows服务 1.7.8 Web应用程序 1.7.9 Microsoft Azure 1.8 开发工具 1.8.1 Visual Studio Community 1.8.2 Visual Studio Professional with MSDN 1.8.3 Visual Studio Enterprise with MSDN 1.8.4 Visual Studio Code 1.9 小结 2.5 程序流控制 2.5.1 条件语句 2.5.2 循环 2.5.3 跳转语句 2.6 枚举 2.7 名称空间 2.7.1 using语句 2.7.2 名称空间的别名 2.8 Main()方法 2.9 使用注释 2.9.1 源文件中的内部注释 2.9.2 XML文档 2.10 C#预处理器指令 2.10.1 #define和#undef 2.10.2 #if、#elif、#else和#endif 2.10.3 #warning和 # error 2.10.4 #region和#endregion 2.10.5 #line 2.10.6 #pragma 2.11 C#编程准则 2.11.1 关于标识符的规则 2.11.2 用法约定 2.12 小结 第2章 核心C# 2.1 C#基础 2.2 用Visual Studio创建Hello, World! 2.2.1 创建解决方案 2.2.2 创建新项目 2.2.3 编译和运行程序 2.2.4 代码的详细介绍 2.3 变量 2.3.1 初始化变量 2.3.2 类型推断 2.3.3 变量的作用域 2.3.4 常量 2.4 预定义数据类型 2.4.1 值类型和引用类型 2.4.2 .NET类型 2.4.3 预定义的值类型 2.4.4 预定义的引用类型 第3章 对象和类型 3.1 创建及使用类 3.2 类和结构 3.3 类 3.3.1 字段 3.3.2 属性 3.3.3 方法 3.3.4 构造函数 3.3.5 只读成员 3.3.6 只读字段 3.4 匿名类型 3.5 结构 3.5.1 结构是值类型 3.5.2 结构和继承 3.5.3 结构的构造函数 3.6 按值和按引用传递参数 3.6.1 ref参数 3.6.2 out参数 3.7 可空类型 3.8 枚举 3.9 部分类 3.10 扩展方法 3.11 Object类 3.12 小结 第4章 继承 4.1 继承 4.2 继承的类型 4.2.1 多重继承 4.2.2 结构和类 4.3 实现继承 4.3.1 虚方法 4.3.2 多态性 4.3.3 隐藏方法 4.3.4 调用方法的基类版本 4.3.5 抽象类和抽象方法 4.3.6 密封类和密封方法 4.3.7 派生类的构造函数 4.4 修饰符 4.4.1 访问修饰符 4.4.2 其他修饰符 4.5 接口 4.5.1 定义和实现接口 4.5.2 派生的接口 4.6 is和as运算符 4.7 小结 第5章 托管和非托管的资源 5.1 资源 5.2 后台内存管理 5.2.1 值数据类型 5.2.2 引用数据类型 5.2.3 垃圾回收 5.3 强引用和弱引用 5.4 处理非托管的资源 5.4.1 析构函数或终结器 5.4.2 IDisposable接口 5.4.3 using语句 5.4.4 实现IDisposable接口和析构函数 5.4.5 IDisposable和终结器的规则 5.5 不安全的代码 5.5.1 用指针直接访问内存 5.5.2 指针示例:PointerPlayground 5.5.3 使用指针优化性能 5.6 平台调用 5.7 小结 第6章 泛型 6.1 泛型概述 6.1.1 性能 6.1.2 类型安全 6.1.3 二进制代码的重用 6.1.4 代码的扩展 6.1.5 命名约定 6.2 创建泛型类 6.3 泛型类的功能 6.3.1 默认值 6.3.2 约束 6.3.3 继承 6.3.4 静态成员 6.4 泛型接口 6.4.1 协变和抗变 6.4.2 泛型接口的协变 6.4.3 泛型接口的抗变 6.5 泛型结构 6.6 泛型方法 6.6.1 泛型方法示例 6.6.2 带约束的泛型方法 6.6.3 带委托的泛型方法 6.6.4 泛型方法规范 6.7 小结 第7章 数组和元组 7.1 同一类型和不同类型的多个对象 7.2 简单数组 7.2.1 数组的声明 7.2.2 数组的初始化 7.2.3 访问数组元素 7.2.4 使用引用类型 7.3 多维数组 7.4 锯齿数组 7.5 Array类 7.5.1 创建数组 7.5.2 复制数组 7.5.3 排序 7.6 数组作为参数 7.6.1 数组协变 7.6.2 ArraySegment 7.7 枚举 7.7.1 IEnumerator接口 7.7.2 foreach语句 7.7.3 yield语句 7.8 元组 7.9 结构比较 7.10 小结 第8章 运算符和类型强制转换 8.1 运算符和类型转换 8.2 运算符 8.2.1 运算符的简化操作 8.2.2 运算符的优先级和关联性 8.3 类型的安全性 8.3.1 类型转换 8.3.2 装箱和拆箱 8.4 比较对象的相等性 8.4.1 比较引用类型的相等性 8.4.2 比较值类型的相等性 8.5 运算符重载 8.5.1 运算符的工作方式 8.5.2 运算符重载的示例:Vector结构 8.5.3 比较运算符的重载 8.5.4 可以重载的运算符 8.6 实现自定义的索引运算符 8.7 实现用户定义的类型强制转换 8.7.1 实现用户定义的类型强制转换 8.7.2 多重类型强制转换 8.8 小结 第9章 委托、Iambda表达式和事件 9.1 引用方法 9.2 委托 9.2.1 声明委托 9.2.2 使用委托 9.2.3 简单的委托示例 9.2.4 Action和Func委托 9.2.5 BubbleSorter示例 9.2.6 多播委托 9.2.7 匿名方法 9.3 lambda表达式 9.3.1 参数 9.3.2 多行代码 9.3.3 闭包 9.4 事件 9.4.1 事件发布程序 9.4.2 事件侦听器 9.4.3 弱事件 9.5 小结 第10章 字符串和正则表达式 10.1 System.String类 10.1.1 构建字符串 10.1.2 StringBuilder成员 10.2 字符串格式 10.2.1 字符串插值 10.2.2 日期时间和数字的格式 10.2.3 自定义字符串格式 10.3 正则表达式 10.3.1 正则表达式概述 10.3.2 RegularExpressionsPlayaround示例 10.3.3 显示结果 10.3.4 匹配、组和捕获 10.4 小结 第11章 集合 11.1 概述 11.2 集合接口和类型 11.3 列表 11.3.1 创建列表 11.3.2 只读集合 11.4 队列 11.5 栈 11.6 链表 11.7 有序列表 11.8 字典 11.8.1 字典初始化器 11.8.2 键的类型 11.8.3 字典示例 11.8.4 Lookup类 11.8.5 有序字典 11.9 集 11.10 性能 11.11 小结 第12章 特殊的集合 12.1 概述 12.2 处理位 12.2.1 BitArray类 12.2.2 BitVector32结构 12.3 可观察的集合 12.4 不变的集合 12.4.1 使用构建器和不变的集合 12.4.2 不变集合类型和接口 12.4.3 使用LINQ和不变的数组 12.5 并发集合 12.5.1 创建管道 12.5.2 使用BlockingCollection 12.5.3 使用ConcurrentDictionary 12.5.4 完成管道 12.6 小结 第13章 LINQ 13.1 LINQ概述 13.1.1 列表和实体 13.1.2 LINQ查询 13.1.3 扩展方法 13.1.4 推迟查询的执行 13.2 标准的查询操作符 13.2.1 筛选 13.2.2 用索引筛选 13.2.3 类型筛选 13.2.4 复合的from子句 13.2.5 排序 13.2.6 分组 13.2.7 LINQ 查询中的变量 13.2.8 对嵌套的对象分组 13.2.9 内连接 13.2.10 左外连接 13.2.11 组连接 13.2.12 集合操作 13.2.13 合并 13.2.14 分区 13.2.15 聚合操作符 13.2.16 转换操作符 13.2.17 生成操作符 13.3 并行LINQ 13.3.1 并行查询 13.3.2 分区器 13.3.3 取消 13.4 表达式树 13.5 LINQ提供程序 13.6 小结 第14章 错误和异常 14.1 简介 14.2 异常类 14.3 捕获异常 14.3.1 实现多个catch块 14.3.2 在其他代码中捕获异常 14.3.3 System.Exception属性 14.3.4 异常过滤器 14.3.5 重新抛出异常 14.3.6 没有处理异常时发生的情况 14.4 用户定义的异常类 14.4.1 捕获用户定义的异常 14.4.2 抛出用户定义的异常 14.4.3 定义用户定义的异常类 14.5 调用者信息 14.6 小结 第15章 异步编程 15.1 异步编程的重要性 15.2 异步模式 15.2.1 同步调用 15.2.2 异步模式 15.2.3 基于事件的异步模式 15.2.4 基于任务的异步模式 15.3 异步编程的基础 15.3.1 创建任务 15.3.2 调用异步方法 15.3.3 延续任务 15.3.4 同步上下文 15.3.5 使用多个异步方法 15.3.6 转换异步模式 15.4 错误处理 15.4.1 异步方法的异常处理 15.4.2 多个异步方法的异常处理 15.4.3 使用AggregateException信息 15.5 取消 15.5.1 开始取消任务 15.5.2 使用框架特性取消任务 15.5.3 取消自定义任务 15.6 小结 第16章 反射、元数据和动态编程 16.1 在运行期间检查代码和动态编程 16.2 自定义特性 16.2.1 编写自定义特性 16.2.2 自定义特性示例:WhatsNewAttributes 16.3 反射 16.3.1 System.Type类 16.3.2 TypeView示例 16.3.3 Assembly类 16.3.4 完成WhatsNewAttributes示例 16.4 为反射使用动态语言扩展 16.4.1 创建Calculator库 16.4.2 动态实例化类型 16.4.3 用反射API调用成员 16.4.4 使用动态类型调用成员 16.5 dynamic类型 16.6 DLR 16.7 包含DLR ScriptRuntime 16.8 DynamicObject和ExpandoObject 16.8.1 DynamicObject 16.8.2 ExpandoObject 16.9 小结 第Ⅱ部分 .NET Core与Windows Runtime 第17章 Visual Studio 2015 17.1 使用Visual Studio 2015 17.1.1 Visual Studio的版本 17.1.2 Visual Studio设置 17.2 创建项目 17.2.1 面向多个版本的.NET Framework 17.2.2 选择项目类型 17.3 浏览并编写项目 17.3.1 构建环境:CLI和MSBuild 17.3.2 Solution Explorer 17.3.3 使用代码编辑器 17.3.4 学习和理解其他窗口 17.3.5 排列窗口 17.4 构建项目 17.4.1 构建、编译和生成代码 17.4.2 调试版本和发布版本 17.4.3 选择配置 17.4.4 编辑配置 17.5 调试代码 17.5.1 设置断点 17.5.2 使用数据提示和调试器可视化工具 17.5.3 Live Visual Tree 17.5.4 监视和修改变量 17.5.5 异常 17.5.6 多线程 17.6 重构工具 17.7 体系结构工具 17.7.1 代码地图 17.7.2 层关系图 17.8 分析应用程序 17.8.1 诊断工具 17.8.2 Concurrency Visualizer 17.8.3 代码分析器 17.8.4 Code Metrics 17.9 小结 第18章 .NET编译器平台 18.1 简介 18.2 编译器管道 18.3 语法分析 18.3.1 使用查询节点 18.3.2 遍历节点 18.4 语义分析 18.4.1 编译 18.4.2 语义模型 18.5 代码转换 18.5.1 创建新树 18.5.2 使用语法重写器 18.6 Visual Studio Code重构 18.6.1 VSIX包 18.6.2 代码重构提供程序 18.7 小结 第19章 测试 19.1 概述 19.2 使用MSTest进行单元测试 19.2.1 使用MSTest创建单元测试 19.2.2 运行单元测试 19.2.3 使用MSTest预期异常 19.2.4 测试全部代码路径 19.2.5 外部依赖 19.2.6 Fakes Framework 19.2.7 IntelliTest 19.3 使用xUnit进行单元测试 19.3.1 使用xUnit和.NET Core 19.3.2 创建Fact属性 19.3.3 创建Theory属性 19.3.4 用dotnet工具运行单元测试 19.3.5 使用Mocking库 19.4 UI测试 19.5 Web测试 19.5.1 创建Web测试 19.5.2 运行Web测试 19.5.3 Web负载测试 19.6 小结 第20章 诊断和Application Insights 20.1 诊断概述 20.2 使用EventSource跟踪 20.2.1 EventSource的简单用法 20.2.2 跟踪工具 20.2.3 派生自EventSource 20.2.4 使用注释和EventSource 20.2.5 创建事件清单模式 20.2.6 使用活动ID 20.3 创建自定义侦听器 20.4 使用Application Insights 20.4.1 创建通用Windows应用程序 20.4.2 创建Application Insights资源 20.4.3 配置Windows应用程序 20.4.4 使用收集器 20.4.5 编写自定义事件 20.5 小结 第21章 任务和并行编程 21.1 概述 21.2 Parallel类 21.2.1 使用Parallel.For()方法循环 21.2.2 提前停止Parallel.For 21.2.3 Parallel.For()的初始化 21.2.4 使用Parallel.ForEach()方法循环 21.2.5 通过Parallel.Invoke()方法调用多个方法 21.3 任务 21.3.1 启动任务 21.3.2 Future——任务的结果 21.3.3 连续的任务 21.3.4 任务层次结构 21.3.5 从方法中返回任务 21.3.6 等待任务 21.4 取消架构 21.4.1 Parallel.For()方法的取消 21.4.2 任务的取消 21.5 数据流 21.5.1 使用动作块 21.5.2 源和目标数据块 21.5.3 连接块 21.6 小结 22.13 Timer类 22.14 小结 第22章 任务同步 22.1 概述 22.2 线程问题 22.2.1 争用条件 22.2.2 死锁 22.3 lock语句和线程安全 22.4 Interlocked类 22.5 Monitor类 22.6 SpinLock结构 22.7 WaitHandle基类 22.8 Mutex类 22.9 Semaphore类 22.10 Events类 22.11 Barrier类 22.12 ReaderWriterLockSlim类 第23章 文件和流 23.1 概述 23.2 管理文件系统 23.2.1 检查驱动器信息 23.2.2 使用Path类 23.2.3 创建文件和文件夹 23.2.4 访问和修改文件的属性 23.2.5 创建简单的编辑器 23.2.6 使用File执行读写操作 23.3 枚举文件 23.4 使用流处理文件 23.4.1 使用文件流 23.4.2 读取流 23.4.3 写入流 23.4.4 复制流 23.4.5 随机访问流 23.4.6 使用缓存的流 23.5 使用读取器和写入器 23.5.1 StreamReader类 23.5.2 StreamWriter类 23.5.3 读写二进制文件 23.6 压缩文件 23.6.1 使用压缩流 23.6.2 压缩文件 23.7 观察文件的更改 23.8 使用内存映射的文件 23.8.1 使用访问器创建内存映射文件 23.8.2 使用流创建内存映射文件 23.9 使用管道通信 23.9.1 创建命名管道服务器 23.9.2 创建命名管道客户端 23.9.3 创建匿名管道 23.10 通过Windows运行库使用文件和流 23.10.1 Windows应用程序编辑器 23.10.2 把Windows Runtime类型映射为.NET类型 23.11 小结 24.4 资源的访问控制 24.5 使用证书发布代码 24.6 小结 第24章 安全性 24.1 概述 24.2 验证用户信息 24.2.1 使用Windows标识 24.2.2 Windows Principal 24.2.3 使用声称 24.3 加密数据 24.3.1 创建和验证签名 24.3.2 实现安全的数据交换 24.3.3 使用RSA签名和散列 24.3.4 实现数据的保护 第25章 网络 25.1 网络 25.2 HttpClient类 25.2.1 发出异步的Get请求 25.2.2 抛出异常 25.2.3 传递标题 25.2.4 访问内容 25.2.5 用HttpMessageHandler自定义请求 25.2.6 使用SendAsync创建HttpRequestMessage 25.2.7 使用HttpClient和Windows Runtime 25.3 使用WebListener类 25.4 使用实用工具类 25.4.1 URI 25.4.2 IPAddress 25.4.3 IPHostEntry 25.4.4 Dns 25.5 使用TCP 25.5.1 使用TCP创建HTTP客户程序 25.5.2 创建TCP侦听器 25.5.3 创建TCP客户端 25.5.4 TCP和UDP 25.6 使用UDP 25.6.1 建立UDP接收器 25.6.2 创建UDP发送器 25.6.3 使用多播 25.7 使用套接字 25.7.1 使用套接字创建侦听器 25.7.2 使用NetworkStream和套接字 25.7.3 通过套接字使用读取器和写入器 25.7.4 使用套接字实现接收器 25.8 小结 第26章 Composition 26.1 概述 26.2 Composition库的体系结构 26.2.1 使用特性的Composition 26.2.2 基于约定的部件注册 26.3 定义协定 26.4 导出部件 26.4.1 创建部件 26.4.2 使用部件的部件 26.4.3 导出元数据 26.4.4 使用元数据进行惰性加载 26.5 导入部件 26.5.1 导入连接 26.5.2 部件的惰性加载 26.5.3 读取元数据 26.6 小结 第27章 XML和JSON 27.1 数据格式 27.1.1 XML 27.1.2 .NET支持的XML标准 27.1.3 在框架中使用XML 27.1.4 JSON 27.2 读写流格式的XML 27.2.1 使用XmlReader类读取XML 27.2.2 使用XmlWriter类 27.3 在.NET中使用DOM 27.3.1 使用XmlDocument类读取 27.3.2 遍历层次结构 27.3.3 使用XmlDocument插入节点 27.4 使用XPathNavigator类 27.4.1 XPathDocument类 27.4.2 XPathNavigator类 27.4.3 XPathNodeIterator类 27.4.4 使用XPath导航XML 27.4.5 使用XPath评估 27.4.6 用XPath修改XML 27.5 在XML中序列化对象 27.5.1 序列化简单对象 27.5.2 序列化一个对象树 27.5.3 没有特性的序列化 27.6 LINQ to XML 27.6.1 XDocument对象 27.6.2 XElement对象 27.6.3 XNamespace对象 27.6.4 XComment对象 27.6.5 XAttribute对象 27.6.6 使用LINQ查询XML文档 27.6.7 查询动态的XML文档 27.6.8 转换为对象 27.6.9 转换为XML 27.7 JSON 27.7.1 创建JSON 27.7.2 转换对象 27.7.3 序列化对象 27.8 小结 第28章 本地化 28.1 全球市场 28.2 System.Globalization名称空间 28.2.1 Unicode问题 28.2.2 区域性和区域 28.2.3 使用区域性 28.2.4 排序 28.3 资源 28.3.1 资源读取器和写入器 28.3.2 使用资源文件生成器 28.3.3 通过ResourceManager使用资源文件 28.3.4 System.Resources名称空间 28.4 使用WPF本地化 28.5 使用ASP.NET Core本地化 28.5.1 注册本地化服务 28.5.2 注入本地化服务 28.5.3 区域性提供程序 28.5.4 在ASP.NET Core中使用资源 28.6 本地化通用Windows平台 28.6.1 给UWP使用资源 28.6.2 使用多语言应用程序工具集进行本地化 28.7 创建自定义区域性 28.8 小结 第Ⅲ部分 Windows应用程序 第29章 核心XAML 29.1 XAML的作用 29.2 XAML概述 29.2.1 使用WPF把元素映射到类上 29.2.2 通过通用Windows应用程序把元素映射到类上 29.2.3 使用自定义.NET类 29.2.4 把属性用作特性 29.2.5 把属性用作元素 29.2.6 使用集合和XAML 29.3 依赖属性 29.3.1 创建依赖属性 29.3.2 值变更回调和事件 29.3.3 强制值回调和WPF 29.4 路由事件 29.4.1 用于Windows 应用程序的路由事件 29.4.2 WPF的冒泡和隧道 29.4.3 用WPF实现自定义路由事件 29.5 附加属性 29.6 标记扩展 29.6.1 创建自定义标记扩展 29.6.2 XAML定义的标记扩展 29.7 小结 第30章 样式化XAML应用程序 30.1 样式设置 30.2 形状 30.3 几何图形 30.3.1 使用段的几何图形 30.3.2 使用PML的几何图形 30.3.3 合并的几何图形(WPF) 30.4 变换 30.4.1 缩放 30.4.2 平移 30.4.3 旋转 30.4.4 倾斜 30.4.5 组合变换和复合变换 30.4.6 使用矩阵的变换 30.4.7 变换布局 30.5 画笔 30.5.1 SolidColorBrush 30.5.2 LinearGradientBrush 30.5.3 ImageBrush 30.5.4 WebViewBrush 30.5.5 只用于WPF的画笔 30.6 样式和资源 30.6.1 样式 30.6.2 资源 30.6.3 从代码中访问资源 30.6.4 动态资源(WPF) 30.6.5 资源字典 30.6.6 主题资源(UWP) 30.7 模板 30.7.1 控件模板 30.7.2 数据模板 30.7.3 样式化ListView 30.7.4 ListView项的数据模板 30.7.5 项容器的样式 30.7.6 项面板 30.7.7 列表视图的控件模板 30.8 动画 30.8.1 时间轴 30.8.2 缓动函数 30.8.3 关键帧动画 30.8.4 过渡(UWP应用程序) 30.9 可视化状态管理器 30.9.1 用控件模板预定义状态 30.9.2 定义自定义状态 30.9.3 设置自定义的状态 30.10 小结 第31章 模式和XAML应用程序 31.1 使用 MVVM的原因 31.2 定义 MVVM模式 31.3 共享代码 31.3.1 使用API 协定和通用Windows平台 31.3.2 使用共享项目 31.3.3 使用移动库 31.4 示例解决方案 31.5 模型 31.5.1 实现变更通知 31.5.2 使用Repository模式 31.6 视图模型 31.6.1 命令 31.6.2 服务和依赖注入 31.7 视图 31.7.1 注入视图模型 31.7.2 用于WPF的数据绑定 31.7.3 用于UWP的已编译数据绑定 31.8 使用事件传递消息 31.9 IoC容器 31.10 使用框架 31.11 小结 第32章 Windows应用程序:用户界面 32.1 概述 32.2 导航 32.2.1 导航回最初的页面 32.2.2 重写Page类的导航 32.2.3 在页面之间导航 32.2.4 后退按钮 32.2.5 Hub 32.2.6 Pivot 32.2.7 应用程序shell 32.2.8 汉堡按钮 32.2.9 分隔视图 32.2.10 给SplitView窗格添加内容 32.3 布局 32.3.1 VariableSizedWrapGrid 32.3.2 RelativePanel 32.3.3 自适应触发器 32.3.4 XAML视图 32.3.5 延迟加载 32.4 命令 32.5 已编译的数据绑定 32.5.1 已编译绑定的生命周期 32.5.2 给已编译的数据模板使用资源 32.6 控件 32.6.1 TextBox 控件 32.6.2 AutoSuggest 32.6.3 Inking 32.6.4 读写笔触的选择器 32.7 小结 第33章 高级Windows应用程序 33.1 概述 33.2 应用程序的生命周期 33.3 应用程序的执行状态 33.4 导航状态 33.4.1 暂停应用程序 33.4.2 激活暂停的应用程序 33.4.3 测试暂停 33.4.4 页面状态 33.5 共享数据 33.5.1 共享源 33.5.2 共享目标 33.6 应用程序服务 33.6.1 创建模型 33.6.2 为应用程序服务连接创建后台任务 33.6.3 注册应用程序服务 33.6.4 调用应用程序服务 33.7 相机 33.8 Geolocation和MapControl 33.8.1 使用MapControl 33.8.2 使用Geolocator定位信息 33.8.3 街景地图 33.8.4 继续请求位置信息 33.9 传感器 33.9.1 光线 33.9.2 罗盘 33.9.3 加速计 33.9.4 倾斜计 33.9.5 陀螺仪 33.9.6 方向 33.9.7 Rolling Marble示例 33.10 小结 第34章 带WPF的Windows桌面应用程序 34.1 概述 34.2 控件 34.2.1 简单控件 34.2.2 内容控件 34.2.3 带标题的内容控件 34.2.4 项控件 34.2.5 带标题的项控件 34.2.6 修饰 34.3 布局 34.3.1 StackPanel 34.3.2 WrapPanel 34.3.3 Canvas 34.3.4 DockPanel 34.3.5 Grid 34.4 触发器 34.4.1 属性触发器 34.4.2 多触发器 34.4.3 数据触发器 34.5 菜单和功能区控件 34.5.1 菜单控件 34.5.2 功能区控件 34.6 Commanding 34.6.1 定义命令 34.6.2 定义命令源 34.6.3 命令绑定 34.7 数据绑定 34.7.1 BooksDemo应用程序内容 34.7.2 用XAML绑定 34.7.3 简单对象的绑定 34.7.4 更改通知 34.7.5 对象数据提供程序 34.7.6 列表绑定 34.7.7 主从绑定 34.7.8 多绑定 34.7.9 优先绑定 34.7.10 值的转换 34.7.11 动态添加列表项 34.7.12 动态添加选项卡中的项 34.7.13 数据模板选择器 34.7.14 绑定到XML上 34.7.15 绑定的验证和错误处理 34.8 TreeView 34.9 DataGrid 34.9.1 自定义列 34.9.2 行的细节 34.9.3 用DataGrid进行分组 34.9.4 实时成型 34.10 小结 第35章 用WPF创建文档 35.1 简介 35.2 文本元素 35.2.1 字体 35.2.2 TextEffect 35.2.3 内联 35.2.4 块 35.2.5 列表 35.2.6 表 35.2.7 块的锚定 35.3 流文档 35.4 固定文档 35.5 XPS文档 35.6 打印 35.6.1 用PrintDialog打印 35.6.2 打印可见元素 35.7 小结 第36章 部署Windows应用程序 36.1 部署是应用程序生命周期的一部分 36.2 部署的规划 36.2.1 部署选项 36.2.2 部署要求 36.2.3 部署.NET运行库 36.3 传统的部署选项 36.3.1 xcopy部署 36.3.2 Windows Installer 36.4 ClickOnce 36.4.1 ClickOnce操作 36.4.2 发布ClickOnce应用程序 36.4.3 ClickOnce设置 36.4.4 ClickOnce文件的应用程序缓存 36.4.5 应用程序的安装 36.4.6 ClickOnce部署API 36.5 UWP应用程序 36.5.1 创建应用程序包 36.5.2 Windows App Certification Kit 36.5.3 旁加载 36.6 小结 第Ⅳ部分 Web应用程序和服务 第37章 ADO.NET 37.1 ADO.NET概述 37.1.1 示例数据库 37.1.2 NuGet 包和名称空间 37.2 使用数据库连接 37.2.1 管理连接字符串 37.2.2 连接池 37.2.3 连接信息 37.3 命令 37.3.1 ExecuteNonQuery()方法 37.3.2 ExecuteScalar()方法 37.3.3 ExecuteReader()方法 37.3.4 调用存储过程 37.4 异步数据访问 37.5 事务 37.6 小结 第38章 Entity Framework Core 38.1 Entity Framework简史 38.2 Entity Framework简介 38.2.1 创建模型 38.2.2 创建上下文 38.2.3 写入数据库 38.2.4 读取数据库 38.2.5 更新记录 38.2.6 删除记录 38.3 使用依赖注入 38.4 创建模型 38.4.1 创建关系 38.4.2 用.NET CLI迁移 38.4.3 用MSBuild迁移 38.4.4 创建数据库 38.4.5 数据注释 38.4.6 流利API 38.4.7 在数据库中搭建模型 38.5 使用对象状态 38.5.1 用关系添加对象 38.5.2 对象的跟踪 38.5.3 更新对象 38.5.4 更新未跟踪的对象 38.6 冲突的处理 38.6.1 最后一个更改获胜 38.6.2 第一个更改获胜 38.7 使用事务 38.7.1 使用隐式的事务 38.7.2 创建显式的事务 38.8 小结 第39章 Windows服务 39.1 Windows服务 39.2 Windows服务的体系结构 39.2.1 服务程序 39.2.2 服务控制程序 39.2.3 服务配置程序 39.2.4 Windows服务的类 39.3 创建Windows服务程序 39.3.1 创建服务的核心功能 39.3.2 QuoteClient示例 39.3.3 Windows服务程序 39.3.4 线程化和服务 39.3.5 服务的安装 39.3.6 安装程序 39.4 Windows服务的监控和控制 39.4.1 MMC管理单元 39.4.2 net.exe实用程序 39.4.3 sc.exe实用程序 39.4.4 Visual Studio Server Explorer 39.4.5 编写自定义ServiceController类 39.5 故障排除和事件日志 39.6 小结 第40章 ASP.NET Core 40.1 ASP.NET Core 1.0 40.2 Web技术 40.2.1 HTML 40.2.2 CSS 40.2.3 JavaScript和TypeScript 40.2.4 脚本库 40.3 ASP.NET Web项目 40.4 启动 40.5 添加静态内容 40.5.1 使用JavaScript包管理器:npm 40.5.2 用gulp构建 40.5.3 通过Bower使用客户端库 40.6 请求和响应 40.6.1 请求标题 40.6.2 查询字符串 40.6.3 编码 40.6.4 表单数据 40.6.5 cookie 40.6.6 发送JSON 40.7 依赖注入 40.7.1 定义服务 40.7.2 注册服务 40.7.3 注入服务 40.7.4 调用控制器 40.8 使用映射的路由 40.9 使用中间件 40.10 会话状态 40.11 配置ASP.NET 40.11.1 读取配置 40.11.2 基于环境的不同配置 40.11.3 用户密钥 40.12 小结 第41章 ASP.NET MVC 41.1 为ASP.NET MVC 6建立服务 41.2 定义路由 41.2.1 添加路由 41.2.2 使用路由约束 41.3 创建控制器 41.3.1 理解动作方法 41.3.2 使用参数 41.3.3 返回数据 41.3.4 使用Controller基类和POCO控制器 41.4 创建视图 41.4.1 向视图传递数据 41.4.2 Razor语法 41.4.3 创建强类型视图 41.4.4 定义布局 41.4.5 用部分视图定义内容 41.4.6 使用视图组件 41.4.7 在视图中使用依赖注入 41.4.8 为多个视图导入名称空间 41.5 从客户端提交数据 41.5.1 模型绑定器 41.5.2 注解和验证 41.6 使用HTML Helper 41.6.1 简单的Helper 41.6.2 使用模型数据 41.6.3 定义HTML特性 41.6.4 创建列表 41.6.5 强类型化的Helper 41.6.6 编辑器扩展 41.6.7 实现模板 41.7 标记辅助程序 41.7.1 激活标记辅助程序 41.7.2 使用锚定标记辅助程序 41.7.3 使用标签标记辅助程序 41.7.4 使用输入标记辅助程序 41.7.5 使用表单进行验证 41.7.6 创建自定义标记辅助程序 41.8 实现动作过滤器 41.9 创建数据驱动的应用程序 41.9.1 定义模型 41.9.2 创建数据库 41.9.3 创建服务 41.9.4 创建控制器 41.9.5 创建视图 41.10 实现身份验证和授权 41.10.1 存储和检索用户信息 41.10.2 启动身份系统 41.10.3 执行用户注册 41.10.4 设置用户登录 41.10.5 验证用户的身份 41.11 小结 第42章 ASP.NET Web API 42.1 概述 42.2 创建服务 42.2.1 定义模型 42.2.2 创建存储库 42.2.3 创建控制器 42.2.4 修改响应格式 42.2.5 REST 结果和状态码 42.3 创建异步服务 42.4 创建.NET客户端 42.4.1 发送GET请求 42.4.2 从服务中接收XML 42.4.3 发送POST请求 42.4.4 发送PUT请求 42.4.5 发送DELETE请求 42.5 写入数据库 42.5.1 定义数据库 42.5.2 创建存储库 42.6 创建元数据 42.7 创建和使用OData服务 42.7.1 创建数据模型 42.7.2 创建服务 42.7.3 OData查询 42.8 小结 第43章 WebHooks和SignaIR 43.1 概述 43.2 SignalR的体系结构 43.3 使用SignalR的简单聊天程序 43.3.1 创建集线器 43.3.2 用HTML和JavaScript创建客户端 43.3.3 创建SignalR .NET客户端 43.4 分组连接 43.4.1 用分组扩展集线器 43.4.2 用分组扩展WPF客户端 43.5 WebHooks的体系结构 43.6 创建Dropbox和GitHub接收器 43.6.1 创建Web应用程序 43.6.2 为Dropbox和GitHub配置WebHooks 43.6.3 实现处理程序 43.6.4 用Dropbox和GitHub配置应用程序 43.6.5 运行应用程序 43.7 小结 第44章 WCF 44.1 WCF概述 44.1.1 SOAP 44.1.2 WSDL 44.2 创建简单的服务和客户端 44.2.1 定义服务和数据协定 44.2.2 数据访问 44.2.3 服务的实现 44.2.4 WCF服务宿主和WCF测试客户端 44.2.5 自定义服务宿主 44.2.6 WCF客户端 44.2.7 诊断 44.2.8 与客户端共享协定程序集 44.3 协定 44.3.1 数据协定 44.3.2 版本问题 44.3.3 服务协定和操作协定 44.3.4 消息协定 44.3.5 错误协定 44.4 服务的行为 44.5 绑定 44.5.1 标准绑定 44.5.2 标准绑定的功能 44.5.3 WebSocket 44.6 宿主 44.6.1 自定义宿主 44.6.2 WAS宿主 44.6.3 预配置的宿主类 44.7 客户端 44.7.1 使用元数据 44.7.2 共享类型 44.8 双工通信 44.8.1 双工通信的协定 44.8.2 用于双工通信的服务 44.8.3 用于双工通信的客户应用程序 44.9 路由 44.9.1 路由示例应用程序 44.9.2 路由接口 44.9.3 WCF路由服务 44.9.4 为故障切换使用路由器 44.9.5 改变协定的桥梁 44.9.6 过滤器的类型 44.10 小结 第45章 部署网站和服务 45.1 部署Web应用程序 45.2 部署前的准备 45.2.1 创建ASP.NET 4.6 Web应用程序 45.2.2 创建ASP.NET Core 1.0 Web应用程序 45.2.3 ASP.NET 4.6的配置文件 45.2.4 ASP.NET Core 1.0的配置文件 45.3 部署到IIS 45.3.1 使用IIS Manager准备Web应用程序 45.3.2 Web部署到IIS 45.4 部署到Microsoft Azure 45.4.1 创建SQL数据库 45.4.2 用SQL Azure测试本地网站 45.4.3 部署到Microsoft Azure Web应用 45.5 部署到Docker 45.6 小结
C++高级编程(第3版).[美]Marc Gregoire(带详细书签) PDF 高清 完整版 下载
熟练驾驭C++语言的最新版本C++14。《C++<em>高级编程</em>(第3版) 是设计和构建C++应用程序的实用指南,代码丰富,并根据C++14版本做了全面更新。本书强调良好编程风格的重要性,阐述如何设计可充分利用C++语言功能的高效解决方案;深入探讨C++语言功能集的更复杂元素,并披露避开常见陷阱的技巧。本书醒目显示了新的C++14信息,使你快速了解影响应用程序构建的显著变化。 第I部分 专业的C++简介 1 第1章 C++和STL速成 3 1.1 C++基础知识 3 1.1.1 小程序"hello world" 4 1.1.2 名称空间 6 1.1.3 变量 8 1.1.4 字面量 9 1.1.5 运算符 9 1.1.6 类型 11 1.1.7 条件 13 1.1.8 数组 16 1.1.9 循环 18 1.1.10 函数 19 1.1.11 类型推断(上) 21 1.1.12 这些都是基础 21 1.2 深入研究C++ 21 1.2.1 指针和动态内存 22 1.2.2 引用 26 1.2.3 C++中的字符串 26 1.2.4 异常 27 1.2.5 const的多种用法 28 1.2.6 类型推断(下) 29 1.3 作为面向对象语言的C++ 30 1.4 标准库 32 1.5 第一个有用的C++程序 33 1.5.1 雇员记录系统 33 1.5.2 Employee类 33 1.5.3 Database类 36 1.5.4 用户界面 39 1.5.5 评估程序 41 1.6 本章小结 41 第2章 使用字符串 43 2.1 动态字符串 43 2.1.1 C风格的字符串 43 2.1.2 字符串字面量 45 2.1.3 C++ string类 46 2.1.4 原始字符串字面量 49 2.1.5 非标准字符串 50 2.2 本章小结 50 第3章 编码风格 51 3.1 良好外观的重要性 51 3.1.1 事先考虑 51 3.1.2 良好风格的元素 52 3.2 为代码编写文档 52 3.2.1 使用注释的原因 52 3.2.2 注释的风格 55 3.2.3 本书的注释 59 3.3 分解 59 3.3.1 通过重构分解 59 3.3.2 通过设计分解 60 3.3.3 本书中的分解 60 3.4 命名 60 3.4.1 选择恰当的名称 60 3.4.2 命名约定 61 3.5 使用具有风格的语言特性 63 3.5.1 使用常量 63 3.5.2 使用引用代替指针 63 3.5.3 使用自定义异常 64 3.6 格式 64 3.6.1 关于大括号对齐的争论 64 3.6.2 关于空格和圆括号的争论 65 3.6.3 空格和制表符 66 3.7 风格的挑战 66 3.8 本章小结 66 第II部分 专业的C++软件设计 67 第4章 设计专业的C++程序 69 4.1 程序设计概述 69 4.2 程序设计的重要性 70 4.3 C++设计的特点 72 4.4 C++设计的两个原则 73 4.4.1 抽象 73 4.4.2 重用 74 4.5 重用代码 75 4.5.1 关于术语的说明 76 4.5.2 决定是否重用代码 76 4.5.3 重用代码的策略 78 4.5.4 绑定第三方应用程序 82 4.5.5 开放源代码库 82 4.5.6 C++标准库 83 4.6 设计模式和技巧 84 4.7 设计一个国际象棋程序 84 4.7.1 需求 84 4.7.2 设计步骤 85 4.8 本章小结 88 第5章 面向对象设计 91 5.1 过程化的思考方式 91 5.2 面向对象思想 92 5.2.1 类 92 5.2.2 组件 92 5.2.3 属性 93 5.2.4 行为 93 5.2.5 综合考虑 93 5.3 生活在对象世界里 94 5.5.1 过度使用对象 94 5.5.2 过于通用的对象 95 5.4 对象之间的关系 96 5.4.1 "有一个"关系 96 5.4.2 "是一个"关系(继承) 97 5.4.3 "有一个"与"是一个"的区别 98 5.4.4 Not-a关系 101 5.4.5 层次结构 101 5.4.6 多重继承 102 5.4.7 混入类 103 5.5 抽象 104 5.5.1 接口与实现 104 5.5.2 决定公开的接口 104 5.5.3 设计成功的抽象 106 5.6 本章小结 106 第6章 设计可重用代码 107 6.1 重用哲学 107 6.2 如何设计可重用的代码 108 6.2.1 使用抽象 108 6.2.2 构建理想的重用代码 109 6.2.3 设计有用的接口 113 6.2.4 协调通用性和使用性 116 6.3 本章小结 117 第III部分 专业的C++编码方法 119 第7章 熟悉类和对象 121 7.1 电子表格示例介绍 121 7.2 编写类 122 7.2.1 类定义 122 7.2.2 定义方法 124 7.2.3 使用对象 127 7.3 对象的生命周期 129 7.3.1 创建对象 129 7.3.2 销毁对象 143 7.3.3 对象赋值 144 7.3.4 复制和赋值的区别 147 7.4 本章小结 148 第8章 掌握类与对象 149 8.1 对象的动态内存分配 149 8.1.1 Spreadsheet类 149 8.1.2 使用析构函数释放内存 151 8.1.3 处理复制和赋值 152 8.2 不同的数据成员类型 158 8.2.1 静态数据成员 158 8.2.2 常量数据成员 159 8.2.3 引用数据成员 160 8.2.4 常量引用数据成员 161 8.3 与方法有关的更多内容 162 8.3.1 静态方法 162 8.3.2 const方法 162 8.3.3 方法重载 164 8.3.4 默认参数 165 8.3.5 内联方法 166 8.4 嵌套类 167 8.5 类内的枚举类型 168 8.6 友元 169 8.7 运算符重载 170 8.7.1 示例:为SpreadsheetCell实现加法 170 8.7.2 重载算术运算符 174 8.7.3 重载比较运算符 176 8.7.4 创建具有运算符重载的类型 178 8.8 创建稳定的接口 178 8.9 本章小结 181 第9章 揭秘继承技术 183 9.1 使用继承构建类 183 9.1.1 扩展类 184 9.1.2 重写方法 187 9.2 使用继承重用代码 190 9.2.1 WeatherPrediction类 190 9.2.2 在派生类中添加功能 191 9.2.3 在派生类中替换功能 192 9.3 利用父类 193 9.3.1 父类构造函数 193 9.3.2 父类的析构函数 194 9.3.3 使用父类方法 196 9.3.4 向上转型和向下转型 198 9.4 继承与多态性 199 9.4.1 回到电子表格 199 9.4.2 设计多态性的电子表格单元格 200 9.4.3 电子表格单元格的基类 200 9.4.4 独立的派生类 202 9.4.5 利用多态性 204 9.4.6 考虑将来 205 9.5 多重继承 206 9.5.1 从多个类继承 206 9.5.2 名称冲突和歧义基类 207 9.6 有趣而晦涩的继承问题 210 9.6.1 修改重写方法的特征 210 9.6.2 继承的构造函数 214 9.6.3 重写方法时的特殊情况 217 9.6.4 派生类中的复制构造函数和赋值运算符 223 9.6.5 virtual的真相 224 9.6.6 运行时类型工具 227 9.6.7 非public继承 228 9.6.8 虚基类 228 9.7 本章小结 229 第10章 理解灵活而奇特的C++ 231 10.1 引用 231 10.1.1 引用变量 232 10.1.2 引用数据成员 233 10.1.3 引用参数 234 10.1.4 引用作为返回值 235 10.1.5 使用引用还是指针 235 10.1.6 右值引用 238 10.2 关键字的疑问 242 10.2.1 const关键字 243 10.2.2 static关键字 246 10.2.3 非局部变量的初始化顺序 249 10.2.4 非局部变量的销毁顺序 249 10.3 类型和类型转换 250 10.3.1 typedef 250 10.3.2 函数指针typedef 251 10.3.3 类型别名 251 10.3.4 类型转换 252 10.4 作用域解析 256 10.5 C++11/C++14 257 10.5.1 统一初始化 257 10.5.2 初始化列表 258 10.5.3 显式转换运算符 259 10.5.4 特性 260 10.5.5 用户定义的字面量 260 10.6 头文件 262 10.7 C的实用工具 263 10.7.1 变长参数列表 263 10.7.2 预处理器宏 265 10.8 本章小结 266 第11章 利用模板编写泛型代码 267 11.1 模板概述 268 11.2 类模板 268 11.2.1 编写类模板 268 11.2.2 尖括号 275 11.2.3 编译器处理模板的原理 275 11.2.4 将模板代码分布在多个文件中 276 11.2.5 模板参数 278 11.2.6 方法模板 280 11.2.7 模板类特例化 284 11.2.8 从类模板派生 286 11.2.9 继承还是特例化 287 11.2.10 模板别名 287 11.2.11 替换函数语法 288 11.3 函数模板 289 11.3.1 函数模板特例化 290 11.3.2 函数模板重载 291 11.3.3 类模板的friend函数模板 292 11.4 可变模板 293 11.5 本章小结 293 第12章 C++ I/O揭秘 295 12.1 使用流 295 12.1.1 流的含义 296 12.1.2 流的来源和目标 296 12.1.3 流式输出 297 12.1.4 流式输入 301 12.1.5 对象的输入输出 306 12.2 字符串流 308 12.3 文件流 309 12.3.1 通过seek()和tell()在文件中转移 310 12.3.2 将流连接在一起 312 12.4 双向I/O 312 12.5 本章小结 314 第13章 错误处理 315 13.1 错误与异常 315 13.1.1 异常的含义 316 13.1.2 C++中异常的优点 316 13.1.3 C++中异常的缺点 317 13.1.4 我们的建议 317 13.2 异常机制 317 13.2.1 抛出并捕获异常 318 13.2.2 异常类型 321 13.2.3 抛出并捕获多个异常 322 13.2.4 未捕获的异常 325 13.2.5 抛出列表 326 13.3 异常与多态性 330 13.3.1 标准异常体系 330 13.3.2 在类层次结构中捕获异常 332 13.3.3 编写自己的异常类 333 13.3.4 嵌套异常 335 13.4 堆栈的释放与清理 337 13.4.1 使用智能指针 338 13.4.2 捕获、清理并重新抛出 339 13.5 常见的错误处理问题 339 13.5.1 内存分配错误 339 13.5.2 构造函数中的错误 342 13.5.3 构造函数的function-try-blocks 343 13.5.4 析构函数中的错误 345 13.6 综合应用 346 13.7 本章小结 350 第14章 C++运算符重载 351 14.1 运算符重载概述 351 14.1.1 重载运算符的原因 352 14.1.2 运算符重载的限制 352 14.1.3 运算符重载的选择 352 14.1.4 不要重载的运算符 354 14.1.5 可重载运算符小结 354 14.1.6 右值引用 357 14.1.7 关系运算符 358 14.2 重载算术运算符 358 14.2.1 重载一元负号和一元正号 358 14.2.2 重载递增和递减运算符 359 14.3 重载按位运算符和二元逻辑运算符 360 14.4 重载插入运算符和提取运算符 360 14.5 重载下标运算符 362 14.5.1 通过operator[]提供只读访问 364 14.5.2 非整数数组索引 365 14.6 重载函数调用运算符 366 14.7 重载解除引用运算符 367 14.7.1 实现operator* 368 14.7.2 实现operator-> 369 14.7.3 operator ->*的含义 369 14.8 编写转换运算符 370 14.8.1 转换运算符的多义性问题 371 14.8.2 用于布尔表达式的转换 372 14.9 重载内存分配和释放运算符 373 14.9.1 new和delete的工作原理 374 14.9.2 重载operator new和operator delete 375 14.9.3 显式地删除/默认化operator new和operator delete 377 14.9.4 重载带有额外参数的operator new和operator delete 377 14.10 本章小结 379 第15章 C++标准库概述 381 15.1 编码原则 382 15.1.1 使用模板 382 15.1.2 使用运算符重载 382 15.2 C++标准库概述 382 15.2.1 字符串 382 15.2.2 正则表达式 382 15.2.3 I/O流 383 15.2.4 智能指针 383 15.2.5 异常 383 15.2.6 数学工具 383 15.2.7 时间工具 384 15.2.8 随机数 384 15.2.9 初始化列表 384 15.2.10 Pair 和Tuple 384 15.2.11 函数对象 384 15.2.12 多线程 384 15.2.13 类型特质 385 15.2.14 标准模板库 385 15.3 本章小结 397 第16章 理解容器与迭代器 399 16.1 容器概述 399 16.1.1 对元素的要求 400 16.1.2 异常和错误检查 401 16.1.3 迭代器 401 16.2 顺序容器 404 16.2.1 vector 404 16.2.2 vector[bool]特化 420 16.2.3 deque 420 16.2.4 list 421 16.2.5 forward_list 424 16.2.6 array 426 16.3 容器适配器 427 16.3.1 queue 427 16.3.2 priority_queue 429 16.3.3 stack 432 16.4 关联容器 432 16.4.1 pair工具类 432 16.4.2 map 433 16.4.3 multimap 439 16.4.4 set 442 16.4.5 multiset 444 16.5 无序关联容器/哈希表 444 16.5.1 哈希函数 444 16.5.2 unordered_map 446 16.5.3 unordered_multimap 449 16.5.4 unordered_set/unordered_multiset 449 16.6 其他容器 449 16.6.1 标准C风格数组 449 16.6.2 string 450 16.6.3 流 451 16.6.4 bitset 451 16.7 本章小结 455 第17章 掌握STL算法 457 17.1 算法概述 457 17.1.1 find和find_if算法 458 17.1.2 accumulate算法 460 17.1.3 在算法中使用移动语义 461 17.2 lambda表达式 461 17.2.1 语法 462 17.2.2 泛型Lambda表达式 464 17.2.3 Lambda捕捉表达式 464 17.2.4 将Lambda表达式用作返回值 465 17.2.5 将Lambda表达式用作参数 466 17.2.6 STL算法示例 466 17.3 函数对象 467 17.3.1 算术函数对象 468 17.3.2 透明运算符仿函数 468 17.3.3 比较函数对象 469 17.3.4 逻辑函数对象 470 17.3.5 按位函数对象 470 17.3.6 函数对象适配器 470 17.3.7 编写自己的函数对象 474 17.4 算法详解 475 17.4.1 迭代器 475 17.4.2 非修改序列算法 476 17.4.3 修改序列算法 480 17.4.4 操作算法 486 17.4.5 分区算法 487 17.4.6 排序算法 488 17.4.7 二叉树搜索算法 489 17.4.8 集合算法 489 17.4.9 最大/最小算法 491 17.4.10 数值处理算法 492 17.5 算法示例:审核选民登记 493 17.5.1 选民登记审核问题描述 493 17.5.2 auditVoterRolls函数 493 17.5.3 getDuplicates函数 494 17.5.4 测试auditVoterRolls函数 495 17.6 本章小结 496 第18章 字符串本地化与正则表达式 497 18.1 本地化 497 18.1.1 本地化字符串字面量 497 18.1.2 宽字符 498 18.1.3 非西方字符集 498 18.1.4 locale和facet 500 18.2 正则表达式 502 18.2.1 ECMAScript语法 503 18.2.2 regex库 507 18.2.3 regex_match() 508 18.2.4 regex_search() 510 18.2.5 regex_iterator 512 18.2.6 regex_token_iterator 513 18.2.7 regex_replace() 515 18.3 本章小结 517 第19章 其他库工具 519 19.1 std::function 519 19.2 有理数 521 19.3 Chrono库 523 19.3.1 持续时间 523 19.3.2 时钟 526 19.3.3 时点 528 19.4 生成随机数 529 19.4.1 随机数引擎 530 19.4.2 随机数引擎适配器 531 19.4.3 预定义的引擎和引擎适配器 532 19.4.4 生成随机数 532 19.4.5 随机数分布 533 19.5 元组 536 19.6 本章小结 539 第IV部分 掌握C++的高级特性 541 第20章 自定义和扩展STL 543 20.1 分配器 543 20.2 迭代器适配器 544 20.2.1 反向迭代器 544 20.2.2 流迭代器 545 20.2.3 插入迭代器 546 20.2.4 移动迭代器 547 20.3 扩展STL 548 20.3.1 扩展STL的原因 549 20.3.2 编写STL算法 549 20.3.3 编写STL容器 551 20.4 本章小结 582 第21章 模板的高级特性 583 21.1 深入了解模板参数 583 21.1.1 深入了解模板类型参数 583 21.1.2 模板参数模板介绍 586 21.1.3 深入了解非类型模板参数 587 21.2 模板类部分特例化 589 21.3 通过重载模拟函数部分特例化 592 21.4 模板递归 593 21.4.1 N维网格:初次尝试 593 21.4.2 真正的N维网格 595 21.5 类型推导 597 21.6 可变参数模板 600 21.6.1 类型安全的可变长度参数列表 600 21.6.2 可变数目的混入类 602 21.7 元编程 603 21.7.1 编译时阶乘 603 21.7.2 循环展开 604 21.7.3 打印元组 605 21.7.4 类型trait 607 21.7.5 结论 612 21.8 本章小结 612 第22章 内存管理 613 22.1 使用动态内存 614 22.1.1 如何描绘内存 614 22.1.2 分配和释放 615 22.1.3 数组 616 22.1.4 使用指针 622 22.2 数组-指针的对偶性 624 22.2.1 数组就是指针 624 22.2.2 并非所有的指针都是数组 626 22.3 低级内存操作 626 22.3.1 指针运算 626 22.3.2 自定义内存管理 627 22.3.3 垃圾回收 627 22.3.4 对象池 628 22.3.5 函数指针 628 22.3.6 方法和数据成员的指针 630 22.4 智能指针 630 22.4.1 旧的过时的auto_ptr 631 22.4.2 shared_ptr和unique_ptr智能指针 631 22.5 内存常见的陷阱 636 22.5.1 分配不足的字符串 637 22.5.2 访问内存越界 637 22.5.3 内存泄漏 638 22.5.4 双重删除和无效指针 640 22.6 本章小结 641 第23章 C++多线程编程 643 23.1 简介 643 23.1.1 竞争条件 645 23.1.2 死锁 646 23.1.3 撕裂 647 23.1.4 缓存的一致性 647 23.2 线程 647 23.2.1 通过函数指针创建线程 647 23.2.2 通过函数对象创建线程 649 23.2.3 通过lambda创建线程 650 23.2.4 通过成员函数创建线程 651 23.2.5 线程本地存储 651 23.2.6 取消线程 652 23.2.7 从线程获得结果 652 23.2.8 复制和重新抛出异常 652 23.3 原子操作库 654 23.3.1 原子类型示例 655 23.3.2 原子操作 657 23.4 互斥 658 23.4.1 互斥体类 658 23.4.2 锁 660 23.4.3 std::call_once 661 23.4.4 互斥体的用法示例 663 23.5 条件变量 665 23.6 future 667 23.7 异常处理 669 23.8 示例:多线程日志记录器类 669 23.9 线程池 673 23.10 线程设计和最佳实践 674 23.11 本章小结 675 第V部分 C++软件工程 第24章 充分利用软件工程方法 679 24.1 过程的必要性 679 24.2 软件生命周期模型 680 24.2.1 分段模型和瀑布模型 680 24.2.2 螺旋模型 683 24.2.3 Rational统一过程 685 24.3 软件工程方法学 686 24.3.1 敏捷 686 24.3.2 Scrum 686 24.3.3 极限编程 688 24.3.4 软件分流 691 24.4 构建自己的过程和方法 691 24.4.1 对新思想采取开放态度 692 24.4.2 提出新想法 692 24.4.3 知道什么行得通什么行不通 692 24.4.4 不要逃避 692 24.5 源代码控制 692 24.6 本章小结 694 第25章 编写高效的C++程序 695 25.1 性能和效率概述 695 25.1.1 提升效率的两种方式 696 25.1.2 两种程序 696 25.1.3 C++是不是低效的语言 696 25.2 语言层次的效率 696 25.2.1 高效地操纵对象 697 25.2.2 使用内联方法和函数 700 25.3 设计层次的效率 700 25.3.1 尽可能多地缓存 701 25.3.2 使用对象池 701 25.4 剖析 705 25.4.1 使用gprof的剖析范例 705 25.4.2 使用Visual C++ 2013的剖析范例 713 25.5 本章小结 716 第26章 熟练掌握调试技术 717 26.1 调试的基本定律 717 26.2 bug分类学 718 26.3 避免bug 718 26.4 为bug做好规划 719 26.4.1 错误日志 719 26.4.2 调试跟踪 720 26.4.3 断言 727 26.4.4 静态断言 728 26.4.5 崩溃转储 729 26.5 调试技术 729 26.5.1 重现bug 729 26.5.2 调试可重复的bug 730 26.5.3 调试不可重现的bug 730 26.5.4 调试退化 731 26.5.5 调试内存问题 731 26.5.6 调试多线程程序 735 26.5.7 调试示例:文章引用 736 26.5.8 从ArticleCitations示例中总结的教训 746 26.6 本章小结 747 附录A C++面试 749 附录B 带注解的参考文献 767 附录C 标准库头文件 776
最新版 C# 7.1 and .net core 2.0
大家赶快来尝鲜。英文原版,名字叫做 Create powerful applications with .NET Standard 2.0,中文版预计19年下半年去了。<em>高级编程</em>(Professional)系列写得非常详细,高清文字版带目录,适合了解基础,同时也对代码和原理有深入研究的人阅读。
C++高级编程第三版最权威,最完整的工具书
新鲜出炉的电子书籍,为开发者学习开发必备良品,这个比较适合有开发基础的人来看看的。
C++高级编程(五)模板
模板:属于泛型编程,泛型编程指的是代码“重用”,固定的代码但是其内部函数、对象类型或类可以不同。1、函数模板函数模板的声明形式为:template(参数表){    函数体}#include using namespace std; template void add(T a, Y b) { cout <<<<<< a + b << endl;
读《C#高级编程(第9版)》之我有话说
之前用过Visual Studio 2005和Visual Studio 2012做过项目,感觉Visual Studio这个IDE是非常强大的,当时C#还是4.0版本,如果4.5版本横空出世,让大家对C#语言更加看好,尤其最近微软的一系列动作,尤其是新CEO上台后的大刀阔斧的改革,让微软变得越来越开放了。从C# 2.0出来就是为了和Java竞争的,当时增加了对泛型的支持,随后C# 3.0引入WPF和WCF,让该语言在通信方面的竞争力越来越强。C# 4.0引入了运行库,提供动态语言集成,例如Linq、Lam
C#高级编程 第10版 C# 6 & .NET Core 1.0 (第10版) 中文带完美书签.pdf
于开发人员,把C#语言和.NET描述为*重要的新技术一点都不夸张。.NET提供了一种环境。在这种环境中,可以开发在Windows上运行的几乎所有应用程序。在Windows上运行的是.NET Framework以前的版本,新版本.NET Core 1.0不仅在Windows上运行,还在Linux和Mac系统上运行。C#是专门用于.NET的编程语言。 作者简介 作者:Christian Nagel Christian Nagel是微软开发技术人(Microsoft Regional Director)、Visual Studio和开发技术方向的微软MVP、软件架构师、资深开发人员(2000年就开始用.NET 技术建立解决方案) 。他编著过多本.NET图书,经常在TechEd和TechDays等国际会议上发言,并支持.NET用户组。Christian是微软认证培训师(MCT),也是Universal Windows apps和ASP.NET方向的微软认证开发专家(MCPD)。
C#高级编程(第11版)随书源码 Professional C# 7
Professional C# 7 and .NET Core 2.0 C#<em>高级编程</em>(第<em>11版</em>)随书源码(分享的为百度网盘的下载地址))
C#高级编程(第11版)源码_Professional C# 7 and .NET Core 2.0 Code
C#<em>高级编程</em>(第<em>11版</em>)源码_Professional C# 7 and .NET Core 2.0 Code。相关代码
C#并行编程高级教程(中文版PDF高清).rar
C#并行编程高级教程(中文版PDF高清).rar C#并行编程高级教程(中文版PDF高清).rar C#并行编程高级教程(中文版PDF高清).rar
《csharp高级编程》 学习笔记 第五章 数组
第五章 数组 5.1  简单数组 5.1.1 数组的声明 int [] myArray; 5.1.2 数组的初始化 myArray=new int [4]; int[] myArray = new int[4] {4, 7, 11, 2}; int[
C++高级编程(第3版)_带书签_高清完整版
[美] Marc Gregoire 著;张永强 译; ISBN:9787302396970
《csharp高级编程》 学习笔记 第二章 csharp基础
第二章 csharp基础 2.3.1 变量的初始化 对于变量的初始化<em>c#</em>的编译器更加严厉。大多数现代编译器把没有初始化标记为警告,但csharp编译器会标记为错误。 csharp有两个确保变量在使用前进行初始化的方法: 1.变量是类或结构中的字段,如果没有显示初始化,创建
看了《C++高级编程》的一点感受
最近,算是把《C++<em>高级编程</em>》过了一遍,有些收获。 总体来说,确实总结了一些常见的,不常见的知识细节,还是有值得看的点。 但是,我仍然觉得,这并不是我要的<em>高级编程</em>。 我没感觉到什么高级的技术,也没感受到如获至宝的知识。 都是一些常见,常用的知识。 举得例子,并不实用,还是偏基础了,不够应用。 下一步,就是专供网络编程了,继续努力!
C#高级编程11版英文版
Professional Csharp 7 and .NET Core 2.0.pdf C#<em>高级编程</em>第<em>11版</em>英文版
C#高级编程11版源代码和附赠章节
C#<em>高级编程</em>第<em>11版</em>源代码和附赠章节,https://github.com/ProfessionalCSharp/ProfessionalCSharp7
《Spring5高级编程
学习目标 1、IoC DI 2、Spring5 新功能 3、使用Spring MVC和WebSocket构建基于Spring的WEB应用程序 4、使用Spring WebFlux构建Spring Web反应式应用程序 5、Junit5测试 6、Java8的lambda表达式 7、使用SpringBoot达到更高水平,以获取任何类型的Spring应用程序并立即运行 8、使用Java9...
【 Kindle 英文版】Professional C#7 And .NET Core 2.0 Apr原版
最新原版,非扫描文件,英文!英文!英文!mobi格式,亲测Kindle和Kindle阅读软件可以直接打开,看准再下载!!!好书值得分享,那就便宜点。
C#高级编程(第8版),中文完整扫描版,更清晰
【这个比上次的版本更清晰,也更大些,快230M了,要求高的可以下这个】《C#<em>高级编程</em>(第8版)》是C# 2012和.NET 4.5高级技术的终极资源,旨在帮助读者更新、提高用C# 2012和.NET 4.5编写Windows应用程序、Web应用程序、Windows 8样式应用程序的技巧。
c#高级编程(10)随书源码 百度网盘分享地址
Visual Studio 2015、ASP.NET Core 1.0和Universal Windows Platform的推出, 为开发人员提供了使用C#创建应用程序的新方式。作为经典C#畅销书 ,C#<em>高级编程</em>(第10版)涵盖了充分利用升级功能, 积极简化工作流程所需的全部信息。本书循序渐进地讲解了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#高级编程----小结
总结 概括  委托是寻址方法的.NET版本,类似于C++中的指针.委托可以理解为指向函数的指针,它是类型安全的,定义了具体的参数和返回值. 定义一个委托,实际上是定义一个类,委托是对方法的引用,如方法Func,把功能交给委托的类来实现. 委托的作用:结合泛型,可以实现功能上的扩展(如针对整型的函数,可以通过委托指向多种函数,实现类中某个属性的比较).Lambda表达式需要使用委托定义.事件
C#高级编程第七版(完整)
目录编辑 第1部分<em>c#</em>语言 第1章.net体系结构 1.1 <em>c#</em>与.net的关系 1.2 公共语言运行库 1.2.1 平台无关性 1.2.2 提高性能 1.2.3 语言的互操作性 1.3 中间语言 1.3.1 面向对象和接口的支持 1.3.2 不同的值类型和引用类型 1.3.3 强数据类型化 1.3.4 通过异常处理错误 1.3.5 特性的使用 1.4 程序集 1.4.1 私有程序集 1.4.2 共享程序集 1.4.3 反射 1.4.4 并行编程 1.5.netframework类 1.6 名称空间 .1.7 用<em>c#</em>创建.net应用程序 1.7.1 创建.net应用程序 1.7.2 创建windows窗体 1.7.3 使用wpf 1.7.4windows控件 1.7.5windows服务 1.7.6wcf 1.7.7windows wf 1.8 <em>c#</em>在.net企业体系结构中的作用 1.9 小结 第2章 核心<em>c#</em> 2.1 第一个<em>c#</em>程序 2.1.1 代码 2.1.2 编译并运行程序 2.1.3 详细介绍 2.2 变量 2.2.1 变量的初始化 2.2.2 类型推断 2.2.3 变量的作用域 2.2.4 常量 2.3 预定义数据类型 2.3.1 值类型和引用类型 2.3.2cts类型 2.3.3 预定义的值类型 2.3.4 预定义的引用类型 2.4 流控制 2.4.1 条件语句 2.4.2 循环 2.4.3 跳转语句 2.5 枚举 2.6 名称空间 2.6.1using语句 2.6.2 名称空间的别名 2.7 main()方法 2.7.1 多个main()方法 2.7.2 给main()方法传递参数 2.8 有关编译<em>c#</em>文件的更多内容 2.9 控制台i/o 2.10 使用注释 2.10.1 源文件中的内部注释 2.10.2xml文档 2.11 <em>c#</em>预处理器指令 2.11.1#define和under 2.11.2#if #elif,#else和#endif 2.11.3#warning和#error 2.11.4#region和#endregion 2.11.5#line 2.11.6#pmgma 2.12 <em>c#</em>编程规则 2.12.1 关于标识符的规则 2.12.2 用法约定 2.13小结 第3章 对象和类型 3.1 类和结构 3.2 类 3.2.1 数据成员 3.2.2 函数成员 3.2.3 只读字段 3.3 匿名类型 3.4 结构 3.4.1 结构是值类型 3.4.2 结构和继承 3.4.3 结构的构造函数 3.5 部分类 3.6 静态类 3.7 object类 3.7.1system. object()方法 3.7.2to sing()方法 3.8 扩展方法 3.9 小结 第4章 继承 4.1 继承的类型 4.1.1 实现继承和接口继承 4.1.2 多重继承 4.1.3 结构和类 4.2 实现继承 4.2.1 虚方法 4.2.2 隐藏方法- 4.2.3 调用函数的基类版本 4.2.4 抽象类和抽象函数 4.2.5 密封类和密封方法 4.2.6 派生类的构造函数 4.3 修饰符 4.3.1 可见性修饰符 4.3.2 其他修饰符 4.4 接口 4.4.1 定义和实现接口 4.4.2 派生的接口 4.5 小结 第5章 泛型 5.1 概述 5.1.1 性能 5.1.2 类型安全 5.1.3 二进制代码的重用 5.1.4 代码的扩展 5.1.5 命名约定 5.2 创建泛型类 5.3 泛型类的功能 5.3.1 默认值 5.3.2 约束 5.3.3 继承 5.3.4 静态成员 5.4 泛型接口 5.4.1 协变和抗变 5.4.2 泛型接口的协变 5.4.3 泛型接口的抗变 5.5 泛型结构 5.6 泛型方法 5.6.1 泛型方法示例 5.6.2 带约束的泛型方法 5.6.3 带委托的泛型方法 5.6.4 泛型方法规范 5.7 小结 第6章 数组 6.1 简单数组 6.1.1 数组的声明 6.1.2 数组的初始化 6.1.3 访问数组元素 6.1.4 使用引用类型 6.2 多维数组 6.3 锯齿数组 6.4 array类 6.4.1 创建数组 6.4.2 复制数组 6.4.3 排序 6.5 数组作为参数 6.5.1 数组协变 6.5.2 array segment 6.6 枚举 6.6.1ienumerator接口 6.6.2foreach语句 6.6.3yield语句 6.7 元组 6.8 结构比较 6.9 小结 第7章 运算符和类型强制转换 7.1 运算符 7.1.1 运算符的简化操作 7.1.2 运算符的优先级 7.2 类型的安全性 7.2.1 类型转换 7.2.2 装箱和拆箱 7.3 比较对象的相等性 7.3.1 比较引用类型的相等性 7.3.2 比较值类型的相等性 7.4 运算符重载 7.4.1 运算符的工作方式 7.4.2 运算符重载的示例:vector结构 7.5 用户定义的类型强制转换 7.5.1 实现用户定义的类型强制转换 7.5.2 多重类型强制转换 7.6 小结 第8章 委托、lambda表达式 和事件 8.1 委托 8.1.1 声明委托 8.1.2 使用委托 8.1.3 简单的委托示例 8.1.4 action和func委托 8.1.5bubble sorter示例 8.1.6 多播委托 8.1.7 匿名方法 8.2 lambda表达式 8.2.1 参数 8.2.2 多行代码 8.2.3lambda表达式外部的变量 8.3 事件 8.3.1 事件发布程序 8.3.2 事件侦听器 8.3.3 弱事件 8.4 小结 第9章 字符串和正则表达式 9.1 system .string类 9.1.1 创建字符串 9.1.2string builder成员 9.1.3 格式字符串 9.2 正则表达式 9.2.1 正则表达式概述 9.2.2regular expressions playaround示例 9.2.3 显示结果 9.2.4 匹配、组合和捕获 9.3 小结 第10章 集合 10.1 集合接口和类型 10.2 列表 10.2.1 创建列表 10.2.2 只读集合 10.3 队列 10.4 栈 10.5 链表 10.6 有序列表 10.7 字典 10.7.1 键的类型 10.7.2 字典示例 10.7.3lookup类 10.7.4 有序字典 10.8 集 10.9 可观察的集合 10.10位数组 10.10.1bitarray类 10.10.2bitvector32结构 10.11并发集合 10.12性能 10.13小结 第11章linq 11.1 linq概述 11.1.1 列表和实体 11.1.2linq查询 11.1.3 扩展方法 11.1.4 推迟查询的执行 11.2 标准的查询操作符 11.2.1 筛选 11.2.2 用索引筛选 11.2.3 类型筛选 11.2.4 复合的from子句 11.2.5 排序 11.2.6 分组 11.2.7 对嵌套的对象分组 11.2.8 连接 11.2.9 集合操作 11.2.10 合并 11.2.11 分区 11.2.12 聚合操作符 11.2.13 转换 11.2.14 生成操作符 11.3 并行linq 11.3.1 并行查询 11.3.2 分区器 11.3.3 取消 11.4 表达式树 11.5 linq提供程序 11.6 小结 第12章 动态语言扩展 12.1 dlr 12.2 dyllamic类型 12.3 包含dlr script runtime 12.4 dymamicobject和expandoobject 12.4.1dynamicobjiect 12.4.2expandoobiect 12.5 小结 第13章 内存管理和指针 13.1 后台内存管理 13.1.1 值数据类型 13.1.2 引用数据类型 13.1.3 垃圾回收 13.2 释放非托管的资源 13.2.1 析构函数¨ 13.2.2idisposable接口 13.2.3 实现idisposable接口和析构函数 13.3 不安全的代码 13.3.1 用指针直接访问内存 13.3.2 指针示例:pointer playground 13.3.3 使用指针优化性能 13.4 小结 第14章 反射 14.1 自定义特性 14.1.1 编写自定义特性 14.1.2 自定义特性示例:whatsnew attributes …… 第15章 错误和异常 第Ⅱ部分visual studio 第16章visual studio 2010 第17章 部署 第Ⅲ部分 基础 第18章 程序集 第19章 检测 第20章 线程、任务和同步 第21章 安全性 第22章 本地化 第23章system .transactions 第24章 网络 第25章windows服务 第26章 互操作性 第27章 核心xaml 第28章managed extensibility
Android C++高级编程--使用NDK 读书笔记(一)基础介绍
安装ndk:安装后,SDK下会出现ndk-bundle文件夹,这个就是NDK。NDK 不是一个单独的工具,它是一个包含API、交叉编译器、链接程序、调试器、构建工具、文档和示例应用程序的综合工具集。SDK下的ndk-bundle文件夹:...
c#高级编程(第10版)高清原版.pdf
<em>c#</em><em>高级编程</em>(第10版)【原版非扫描】【目录完整】 书名页 版权页 译者序 作者简介 技术编辑简介 致谢 前言 目录 第Ⅰ部分 C#语言 第1章 .NET应用程序体系结构 1.1 选择技术 1.2 回顾.NET历史 1.2.1 C#1.0——一种新语言 1.2.2 带有泛型的C# 2和.NET 2 1.2.3 .NET 3.0 —— Windows Presentation Foundation 1.2.4 C# 3和.NET 3.5——LINQ 1.2.5 C# 4和.
c#高级编程(第10版) pdf 文字版 非扫描版 清晰
<em>c#</em><em>高级编程</em>第10版是C#经典名著C#<em>高级编程</em>的第十个版本,本书由微软开发技术代言人Christian Nagel编著,李铭翻译。全书涵盖了充分利用升级功能,积极简化工作流程所需的全部信息。作者循序渐进地讲解了Visual Studio 2015、.NET Core 1.0、ASP.NET MVC、Universal Windows Platform、WPF的全新变化。
C#高级编程(一)
1.字符串和正则表达式1,CompareTo()方法,比较字符串的内容2,Replace()用另一个字符或者字符串替换字符串中给定的字符或者字符串3,Split()在出现给定字符的地方,把字符串拆分称一个字符串数组4,SubString()在字符串中检索给定位置的子字符串5,ToLower()把字符串转换成小写形式6,ToUpper()把字符串转换成大写形式7,Trim()删除首尾的空白8,Con...
C#高级编程(第10版) C# 6 & .NET Core (文字版epub)
C#<em>高级编程</em>(第10版) C# 6 & .NET Core 1.0 书籍,电子文档,epub,可在手机上随时阅览,也可以使用Edge浏览器打开,也可以转化为PDF格式。
C#高级编程(第10版)C# 6 & .NET Core 1.0 中文完整扫描版(附源码)
C#<em>高级编程</em>(第10版)C# 6 & .NET Core 1.0 中文完整扫描版(附源码) 第Ⅰ部分 C# 语 言 第Ⅱ部分 .NET Core与Windows 第Ⅲ部分 Windows应用程序 第Ⅳ部分 Web应用程序和服务
C# 高级编程 第10版 45章全目录
C# <em>高级编程</em> 第10版 C# 6.0 & .NET Core 1.0,函盖了C# 6.0 的所有核心内容,本文档含45章全目录
C#高级编程 第8版 完整高清PDF版
《C#<em>高级编程</em>》 第8版 完整 高清 中文版 《C#<em>高级编程</em>》第8版是C# 2012和.NET 4.5高级技术的终极资源,旨在帮助读者更新、提高用C# 2012和.NET 4.5编写Windows应用程序、Web应用程序、Windows 8样式应用程序的技巧。
C#高级编程第10版(带源码)
<em>c#</em><em>高级编程</em>第10版是C#经典名著C#<em>高级编程</em>的第十个版本,本书由微软开发技术代言人Christian Nagel编著,李铭翻译。全书涵盖了充分利用升级功能,积极简化工作流程所需的全部信息。作者循序渐进地讲解了Visual Studio 2015、.NET Core 1.0、ASP.NET MVC、Universal Windows Platform、WPF的全新变化。每一章都提供了清晰的解释、下载的代码,并从专家的角度提供了有价值的视野。有本书在手,读者可以快速获得全新的特性和功能,欢迎免费下载阅读。
解读经典《C#高级编程》第七版 Page50-68.核心C#.Chapter2
前言   本篇讲述Main方法,控制台,注释,预处理指令,编程规范等。这些概念比较琐碎,为避免长篇大论,主要以列举要点的方式来说明。   01 Main方法   Main方法并不是所有应用类型的入口方法,它只是控制台程序、Winform程序的入口方法。 创建项目时自动生成的Main方法,其修饰符是未指定的(未指定时默认为private),这说明入口方法并不要求public修饰符。 ...
作为QA角色去产品部门,想要了解某个产品部门的研发情况,应该从哪几个方面入手
上午,一来到公司,经理就给了我一个思考题:想要了解xx公司产品部门的研发情况,大家会想从哪几个方面<em>入手</em>? 以下是我的回答: 我从两个层面思考这个问题, 一、产品的整体 年初立项时每个产品都有自己的立项文件,其中包含项目预算(人工预算、外协预算.....)、项目研究计划、项目里程碑信息、项目成员信息、各类项目指标....,在当前时间节点调研该 产品的研发情况,需要向产品经理、项目经理了解产品
《C#高级编程 第七版》 中文 高清完整PDF版
扫描左侧二维码,回复:《C#<em>高级编程</em> 第七版》 中文 高清完整PDF版
C#高级编程(第七版)
C#入门级别的数,很受欢迎。值得<em>入手</em>。!!!。多读书,多看报,少吃零食多睡觉!!!
C#高级编程第10版中文PDF非扫描版带目录有示例源码
C#<em>高级编程</em>第10版,非扫描中文版PDF,文字内容可复制,带目录,带书中示例源码
C#高级编程(第10版)带源码
Visual Studio 2015、ASP.NET Core 1.0和Universal Windows Platform的推出,为开发人员提供了使用C#创建应用程序的新方式。作为经典C#畅销书 ,C#<em>高级编程</em>(第10版)涵盖了充分利用升级功能,积极简化工作流程所需的全部信息。本书循序渐进地讲解了Visual Studio 2015、.NET Core 1.0、ASP.NET MVC、Universal Windows Platform、WPF的最新变化。每一章都提供了清晰的解释、下载的代码,并从专家的角度提供了有价值的视野。有本书在手,读者可以快速获得最新的特性和功能。
C#高级编程练习题目(内附答案)
内有118道练习题,对初学者检验自己的学习程度有一定帮助,值得下载练习!
GDI+高级编程(C# 杨建昌,含目录)
GDI+<em>高级编程</em>(C# 杨建昌,含目录) 本资源转载自网络,如有侵权,请联系csdn管理员删除 查看此书详细信息请购买正版纸质
C#高级编程学习笔记(二)
31.比较值类型的相等性  ReferenceEquals()用于比较引用,Equals()用于比较值。比较运算符可以看作一个中间项,但最大的区别是值类型需要装箱才能把它转化为引用。 32.比较运算符重载 语句if(a==b)对于类,这个语句在默认状态下会比较引用a和b,检测这两个引用是否指向内存中的同一个地址,而不是检测两个实例实际上是否包含相同的数据。 C#要求成对的重载运算符,比较运算符必...
Java程序设计 11版 梁勇 覆盖jdk10 2018最新版 ,纯净原版pdf,非电子书转
java语言程序设计-原书第<em>11版</em>, 第<em>11版</em>使用的是JDK10, GUI是最新的JavaFX, 都是最新技术, 可以下载下来看看. 鄙视csdn不让预览,附一个某dao的预览,就是掏钱买的 ,只要一个csdn, http://www.doc88.com/p-7867817575392.html
NFC卡匠无敌版正版软件下载
NFC卡匠无敌版正版软件,需要配合卡匠正版加密狗使用 相关下载链接:[url=//download.csdn.net/download/yxr2005yxr/7583277?utm_source=bbsseo]//download.csdn.net/download/yxr2005yxr/7583277?utm_source=bbsseo[/url]
Flex 3 3d源码下载
Flex 360旋转 Flex 360旋转 Flex 360旋转 相关下载链接:[url=//download.csdn.net/download/rsnzh/2269373?utm_source=bbsseo]//download.csdn.net/download/rsnzh/2269373?utm_source=bbsseo[/url]
数据库课程设计--小型超市管理系统下载
由于时间原因本系统还是有诸多不足!!望大家见谅。 但是基本功能还是具全哦。正所谓麻雀虽小五脏具全。 相关下载链接:[url=//download.csdn.net/download/JXmantou/2495727?utm_source=bbsseo]//download.csdn.net/download/JXmantou/2495727?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链值不值得学习 python值不值得学习
我们是很有底线的