0%

基本信息

名称: CLR via C#(第3版)
作者信息: 作者: 瑞奇特 (Jeffrey Richter) [ 中文 pdf ]

简单介绍

《CLR via C#(第3版)》深入、全面探讨.NET Framework、CLR和多核编程,广泛讨论Framework Class Library(FCL)核心类型,对泛型和线程处理等深奥难懂的开发概念提供权威、实用的指导自下而上,由浅入深掌握CLR和.NET的权威指南享有全球盛誉的编程专家Jeffrey Richter,这位与Microsoft.NET开发团队合作长达8年时间的资深顾问,在《CLR via C#(第3版)》中和读者分享他编程生涯中积累的所有丰富经验和心得,他的独到。睿智的见解,他的远见卓识,为开发人员构建健壮、可靠和具有良好响应能力的应用程序与组件奠定了良好的基础。
《CLR via C#(第3版)》重要主题:构建、部署应用程序、组件和共享程序集,并对它们进行版本管理;理解基元类型、值类型和引用类型的行为,从而最高效地定义和使用它们;使用泛型和接口来定义可重用的算法;高效使用特定的CLR类型——委托、枚举、定制attribute、数组和字符串;理解垃圾回收器是如何管理内存资源的;使用线程池、任务、取消、计时器和异步I/O操作来设计响应性强、稳定性高和伸缩性大的解决方案·借助于异常处理来进行状态管理·使用CLR寄宿AppDomain、程序集加载、反射和C#的dynamic类型来构造具有动态扩展能力的应用程序。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
第I部分 CLR基础
第1章 CLR的执行模型
1.1 将源代码编译成托管模块
1.2 将托管模块合并成程序集
1.3 加载公共语言运行时
1.4 执行程序集的代码
1.4.1 IL和验证
1.4.2 不安伞的代码
1.5 本地代码生成器:NGen.exe
1.6 Framework类库
1.7 通用类型系统
1.8 公共语言规范
1.9 与非托管代码的互操作性
第2章 生成、打包、部署和管理应用程序及类型
2.1.NETFramework部署目标
2.2 将类型生成到模块中响应文件
2.3元数据概述
2.4 将模块合并成程序集
2.4.1 使用Visual Studio IDE将程序集添加到项目中
2.4 :2使用程序集链接器
2.4.3 为程序集添加资源文件
2.5 程序集版本资源信息
2.6 语言文化
2.7 简单应用程序部署(私有部署的程序集)
2.8 简单管理控制(配置)
第3章 共享程序集和强命名程序集
3.1 两种程序集,两种部署
3.2 为程序集分配强名称
3.3 全局程序集缓存
3.4 在生成的程序集中引用一个强命名程序集
3.5 强命名程序集能防范篡改
3.6 延迟签名
3.7 私有部署强命名程序集
3.8 “运行时”如何解析类型引用
3.9 高级管理控制(配置)发布者策略控制
第II部分 设计类型
第4章 类型基础
4.1 所有类型都从System Object派生
4.2 类型转换
4.3 命名空间和程序集
4.4 运行时的相互联系
第5章 基元类型、引用类型和值类型
5.1 编程语言的基元类型
5.2 引用类型和值类型
5.3 值类型的装箱和拆箱
5.3.1 使用接口更改已装箱值类型中的字段(以及为什么不应该这样做)
5.3.2 对象相等性和同一性
5.4 对象哈希码
5.5 dynamic基元类型
第6章 类型和成员基础
6.1 类型的各种成员
6.2 类型的可见性
友元程序集
6.3 成员的可访问性
6.4 静态类
6.5 分部类、结构和接口
6.6 组件、多态和版木控制
6.6.1 CLR如何调用虚方法、属十和事件
6.6.2 合理使用类型的可见性和成员的可访问性
6.6.3对类型进行版本控制时的虚方法的处理
第7章 常量和字段
7.1 常量
7.2字段
第8章 方法
8.1 实例构造器和类(引用类型)
8.2 实例构造器和结构(值类型)
8.3 类型构造器
8.4 操作符重载方法
8.5 转换操作符方法
8.6 扩展方法
8.6.1 规则和原则
8.6.2 用扩展方法扩展各种类型
8.6.3 Extension Attribute类
8.7 分部方法
第9章参数
9.1 可选参数和命名参数
9.1.1 规则和原则
9.1.2 DefaultParameterValueAttribute和OptionalAttribute
9.2 隐式类型的局部变量
9.3 传引用的方式向方法传递参数
9.4 向方法传递可变数量的参数
9.5 参数和返回类型的指导原则
9.6 常量性
第10章 属性
10.1 无参属性
10.1.1 自动实现的属性
10.1.2 合理定义属性
10.1.3 对象和集合初始化器
10.1.4 匿名类型
10.1.5 SystemTuple类型
l0.2 有参属性
10.3 调用属性访问器方法时的性能
10.4 属性访问器的可访问性
10.5 泛型属性访问器方法
第11章 事件
11.1 设计要公开事件的类型
11.1.1 第一步:定义类型来容纳所需要发送给事件通知接收名的附加信息
11.1.2 第二步:定义事件成员
11.1.3第三步:定义负责引发事件的方法来通知事件的登记对象
11.1.4 第四步:定义方法将输入转化为期望事件
11.2 编译器如何实现事件
11.3 设计侦听事件的类型
11.4 显式实现事件
第12章 泛型
12.1 Framework类库巾的泛型
l2.2 Wintellect的PowerCollections库
12.3泛型基础结构
12.3.1 开放类型和封闭类型
12.3.2 泛型类型和继承
12.3.3泛型类型同一性
12.3.4 代码爆炸
12.4 泛型接口
12.5 泛型委托
12.6 委托和接口的逆变和协变泛型类型实参
12.7 泛型方法
12.8 泛型和其他成员
12.9 可验证性和约束
12.9.1 主要约束
12.9.2 次要约束
12.9 .3构造器约束
12.9.4 其他可验证性问题
第III部分 基本类型
第13章接口
13.1 类和接口继承
13.2 定义接口
13.3 继承接口
13.4 关于调用接口方法的更多探讨
13.5 隐式和显式接口方法实现(幕后发生的事情)
13.6 泛型接口
13.7 泛型和接口约束
13.8 实现多个具有相同方法名和签名的接口
13.9 用显式接口方法实现来增强编译时类型安全性
13.10 谨慎使用显式接口方法实现
13.11 设计:基类还是接口
第14章 字符、字符串和文本处理
14.1 字符
14.2 System. String类型
14.2.1 构造字符串
14.2.2 字符串是不可变的
14.2.3 比较字符串
14.2.4 字符串留用
14.2.5 字符串池
14.2.6 检查字符串中的字符和文本元素
14.2.7 其他字符串操作
14.3高效率构造字符串
14.3.1 构造String Builder对象
14.3.2 StringBuilder的成员
14.4 获取对象的字符串表示:ToString
14.4.1 指定具体的格式和语言文化
14.4 .2将多个对象格式成一个字符串
14.4 .3提供定制格式化器
14.5 解析字符串来获取对象:Parse
14.6 编码:字符和字节的相互转换
14.6.1 字符和字节流的编码和解码
14.6.2 Base.6 4字符串编码和解码
14.7 安全字符串
第15章 枚举类型和位标志
15.1 枚举类型
15.2位标志
15.3向枚举类型添加方法
第16章 数组
16.1 初始化数组元素
16.2 数组转型
16.3 所有数组都隐式派生自System Array
16.4 所有数组都隐式实现。IEnumerablelcollection和IList
16.5 数组的传递和返回
16.6 创建下限非零的数组
16.7 数组的访问性能
16.8 不安伞的数组访问和固定大小的数组
第17章 委托
17.1 初识委托
17.2用委托回调静态方法
17.3用委托回调实例方法
17.4 委托揭秘
17.5 用委托回调许多方法(委托链)
17.5.1 C舟对委托链的支持
17.5 .2取得对委托链调用的更多控制
17.6 委托定义太多(泛型委托)
17.7 C#为委托提供的简化语法
17.7.1 简化语法1:不需要构造委托对象
17.7.2 简化语法2:不需要定义回调方法
17.7 .3简化语法3:局部变量不需要手动包装到类中即可传给回调方法
17.8 委托和反射
第18章 定制attribute
18.1 使用定制attribute
18.2 定义自己的attribute类
18.3 attribute的构造器和字段/属性的数据类型
18.4 检测定制attribute
18.5 两个attribute实例的相互匹配
18.6 检测定制attribute时不创建从Attribute派生的对象
18.7 条件attribute类
第19章 可空值类型
19.1 C#对可窄值类型的支持
19.2 C#的空接合操作符
19.3 CLR对可空值类型的特殊支持
19.3.1 可空值类型的装箱
19.3.2 可空值类型的拆箱
19.3 .3通过可空值类型调用Get Type
19.3.4 通过可空值类型调用接口方法
第Ⅳ部分 核心机制
第20章 异常和状态管理
20.1 定义“异常
20.2 异常处理机制
20.2.1 try块
20.2.2 catch块
20.2 .3finalb,块
20.3System.Exception类
20.4 FCL定义的异常类
20.5 抛出异常
20.6 定义自己的异常类
20.7 用可靠性换取开发效率
20.8 指导原则和最佳实践
20.8.1 善用finally块
20.8 12不要什么都捕捉
20.8 .3得体地从异常中恢复
20.8.4 发生不可恢复的异常时回滚部分完成的操作——维持状态
20.8.5 隐藏实现细节来维系契约
20.9 未处理的异常
20.10 对异常进行调试
20.11 异常处理的性能问题
20.12 约束执行区域(CER)
20.13 代码契约
第21章 自动内存管理(垃圾回收)
21.1 理解垃圾回收平台的基小工作原理
21.2 垃圾回收算法
……
第22章 CLR寄宿和AppDomain
第23章 程序集加载和反射
第24章 运行时序列化
第V部分 线程处理

亚马逊链接

基本信息

名称: c#入门经典(第5版)
作者信息: 作者: 沃森 (Karli Watson) [ 中文 pdf ]

简单介绍

《C#入门经典(第5版)》编辑推荐:非常权威的Visual C和.NET软件开发书籍。August 5,2010,The Value lnvestor。《C#入门经典(第5版)》是初出茅庐的编程新手的良师益友。富有经验的编程人员则可使用。《C#入门经典(第5版)》巩固学习.NET架构、C#、OOP、Windows窗体、Web服务和ASP.NET等领域的知识。《C#入门经典(第5版)》将为读者深入研究这些领域的高级主题奠定坚实基础。“试一试”练习都简明扼要。我目前仍在学习《C#入门经典(第5版)》,乐此不疲,陶醉其中。
Wrox畅销书,C#经典名著!
2009年度全行业优秀畅销书品种!
2006~2008年最畅销的C群入门教程!
2008年全国高校出版社优秀销为一等奖!
2006年最受读者喜爱的十大技术开发类图书!
2005年最权威的十大IT图书!
C#2010最新版。
Wrox编程图书。
十周年新装庆生。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
第Ⅰ部分 C#语言
第1章 C#简介 3
1.1 .net framework的含义 3
1.1.1 .net framework的内容 4
1.1.2 使用.net framework编写应用程序 4
1.2 C#的含义 7
1.2.1 用C#能编写什么样的应用程序 7
1.2.2 本书中的C# 8
1.3 visual studio 2010 8
1.3.1 visual studio 2010 express产品 9
1.3.2 解决方案 9
1.4 小结 9
1.5 本章要点 10
第2章 编写C#程序 11
2.1 开发环境 12
2.1.1 visual studio 2010 12
2.1.2 visual C# 2010 express edition 14
2.2 控制台应用程序 15
2.2.1 solution explorer 19
2.2.2 properties窗口 20
2.2.3 error list窗口 20
2.3 windows forms应用程序 21
2.4 小结 25
2.5 本章要点 25
第3章 变量和表达式 27
3.1 C#的基本语法 27
3.2 C#控制台应用程序的基本结构 30
3.3 变量 31
3.3.1 简单类型 31
3.3.2 变量的命名 35
3.3.3 字面值 36
3.3.4 变量的声明和赋值 38
3.4 表达式 39
3.4.1 数学运算符 39
3.4.2 赋值运算符 43
3.4.3 运算符的优先级 44
3.4.4 名称空间 45
3.5 小结 47
3.6 练习 48
3.7 本章要点 49
第4章 流程控制 51
4.1 布尔逻辑 51
4.1.1 布尔赋值运算符 54
4.1.2 按位运算符 55
4.1.3 运算符优先级的更新 59
4.2 goto语句 60
4.3 分支 61
4.3.1 三元运算符 61
4.3.2 if语句 61
4.3.3 switCh语句 65
4.4 循环 68
4.4.1 do循环 68
4.4.2 while循环 71
4.4.3 for循环 73
4.4.4 循环的中断 77
4.4.5 无限循环 78
4.5 小结 78
4.6 练习 79
4.7 本章要点 79
第5章 变量的更多内容 81
5.1 类型转换 81
5.1.1 隐式转换 82
5.1.2 显式转换 83
5.1.3 使用Convert命令进行显式转换 86
5.2 复杂的变量类型 89
5.2.1 枚举 89
5.2.2 结构 93
5.2.3 数组 96
5.3 字符串的处理 102
5.4 小结 106
5.5 练习 107
5.6 本章要点 108
第6章 函数 109
6.1 定义和使用函数 110
6.1.1 返回值 111
6.1.2 参数 113
6.2 变量的作用域 120
6.2.1 其他结构中变量的作用域 122
6.2.2 参数和返回值与全局数据 124
6.3 main( )函数 125
6.4 结构函数 128
6.5 函数的重载 128
6.6 委托 130
6.7 小结 133
6.8 练习 133
6.9 本章要点 134
第7章 调试和错误处理 135
7.1 vs和vce中的调试 135
7.1.1 非中断(正常)模式下的调试 136
7.1.2 中断模式下的调试 144
7.2 错误处理 152
7.2.1 try…catch…finally 153
7.2.2 列出和配置异常 157
7.2.3 异常处理的注意事项 158
7.3 小结 159
7.4 练习 159
7.5 本章要点 159
第8章 面向对象编程简介 161
8.1 面向对象编程的含义 162
8.1.1 对象的含义 162
8.1.2 一切皆对象 165
8.1.3 对象的生命周期 165
8.1.4 静态和实例类成员 166
8.2 oop技术 167
8.2.1 接口 167
8.2.2 继承 169
8.2.3 多态性 171
8.2.4 对象之间的关系 172
8.2.5 运算符重载 173
8.2.6 事件 174
8.2.7 引用类型和值类型 174
8.3 windows应用程序中的oop 175
8.4 小结 177
8.5 练习 177
8.6 本章要点 178
第9章 定义类 179
9.1 C#中的类定义 179
9.2 system.objeCt 184
9.3 构造函数和析构函数 185
9.4 vs和vCe中的oop工具 190
9.4.1 Class view窗口 190
9.4.2 对象浏览器 192
9.4.3 添加类 193
9.4.4 类图 194
9.5 类库项目 196
9.6 接口和抽象类 199
9.7 结构类型 201
9.8 浅度和深度复制 203
9.9 小结 203
9.10 练习 204
9.11 本章要点 204
第10章 定义类成员 205
10.1 成员定义 205
10.1.1 定义字段 206
10.1.2 定义方法 206
10.1.3 定义属性 207
10.1.4 在类图中添加成员 212
10.1.5 重构成员 215
10.1.6 自动属性 216
10.2 类成员的其他议题 217
10.2.1 隐藏基类方法 217
10.2.2 调用重写或隐藏的基类方法 219
10.2.3 嵌套的类型定义 220
10.3 接口的实现 220
10.4 部分类定义 224
10.5 部分方法定义 225
10.6 示例应用程序 227
10.6.1 规划应用程序 227
10.6.2 编写类库 228
10.6.3 类库的客户应用程序 235
10.7 call hierarchy窗口 236
10.8 小结 237
10.9 练习 237
10.10 本章要点 238
第11章 集合、比较和转换 239
11.1 集合 239
11.1.1 使用集合 240
11.1.2 定义集合 246
11.1.3 索引符 247
11.1.4 给Cardlib添加Cards集合 250
11.1.5 关键字值集合和idiCtionary 252
11.1.6 迭代器 254
11.1.7 深复制 259
11.1.8 给Cardlib添加深复制 261
11.2 比较 263
11.2.1 类型比较 263
11.2.2 值比较 268
11.3 转换 283
11.3.1 重载转换运算符 284
11.3.2 as运算符 285
11.4 小结 286
11.5 练习 286
11.6 本章要点 287
第12章 泛型 289
12.1 泛型的概念 289
12.2 使用泛型 291
12.2.1 可空类型 291
12.2.2 system.ColleCtions.generiC名称空间 297
12.3 定义泛型类型 307
12.3.1 定义泛型类 308
12.3.2 定义泛型接口 319
12.3.3 定义泛型方法 319
12.3.4 定义泛型委托 321
12.4 变体 321
12.4.1 协变 322
12.4.2 抗变 323
12.5 小结 324
12.6 练习 324
12.7 本章要点 325
第13章 其他oop技术 327
13.1 ::运算符和全局名称空间限定符 327
13.2 定制异常 329
13.3 事件 331
13.3.1 事件的含义 331
13.3.2 处理事件 332
13.3.3 定义事件 334
13.4 扩展和使用Cardlib 343
13.5 小结 351
13.6 练习 352
13.7 本章要点 352
第14章 C#语言的改进 353
14.1 初始化器 353
14.1.1 对象初始化器 354
14.1.2 集合初始化器 356
14.2 类型推理 359
14.3 匿名类型 360
14.4 动态查找 364
14.4.1 dynamiC类型 365
14.4.2 idynamiCmetaobjeCtprovider 369
14.5 高级方法参数 369
14.5.1 可选参数 369
14.5.2 命名参数 371
14.5.3 命名参数和可选参数的规则 375
14.6 扩展方法 375
14.7 lambda表达式 379
14.7.1 复习匿名方法 379
14.7.2 把lambda表达式用于匿名方法 380
14.7.3 lambda表达式的参数 383
14.7.4 lambda表达式的语句体 384
14.7.5 lambda表达式用作委托和表达式树 385
14.7.6 lambda表达式和集合 386
14.8 小结 388
14.9 练习 389
14.10 本章要点 390
第Ⅱ部分 windows 编 程
第15章 windows编程基础 393
15.1 控件 393
15.1.1 属性 394
15.1.2 控件的定位、停靠和对齐 395
15.1.3 anchor和dock属性 395
15.1.4 事件 396
15.2 button控件 398
15.2.1 button控件的属性 398
15.2.2 button控件的事件 398
15.2.3 添加事件处理程序 399
15.3 label和linklabel控件 400
15.4 textbox控件 401
15.4.1 textbox控件的属性 401
15.4.2 textbox控件的事件 402
15.4.3 添加事件处理程序 404
15.5 radiobutton和CheCkbox控件 407
15.5.1 radiobutton控件的属性 408
15.5.2 radiobutton控件的事件 408
15.5.3 CheCkbox控件的属性 408
15.5.4 CheCkbox控件的事件 409
15.5.5 groupbox控件 409
15.6 riChtextbox控件 412
15.6.1 riChtextbox控件的属性 412
15.6.2 riChtextbox控件的事件 413
15.7 listbox和CheCkedlistbox控件 418
15.7.1 listbox控件的属性 418
15.7.2 listbox控件的方法 419
15.7.3 listbox控件的事件 420
15.8 listview控件 422
15.8.1 listview控件的属性 422
15.8.2 listview控件的方法 424
15.8.3 listview控件的事件 424
15.8.4 listviewitem 425
15.8.5 Columnheader 425
15.8.6 imagelist控件 425
15.9 tabControl控件 431
15.9.1 tabControl控件的属性 432
15.9.2 使用tabControl控件 432
15.10 小结 434
15.11 练习 434
15.12 本章要点 434
第16章 windows窗体的高级功能 435
第17章 部署windows应用程序 465
第Ⅲ部分 web 编 程
第18章 asp.net web编程 503
第19章 web服务 557
第20章 部署web应用程序 581
第Ⅳ部分 数 据 访 问
第21章 文件系统数据 597
第22章 xml 633
第23章 linq简介 657
第24章 应用linq 695
第Ⅴ部分 其 他 技 术
第25章 windows presentation
第26章 windows Communication Foundation 787
第27章 windows workflow foundation 819
附录A 习题答案 839

亚马逊链接

基本信息

名称: 面向对象程序设计:C++语言描述(原书第2版)
作者信息: 作者: 约翰逊鲍尔(Richard Johnsonbaugh) [ 中文 pdf ]

简单介绍

《面向对象程序设计:C++语言描述(原书第2版)》深刻论述了C++语言的面向对象程序设计的各种技术。内容包括:面向对象编程方法、C++语言的各种特性、STLC++输入/输出流、MFC等。《面向对象程序设计:C++语言描述(原书第2版)》配备了大量的习题,并列举了易犯的错误及避免错误的方法,易于读者的学习。
《面向对象程序设计:C++语言描述(原书第2版)》特点:结构合理、高效:内容讲解由浅入深、循序渐进。内容充实、实用:涵盖C++主要知识点,并附有经典实训案例。语言严谨、精练:结合实训案例,内容介绍层层展开、环环相扣。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
出版者的话
译者序
前言
第1章 面向对象编程
1.1 面向过程的编程风格与面向对象的编程风格
1.1.1 面向过程的编程风格
1.1.2 面向对象的编程风格
1.1.3 关系
1.1.4 课后练习
1.2 类与抽象数据类型
1.2.1 信息隐藏
1.2.2 封装
1.2.3 抽象数据类型
1.2.4 课后练习
1.3 客户/服务器模式与消息传递
1.3.1 客户/服务器模式
1.3.2 消息传递与方法调用
1.3.3 课后练习
1.4 继承与多态
1.4.1 继承
1.4.2 多态
1.4.3 多态与递归
1.4.4 课后练习
1.5 接口与组件
1.5.1 接口
1.5.2 组件
1.5.3 课后练习
第2章 从c到c++
2.1 名字空间
2.1.1 课后练习
2.2 c++输入/输出简介
2.2.1 操纵符
2.2.2 混合使用c和c++的输入/输出
2.2.3 课后练习
2.3 文件
2.3.1 测试文件的打开状态
2.3.2 课后练习
2.4 若干重要的c++特性
2.4.1 强制类型转换
2.4.2 常数
2.4.3 数据类型bool
2.4.4 枚举类型
2.4.5 定义变量
2.4.6 结构
2.4.7 课后练习
2.5 string类型
2.5.1 定义string类型的变量
2.5.2 转换为c风格的字符串
2.5.3 字符串长度
2.5.4 读写string
2.5.5 赋值
2.5.6 字符串的连接
2.5.7 修改字符串
2.5.8 提取子串
2.5.9 查找
2.5.10 字符串比较
2.5.11 课后练习
2.6 函数
2.6.1 函数原型
2.6.2 main函数
2.6.3 引用
2.6.4 引用调用
2.6.5 引用返回
2.6.6 内联函数
2.6.7 函数默认参数
2.6.8 函数重载
2.6.9 函数签名
2.6.10 课后练习
2.7 new和delete操作符
2.7.1 课后练习
2.8 例外处理
2.8.1 课后练习
2.9 补充材料
2.9.1 c++关键字
2.9.2 无名名字空间
2.9.3 无名联合
2.9.4 成员选择符
2.10 常见编程错误
2.11 编程习题
第3章 类
3.1 类和对象
3.1.1 类声明
3.1.2 c++的信息隐藏机制
3.1.3 成员选择符
3.1.4 类范围
3.1.5 关键字class和struct的区别
3.1.6 类成员函数的定义
3.1.7 在程序中使用类
3.1.8 课后练习
3.2 示例程序:堆栈类
3.2.1 问题
3.2.2 示例程序的输出
3.2.3 解决方案
3.2.4 类的实现
3.2.5 代码分析
3.2.6 程序设计建议
3.2.7 课后练习
3.3 效率和健壮性
3.3.1 通过引用来传递和返回对象
3.3.2 const类型参数的对象引用
3.3.3 const成员函数
3.3.4 对成员函数进行重载以便处理两种类型的字符串
3.3.5 课后练习
3.4 示例程序:时间标记类
3.4.1 问题
3.4.2 示例程序的输出
3.4.3 解决方案
3.4.4 类的实现
3.4.5 代码分析
3.4.6 程序设计建议
3.4.7 课后练习
3.5 构造函数与析构函数
3.5.1 构造函数
3.5.2 对象数组与默认构造函数
3.5.3 通过构造函数约束对象的创建
3.5.4 拷贝构造函数
3.5.5 定义拷贝构造函数
3.5.6 禁止通过传值方式传递和返回类对象
3.5.7 转型构造函数
3.5.8 转型构造函数与隐式类型转换
3.5.9 构造函数初始化程序
3.5.10 构造函数与操作符new和new[]
3.5.11 析构函数
3.5.12 课后练习
3.6 示例程序:task类
3.6.1 问题
3.6.2 示例程序的输出
3.6.3 解决方案
3.6.4 类的实现
3.6.5 代码分析
3.6.6 课后练习
3.7 类数据成员和类成员函数
3.7.1 类数据成员
3.7.2 类成员函数
3.7.3 在成员函数内定义static变量
3.7.4 课后练习
3.8 指向对象的指针
3.8.1 常量指针this
3.8.2 课后练习
3.9 常见编程错误
3.10 编程习题
第4章 继承
4.1 引言
4.1.1 课后练习
4.2 基本概念和语法
4.2.1 继承机制下的私有成员
4.2.2 改变访问限制
4.2.3 名字隐藏
4.2.4 间接继承
4.2.5 课后练习
4.3 示例程序:影片跟踪管理
4.3.1 问题
4.3.2 示例程序的输出
4.3.3 解决方案
4.3.4 类的实现
4.3.5 代码分析
4.3.6 程序设计建议
4.4 保护成员
4.4.1 课后练习
4.5 继承机制下的构造函数与析构函数
4.5.1 继承机制下的构造函数
4.5.2 派生类构造函数的规则
4.5.3 继承机制下的析构函数
4.5.4 课后练习
4.6 示例程序:设计序列的类层次结构
4.6.1 问题
4.6.2 示例程序的输入与输出
4.6.3 解决方案
4.6.4 类的实现
4.6.5 代码分析
4.7 多继承
4.7.1 继承和访问规则
4.7.2 虚基类
4.7.3 课后练习
4.8 补充材料
4.8.1 保护继承
4.8.2 私有继承
4.9 常见编程错误
4.10 编程习题
第5章 多态
5.1 c++中的运行期绑定与编译期绑定
5.1.1 c++多态的前提条件
5.1.2 虚成员函数继承
5.1.3 运行期绑定和虚成员函数表
5.1.4 构造函数与析构函数
5.1.5 虚析构函数
5.1.6 对象成员函数和类成员函数
5.1.7 课后练习
5.2 示例程序:改进的影片跟踪管理
5.2.1 问题
5.2.2 示例程序的输入/输出
5.2.3 解决方案
5.2.4 类的实现
5.2.5 代码分析
5.2.6 程序设计建议
5.2.7 课后练习
5.3 重载、覆盖和遮蔽
5.3.1 重载
5.3.2 覆盖
5.3.3 遮蔽
5.3.4 名字共享
5.3.5 课后练习
5.4 抽象基类
5.4.1 抽象基类和纯虚成员函数
5.4.2 定义纯虚成员函数的限制
5.4.3 抽象基类的使用
5.4.4 微软的iunknown接口
5.4.5 课后练习
5.5 运行期类型识别
5.5.1 dynamic_cast操作符
5.5.2 dynamic_cast的规则
5.5.3 dynamic_cast与static_cast小结
5.5.4 typeid操作符
5.5.5 扩展rtti
5.5.6 课后练习
5.6 补充材料
5.6.1 强多态和弱多态
5.7 常见编程错误
5.8 编程习题
第6章 操作符重载
6.1 基本操作符重载
6.1.1 操作符的优先级和语法
6.1.2 课后练习
6.2 示例程序:复数类
6.2.1 问题
6.2.2 示例程序的输出
6.2.3 解决方案
6.2.4 类的实现
6.2.5 代码分析
6.2.6 课后练习
6.3 用顶层函数进行操作符重载
6.3.1 课后练习
6.4 friend函数
6.4.1 课后练习
6.5 输入与输出操作符的重载
6.5.1 课后练习
6.6 赋值操作符的重载
6.6.1 课后练习
6.7 特殊操作符的重载
6.7.1 下标操作符的重载
6.7.2 函数调用操作符的重载
6.7.3 自增与自减操作符的重载
6.7.4 转型操作符
6.7.5 课后练习
6.8 示例程序:关联式数组
6.8.1 问题
6.8.2 示例程序的输入与输出
6.8.3 解决方案
6.8.4 类的实现
6.8.5 代码分析
6.8.6 课后练习
6.9 内存管理操作符
6.9.1 课后练习
6.10 补充材料
6.10.1 friend类
6.11 常见编程错误
6.12 编程习题
第7章 模板与标准模板库
7.1 模板的基本知识
7.1.1 模板实例
7.1.2 参数表中的模板类
7.1.3 模板的函数式参数
7.1.4 课后练习
7.2 示例程序:模板堆栈类
7.2.1 问题
7.2.2 示例程序的输出
7.2.3 解决方案
7.2.4 类的实现
7.2.5 代码分析
7.2.6 程序设计建议
7.2.7 断言
7.2.8 课后练习
7.3 标准模板库stl
7.3.1 容器、算法和迭代器
7.3.2 stl的优越性
7.3.3 容器基础知识
7.3.4 基本序列式容器:vector、deque和list
7.3.5 vector、deque和list的效率比较
7.3.6 基本的关联式容器:set、mult- iset、map和multimap
7.3.7 容器适配器
7.3.8 其他容器
7.3.9 stl算法
7.3.10 其他stl构件
7.3.11 课后练习
7.4 示例程序:证券业绩报表
7.4.1 问题
7.4.2 示例程序的输入与输出
7.4.3 解决方案
7.4.4 类的实现
7.4.5 代码分析
7.5 附加材料
7.5.1 模板类与继承
7.6 常见编程错误
7.7 编程习题
第8章 c++输入输出类层次
8.1 概况
8.1.1 输入输出库中的流类层次
8.1.2 输入输出库中的缓冲类层次
8.1.3 缓冲类层次与流类层次的关系
8.1.4 模板的使用
8.1.5 课后练习
8.2 ios_base和basic_ios类
8.2.1 ios_base
8.2.2 basic_ios
8.2.3 例外处理
8.2.4 课后练习
8.3 高层输入输出类
8.3.1 basic_istream
8.3.2 basic_ostream
8.3.3 basic_iostream
8.3.4 课后练习
8.4 操纵器
8.4.1 设计不带参数的操纵器
8.4.2 设计带参数的操纵器
8.4.3 课后练习
8.5 文件输入输出类
8.5.1 basic_ofstream
8.5.2 basic_ifstream
8.5.3 basic_fstream
8.5.4 课后练习
8.6 示例程序:随机存取文件类
8.6.1 问题
8.6.2 示例程序的输入与输出
8.6.3 解决方案
8.6.4 类的实现
8.6.5 代码分析
8.7 字符流输入/输出类
8.7.1 basic_ostringstream
8.7.2 basic_istringstream
8.7.3 basic_stringstream
8.7.4 课后练习
8.8 示例程序:高层拷贝函数
8.8.1 问题
8.8.2 解决方案
8.8.3 类的实现
8.8.4 代码分析
8.8.5 课后练习
8.9 缓冲区类
8.9.1 basic_streambuf
8.9.2 basic_filebuf
8.9.3 basic_stringbuf
8.9.4 课后练习
8.10 补充材料
8.11 常见编程错误
8.12 编程习题
第9章 mfc中的面向对象编程
9.1 用mfc进行windows程序设计
9.1.1 mfc编程的代码生成器
9.1.2 课后练习
9.2 mfc中的文档/视图结构
9.2.1 文档序列化
9.2.2 课后练习
9.3 示例程序:文档序列化
9.3.1 问题
9.3.2 示例程序的输出
9.3.3 解决方案
9.3.4 类的实现
9.3.5 代码分析
9.3.6 课后练习
9.4 com
9.4.1 可更改的服务器和不可变更的接口
9.4.2 com接口的层次
9.4.3 idispatch接口
9.4.4 com程序的类型
9.4.5 vc++对com的支持
9.4.6 com和ole
9.4.7 课后练习
9.5 示例程序:自动化服务器与控制器
9.5.1 问题
9.5.2 示例程序的输出
9.5.3 解决方案
9.5.4 类的实现
9.5.5 代码分析
9.5.6 引用计数问题
9.5.7 课后练习
9.6 补充材料
9.7 编程习题
附录a ascii表
附录b 用到的c++函数和成员函数
附录c 奇数编号练习的提示及答案

亚马逊链接

基本信息

名称: C#设计模式
作者信息: 作者: 库珀(James W.Cooper) [ 中文 pdf ]

简单介绍

《C#设计模式》针对日常的软件开发问题,设计模式提供了一种优雅的、通用的可重用解决方案。程序员可以通过设计模式组织程序中的对象,使其更易于编写和修改。《C#设计模式》正是一本设计模式的实用指南,帮助你采用最常见的模式来编写C#程序。《C#设计模式》由James W. Cooper编著,首先简明扼要地介绍了C#、面向对象编程、继承和UML图,然后分章描述了23种设计模式及各自的使用场合,并阐明了模式在大型设计中的作用。每种模式的用法都配有相应的示例程序演示,这些程序收录在随书配套光盘中,可以直接运行、测试、编辑和使用。设计模式不难学!资深开发工程师20年经验心得,为你呈现……经过如下实践,设计模式将对你的工作产生深远影响。设计模式不仅可以提高工作效率,而且会成为C#程序设计中不可或缺的组成部分。将设计模式有效地应用于日常编程工作中,使用模式创建复杂、健壮的C#程序,采用UML图展示类之间的交互,使用设计模式提高编程技巧。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
第1部分 面向对象的C#编程
第1章 什么是设计模式
1.1 定义设计模式
1.2 学习进程
1.3 学习设计模式
1.4 关于面向对象方法的说明
1.5 C#设计模式
1.6 本书的内容组织

第2章 C#语法 2.1 数据类型 2.2 数值与串之间的转换 2.3 声明多个变量 2.4 数值常量 2.5 字符常量 2.6 变量 2.7 用于初始化的连等号 2.8 一个简单的C#程序 2.9 算术运算符 2.10 递增和递减运算符 2.11 合并运算语句和赋值语句 2.12 C#中的判断 2.13 比较运算符 2.14 组合条件 2.15 最常见的错误 2.16 switch语句 2.17 C#的注释 2.18 有争议的三元运算符 2.19 C#中的循环语句 2.20 while循环 2.21 do-while语句 2.22 for循环 2.23 在for循环中根据需要声明变量 2.24 for循环语句中的逗号 2.25 C#与C的不同之处 2.26 C#与Java的不同之处 2.27 小结

第3章 编写C#版的Windows程序 3.1 C#中的对象 3.2 受管语言和垃圾收集 3.3 C#中的类和命名空间 3.4 构建C#应用 3.5 用C#编写的最简单的窗口程序 3.6 Windows控件 3.6.1 标签(Label) 3.6.2 文本框(TextBox) 3.6.3 复选框(CheckBox) 3.6.4 按钮(Button) 3.6.5 单选按钮(Radio Button) 3.6.6 列表框(ListBox)和组合框(ComboBox) 3.6.7 项目集合(Item Collection) 3.6.8 菜单(Menu) 3.6.9 工具提示(ToolTjp) 3.7 Windows控件程序 3.8 小结 3.9 配套光盘上的程序

第4章 在C#中使用类和对象 4.1 使用类的用意所在 4.2 一个简单的温度转换程序 4.3 构建一个Temperature类 4.4 把判断放入到Temperature类中 4.5 使用格式化类和值转换类 4.6 串的分词器类 4.7 作为对象的类 4.8 类包含 4.9 初始化 4.10 类和属性 4.11 C#编程风格 4.12 委派 4.13 索引器 4.14. 运算符重载 4.15 小结 4.16 配套光盘上的程序

第5章 继承 5.1 构造函数 5.2 C#中的绘图和图形 5.3 使用继承 5.4 命名空间 5.5 公有的、私有的和受保护的 5.6 重载 5.7 virtual和override关键字 5.8 在派生类中重写方法 5.9 使用new关键字来替换方法 5.10 重写Windows控件 S.11 接口 5.12 抽象类 5.13 比较接口和抽象类 5.14 小结 5.15 配套光盘上的程序

第6章 UML图 6.1 继承 6.2 接口 6.3 组合 6.4 注解 6.5 WithClass的UML图 6.6 C#工程文件

第7章 C#中的数组、文件和异常

第2部分 创建型模式 第8章 简单工厂模式 第9章 工厂方法 第10章 抽象工厂模式 第11章 单件模式 第12章 生成器模式 第13章 原型模式

第3部分 结构型模式 第14章 适配器模式 第15章 桥接模式 第16章 组合模式 第17章 装饰器模式 第18章 外观模式 第19章 享元模式 第20章 代理模式

第4部分 行为型模式 第21章 职责链 第22章 命令模式 第23章 解释器模式 第24章 迭代器模式 第25章 中介者模式 第26章 备忘录模式 第27章 观察者模式 第28章 状态模式 第29章 策略模式 第30章 模板方法模式 第31章 访问者模式

亚马逊链接

基本信息

名称: 写给Web开发人员看的HTML5教程
作者信息: 作者: Klaus F?rster [ 中文 pdf ]

简单介绍

《写给Web开发人员看的HTML5教程》适合具有一定的HTML和JavaScript基础的Web开发人员阅读。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
第1章Web标准概述
1.1HTML5诞生始末
1.2重大历史事件回顾
1.3拣重要的说
1.3.1有什么新特色?
1.3.2去掉了什么?
1.3.3XHTML呢?
1.4现在我可以开始使用HTML5了吗?
小结
第2章文档结构和语义
2.1页眉的header和hgroup标签
2.2正文(article)内容
2.3由footer和nav组成的页脚
2.4由aside及section组成的工具栏
2.5大纲算法
2.6图形中的figure及figcaption
2.7文档级别语义——更多新的标签
2.7.1元素ruby、rt及rp
2.7.2time元素
2.7.3mark元素
2.7.4wbr元素
2.7.5略微改变的元素
小结
第3章智能表单
3.1新的输入类型(inputtype)
3.1.1输入类型tel及search
3.1.2输入类型url及email
3.1.3用datetime,date,month,week,time以及datetime—local表示日期和时间
3.1.4输入类型number及range
3.1.5输入类型color
3.1.6新输入类型的实际应用
3.2有用的表单属性
3.2.1使用autofocus操作焦点
3.2.2为文本使用placeholder占位符
3.2.3使用required定义必填项
3.2.4input元素中的更多属性
3.3新的元素
3.3.1使用meter显示度量
3.3.2用progress显示任务进程
3.3.3datalist选项列表
3.3.4使用keygen处理密钥
3.3.5用output进行计算
3.4客户端表单验证
3.4.1invalid事件
3.4.2checkValidity函数
3.4.3使用setCustomValidity()进行错误处理
3.4.4有效性验证总结
3.4.5不做有效性验证也许更好?“formnovalidate”
3.5案例:一张维修表单
小结
第4章视频与音频
4.1第一个案例
4.2video元素及其属性
4.3视频编解码器
4.3.1Ogg:Theora与Vorbis
4.3.2MPEG—4:H.264与AAC
4.3.3WebM:VP8与Vorbis
4.4视频转换工具
4.4.1FFmpeg
4.4.2VLC
4.4.3Firefogg
4.4.4MiroVideoConverter
4.5各种浏览器支持些什么格式
4.6旧浏览器的过渡解决方案
4.6.1mwEmbed
4.6.2htm15media
4.7视频与脚本——简单的视频播放器
4.7.1视频整合
4.7.2播放和暂停视频
4.7.3显示及设定播放位置
4.7.4快进和后退
4.7.5选择电影场景
4.7.6音量调节及静音
4.7.8HTMLMediaElement接口中其他的属性及方法
4.7.9媒体事件列表
4.8关于音频
小结
第5章画布
5.1案例
5.2矩形
5.3颜色及阴影
5.4渐变
5.5路径绘图
5.5.1线条
5.5.2Bézier曲线
5.5.3弧线
5.5.4矩形
5.5.5轮廓、填充及剪切遮罩
5.6文本
5.6.1字体
5.6.2水平锚点
5.6.3垂直锚点
5.6.4绘制及测量文本
5.7内嵌图像
5.8像素处理
5.8.1使用ImageData对象
5.8.2使用getImageData()、createImageData()及putImageData()进行颜色处理
5.9混合(Compositing)
5.10图案(Pattern)
5.11变换(Transformations)
5.12用canvas.toDataURL()进行Base64编码
5.13save()与restore()
5.14动画
5.14.1彩色球体动画
5.14.2用drawImage()播放视频
5.15还有遗漏吗?
5.15.1isPointInPath(x,y)
5.15.2Canvas的可访问性?
5.15.3安全方面
5.15.4浏览器支持
5.15.5更多链接
小结
第6章SVG与MathML
6.1MathML
6.2SVG
小结
第7章地理定位
7.1地理定位介绍
7.1.1地理数据
7.1.2在线地图服务
7.2初体验:在浏览器中使用地理定位
7.3定位的技术背景
7.4OpenStreetMap上显示当前位置
7.5使用GoogleMaps追踪位置
7.6案例:Geonotes
7.6.1操作
7.6.2重要的代码片断
7.7浏览器支持
小结
第8章Web存储及离线Web应用程序
8.1存储
8.1.1Storage接口
8.1.2会话存储(sessionStorage)
8.1.3本地存储(localStorage)
8.1.4storage事件
8.1.5调试
8.2离线Web应用程序
8.2.1缓存清单文件
8.2.2离线状态及事件
8.2.3调试
8.3浏览器支持
8.4案例:Clicktotick!
8.4.1用户界面
8.4.2管理界面
8.4.3重要代码片段
8.4.4扩展选项
小结
第9章网页套接字
9.1WebSocket服务器
9.2案例:广播服务器
9.2.1广播客户端
9.2.2广播服务器
9.3案例:Battleships!(战列舰)
小结
第10章多线程
10.1WebWorker介绍
10.2查找闰年
10.3配合Canvans计算海拔档案
10.3.1重要代码清单
小结
第11章微数据
11.1微数据语法
11.1.1属性itemscope及itemprop
11.1.2itemtype属性
11.1.3itemid属性
11.1.4itemref属性
11.2微数据DOMAPI
小结
第12章写在最后:一些全局属性
12.1class属性的变化
12.2用“data—*”定义自定义属性
12.3hidden属性
12.4classList接口
12.5通过draggable属性实现拖曳
12.5.1拖曳与FileAPI相结合
12.6属性contenteditable与spellcheck
小结
后记

亚马逊链接

基本信息

名称: 深入理解C#(第2版)
作者信息: 作者: Jon Skeet [ 中文 pdf ]

简单介绍

《深入理解C#(第2版)》是世界顶级技术专家“十年磨一剑”的经典之作,在C#和.NET领域享有盛誉。与其他泛泛介绍C#的书籍不同,本书深度探究C#的特性,并结合技术发展,引领读者深入C#的时空。作者Jon Skeet从语言设计的动机出发,介绍支持这些特性的核心概念。作者将新的语言特性放在C#语言发展的背景之上,用极富实际意义的示例,向读者展示编写代码和设计解决方案的最佳方式。同时作者将多年的C#开发经验与读者分享,读者可咀其精华、免走弯路,使程序设计水平更上一层楼。 本书是对第1版的全新修订,更详尽地阐述了C#的核心概念,并全面介绍了C# 4的新特性和代码契约。C# 4功能异常强大,掌握本书讲解的泛型、Lambda表达式、动态类型、LINQ、迭代器块和其他新特性后。读者可以实现无数神奇的功能,在C#的世界中大展宏图。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
目 录 

第一部分 基础知识

第1章 C#开发的进化史 2 1.1 从简单的数据类型开始 3 1.1.1 C# 1中定义的产品类型 3 1.1.2 C# 2中的强类型集合 4 1.1.3 C# 3中自动实现的属性 5 1.1.4 C# 4中的命名实参 6 1.2 排序和过滤 7 1.2.1 按名称对产品进行排序 7 1.2.2 查询集合 10 1.3 处理未知数据 11 1.3.1 表示未知的价格 12 1.3.2 可选参数和默认值 12 1.4 LINQ简介 13 1.4.1 查询表达式和进程内查询 13 1.4.2 查询XML 14 1.4.3 LINQ to SQL 15 1.5 COM和动态类型 16 1.5.1 简化COM互操作 16 1.5.2 与动态语言互操作 17 1.6 剖析.NET平台 18 1.6.1 C#语言 18 1.6.2 运行时 19 1.6.3 框架库 19 1.7 怎样写出超炫的代码 19 1.7.1 采用代码段形式的全能代码 20 1.7.2 教学代码不是产品代码 21 1.7.3 你的新朋友:语言规范 21 1.8 小结 21

第2章 C# 1所搭建的核心基础 23 2.1 委托 23 2.1.1 简单委托的构成 24 2.1.2 合并和删除委托 28 2.1.3 对事件的简单讨论 29 2.1.4 委托小结 30 2.2 类型系统的特征 31 2.2.1 C#在类型系统世界中的位置 31 2.2.2 C# 1的类型系统在什么时候不够用 34 2.2.3 类型系统特征总结 36 2.3 值类型和引用类型 36 2.3.1 现实世界中的值和引用 36 2.3.2 值类型和引用类型基础知识 37 2.3.3 走出误区 38 2.3.4 装箱和拆箱 40 2.3.5 值类型和引用类型小结 41 2.4 C# 1之外:构建于坚实基础之上的新特性 41 2.4.1 与委托有关的特性 41 2.4.2 与类型系统有关的特性 43 2.4.3 与值类型有关的特性 45 2.5 小结 46

第二部分 C# 2:解决C# 1的问题

第3章 用泛型实现参数化类型 48 3.1 为什么需要泛型 49 3.2 日常使用的简单泛型 50 3.2.1 通过例子来学习:泛型字典 50 3.2.2 泛型类型和类型参数 52 3.2.3 泛型方法和判读泛型声明 55 3.3 深化与提高 58 3.3.1 类型约束 58 3.3.2 泛型方法类型实参的类型推断 62 3.3.3 实现泛型 63 3.4 高级泛型 68 3.4.1 静态字段和静态构造函数 69 3.4.2 JIT编译器如何处理泛型 70 3.4.3 泛型迭代 72 3.4.4 反射和泛型 74 3.5 泛型在C#和其他语言中的限制 78 3.5.1 泛型可变性的缺乏 78 3.5.2 缺乏操作符约束或者“数值”约束 82 3.5.3 缺乏泛型属性、索引器和其他成员类型 83 3.5.4 同C++模板的对比 84 3.5.5 和Java泛型的对比 85 3.6 小结 86

第4章 可空类型 88 4.1 没有值时怎么办 88 4.1.1 为什么值类型的变量不能是null 89 4.1.2 在C# 1中表示空值的模式 89 4.2 System.Nullable和System.Nullable 91 4.2.1 Nullable简介 91 4.2.2 Nullable装箱和拆箱 94 4.2.3 Nullable实例的相等性 95 4.2.4 来自非泛型Nullable类的支持 96 4.3 C# 2为可空类型提供的语法糖 96 4.3.1 ?修饰符 97 4.3.2 使用null 进行赋值和比较 98 4.3.3 可空转换和操作符 99 4.3.4 可空逻辑 102 4.3.5 对可空类型使用as操作符 103 4.3.6 空合并操作符 104 4.4 可空类型的新奇用法 106 4.4.1 尝试一个不使用输出参数的操作 107 4.4.2 空合并操作符让比较不再痛苦 108 4.5 小结 111

第5章 进入快速通道的委托 112 5.1 向笨拙的委托语法说拜拜 113 5.2 方法组转换 114 5.3 协变性和逆变性 115 5.3.1 委托参数的逆变性 116 5.3.2 委托返回类型的协变性 117 5.3.3 不兼容的风险 118 5.4 使用匿名方法的内联委托操作 119 5.4.1 从简单的开始:处理一个参数 119 5.4.2 匿名方法的返回值 121 5.4.3 忽略委托参数 123 5.5 在匿名方法中捕捉变量 124 5.5.1 定义闭包和不同的变量类型 124 5.5.2 测试被捕获的变量的行为 126 5.5.3 捕获变量到底有什么用处 127 5.5.4 捕获变量的延长生存期 127 5.5.5 局部变量实例化 128 5.5.6 共享和非共享的变量混合使用 130 5.5.7 捕获变量的使用规则和小结 132 5.6 小结 133

第6章 实现迭代器的捷径 134 6.1 C# 1:手写迭代器的痛苦 135 6.2 C# 2:利用yield语句简化迭代器 137 6.2.1 迭代器块和yield return简介 137 6.2.2 观察迭代器的工作流程 139 6.2.3 进一步了解迭代器执行流程 141 6.2.4 具体实现中的奇特之处 144 6.3 真实的例子:迭代范围值 145 6.3.1 迭代时刻表中的日期 145 6.3.2 迭代文件中的行 146 6.3.3 使用迭代器块和谓词对项进行延迟筛选 148 6.4 使用CCR实现伪同步代码 150 6.5 小结 152

第7章 结束C# 2的讲解:最后的一些特性 153 7.1 分部类型 154 7.1.1 在多个文件中创建一个类型 154 7.1.2 分部类型的使用 156 7.1.3 C# 3独有的分部方法 157 7.2 静态类型 159 7.3 独立的取值方法/赋值方法属性访问器 161 7.4 命名空间别名 162 7.4.1 限定的命名空间别名 163 7.4.2 全局命名空间别名 164 7.4.3 外部别名 164 7.5 Pragma指令 166 7.5.1 警告pragma 166 7.5.2 校验和pragma 167 7.6 非安全代码中的固定大小的缓冲区 167 7.7 把内部成员暴露给选定的程序集 169 7.7.1 在简单情况下的友元程序集 169 7.7.2 为什么使用InternalsVisibleTo 170 7.7.3 InternalsVisibleTo和签名程序集 170 7.8 小结 171

第三部分 C# 3:革新写代码的方式

第8章 用智能的编译器来防错 174 8.1 自动实现的属性 175 8.2 隐式类型的局部变量 176 8.2.1 用var声明局部变量 177 8.2.2 隐式类型的限制 178 8.2.3 隐式类型的优缺点 179 8.2.4 建议 180 8.3 简化的初始化 180 8.3.1 定义示例类型 181 8.3.2 设置简单属性 182 8.3.3 为嵌入对象设置属性 183 8.3.4 集合初始化列表 184 8.3.5 初始化特性的应用 186 8.4 隐式类型的数组 187 8.5 匿名类型 188 8.5.1 第一次邂逅匿名类型 188 8.5.2 匿名类型的成员 190 8.5.3 投影初始化列表 191 8.5.4 重点何在 192 8.6 小结 193

第9章 Lambda表达式和表达式树 194 9.1 作为委托的Lambda表达式 195 9.1.1 准备工作:Func委托类型简介 195 9.1.2 第一次转换成Lambda表达式 196 9.1.3 用单一表达式作为主体 197 9.1.4 隐式类型的参数列表 197 9.1.5 单一参数的快捷语法 198 9.2 使用List和事件的简单例子 199 9.2.1 对列表进行筛选、排序并设置其他操作 199 9.2.2 在事件处理程序中进行记录 201 9.3 表达式树 202 9.3.1 在程序中构建表达式树 202 9.3.2 将表达式树编译成委托 204 9.3.3 将C# Lambda表达式转换成表达式树 205 9.3.4 位于LINQ核心的表达式树 208 9.3.5 LINQ之外的表达式树 209 9.4 类型推断和重载决策发生的改变 211 9.4.1 改变的起因:精简泛型方法调用 211 9.4.2 推断匿名函数的返回类型 212 9.4.3 分两个阶段进行的类型推断 213 9.4.4 选择正确的被重载的方法 217 9.4.5 类型推断和重载决策 218 9.5 小结 219

第10章 扩展方法 220 10.1 未引入扩展方法之前的状态 221 10.2 扩展方法的语法 223 10.2.1 声明扩展方法 223 10.2.2 调用扩展方法 224 10.2.3 扩展方法是怎样被发现的 225 10.2.4 在空引用上调用方法 226 10.3 .NET 3.5中的扩展方法 227 10.3.1 从Enumerable开始起步 228 10.3.2 用Where筛选并将方法调用链接到一起 229 10.3.3 插曲:似曾相识的Where方法 231 10.3.4 用Select方法和匿名类型进行投影 232 10.3.5 用OrderBy方法进行排序 232 10.3.6 涉及链接的实际例子 234 10.4 使用思路和原则 235 10.4.1 “扩展世界”和使接口更丰富 235 10.4.2 流畅接口 236 10.4.3 理智使用扩展方法 237 10.5 小结 238

第11章 查询表达式和LINQ to Objects 240 11.1 LINQ介绍 241 11.1.1 LINQ中的基础概念 241 11.1.2 定义示例数据模型 245 11.2 简单的开始:选择元素 246 11.2.1 以数据源作为开始,以选择作为结束 246 11.2.2 作为查询表达式基础的编译器转换 247 11.2.3 范围变量和重要的投影 249 11.2.4 Cast、OfType和显式类型的范围变量 251 11.3 对序列进行过滤和排序 252 11.3.1 使用where子句进行过滤 253 11.3.2 退化的查询表达式 253 11.3.3 使用orderby子句进行排序 254 11.4 let子句和透明标识符 256 11.4.1 用let来进行中间计算 256 11.4.2 透明标识符 257 11.5 联接 258 11.5.1 使用join子句的内联接 258 11.5.2 使用join into子句进行分组联接 262 11.5.3 使用多个from子句进行交叉联接和合并序列 264 11.6 分组和延续 267 11.6.1 使用group by子句进行分组 267 11.6.2 查询延续 270 11.7 在查询表达式和点标记之间作出选择 272 11.7.1 需要使用点标记的操作 273 11.7.2 选择点标记 273 11.7.3 选择查询表达式 274 11.8 小结 275

第12章 超越集合的LINQ 276 12.1 使用LINQ to SQL查询数据库 277 12.1.1 数据库和模型 277 12.1.2 用查询表达式访问数据库 279 12.1.3 包含联接的查询 281 12.2 用IQueryable和IQueryProvider进行转换 283 12.2.1 IQueryable和相关接口的介绍 283 12.2.2 模拟接口实现来记录调用 285 12.2.3 把表达式粘合在一起:Queryable的扩展方法 287 12.2.4 模拟实际运行的查询提供器 289 12.2.5 包装IQueryable 290 12.3 LINQ友好的API和LINQ to XML 290 12.3.1 LINQ to XML中的核心类型 290 12.3.2 声明式构造 292 12.3.3 查询单个节点 294 12.3.4 合并查询操作符 296 12.3.5 与LINQ和谐共处 297 12.4 用并行LINQ代替LINQ to Objects 297 12.4.1 在单线程中绘制曼德博罗特集 297 12.4.2 ParallelEnumerable、Parallel-Query和AsParallel 299 12.4.3 调整并行查询 300 12.5 使用LINQ to Rx反转查询模型 301 12.5.1 IObservable和IObserver 302 12.5.2 简单地开始 303 12.5.3 查询可观察对象 304 12.5.4 意义何在 306 12.6 扩展LINQ to Objects 306 12.6.1 设计和实现指南 307 12.6.2 示例扩展:选择随机元素 308 12.7 小结 309

第四部分 C# 4:良好的交互性

第13章 简化代码的微小修改 312 13.1 可选参数和命名实参 312 13.1.1 可选参数 313 13.1.2 命名实参 317 13.1.3 两者相结合 321 13.2 改善COM互操作性 324 13.2.1 在C# 4之前操纵Word是十分恐怖的 325 13.2.2 可选参数和命名实参的复仇 325 13.2.3 按值传递ref参数 326 13.2.4 调用命名索引器 327 13.2.5 链接主互操作程序集 328 13.3 接口和委托的泛型可变性 330 13.3.1 可变性的种类:协变性和逆变性 331 13.3.2 在接口中使用可变性 332 13.3.3 在委托中使用可变性 334 13.3.4 复杂情况 335 13.3.5 限制和说明 336 13.4 对锁和字段风格的事件的微小改变 339 13.4.1 健壮的锁 339 13.4.2 字段风格的事件 340 13.5 小结 341

第14章 静态语言中的动态绑定 342 14.1 何谓,何时,为何,如何 343 14.1.1 何谓动态类型 343 14.1.2 动态类型什么时候有用,为什么 344 14.1.3 C# 4如何提供动态类型 345 14.2 关于动态的快速指南 345 14.3 动态类型示例 348 14.3.1 COM和Office 348 14.3.2 动态语言 350 14.3.3 纯托管代码中的动态类型 353 14.4 幕后原理 358 14.4.1 DLR简介 358 14.4.2 DLR核心概念 360 14.4.3 C#编译器如何处理动态 362 14.4.4 更加智能的C#编译器 365 14.4.5 动态代码的约束 368 14.5 实现动态行为 370 14.5.1 使用ExpandoObject 370 14.5.2 使用DynamicObject 374 14.5.3 实现IDynamicMetaObject-Provider 380 14.6 小结 383

第15章 使用契约让代码更加清晰 385 15.1 未引入代码契约之前的状态 386 15.2 代码契约 387 15.2.1 前置条件 388 15.2.2 后置条件 389 15.2.3 固定条件 390 15.2.4 断言和假设 392 15.2.5 旧式契约 393 15.3 使用ccrewrite和ccrefgen重写二进制 394 15.3.1 简单重写 394 15.3.2 契约继承 395 15.3.3 契约引用程序集 398 15.3.4 失败行为 399 15.4 静态检查 401 15.4.1 开始静态检查 401 15.4.2 隐式职责 403 15.4.3 有选择性的检查 406 15.5 使用ccdocgen 将契约文档化 408 15.6 契约实战 410 15.6.1 契约中有什么 410 15.6.2 如何开始 411 15.6.3 无处不在的选项 412 15.7 小结 414

第16章 何去何从 415 16.1 C#——传统与现代的结合 415 16.2 计算机科学和.NET 416 16.3 计算机世界 417 16.4 再会 417

附录A LINQ标准查询操作符 419 附录B .NET中的泛型集合 430 附录C 版本总结 440

</t></t></t></t></t></t></t></t>

亚马逊链接

基本信息

名称: HTML5移动Web开发指南
作者信息: 作者: 唐俊开 [ 中文 pdf ]

简单介绍

《HTML5移动Web开发指南》是为从未接触过html5新技术但同时又对移动web技术感兴趣的读者而编写的。如果你有一定的html开发经验,将会更容易掌握html5知识。同时,如果你是如下几类人群之一,那么《HTML5移动Web开发指南》非常适合你阅读:1.有一定基础或者未来计划的职业是web前端开发工程师。2.具有一定html基础的ui设计师。3.web项目中的项目经理以及策划人员。4.对手机web开发技术感兴趣的开发者。5.开设计算机课程的高等院校及培训机构的师生。 此外,《HTML5移动Web开发指南》也适合熟悉java、php、asp.net等后端web技术的开发者阅读。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
第1章移动互联网时代的Web技术
1.1移动互联网的发展
1.2智能手机发展迅速
1.3智能手机的Web浏览器
1.4移动Web应用的发展
1.5基于HTML5的移动Web应用
第2章移动设备HTML5页面布局
2.1页面语义化简介
2.1.1HTML5新语义元素概述
2.1.2更多HTML5新元素
2.2页面结构与移动设备的布局
2.2.1常见的移动应用布局
2.2.2使用HTML5创建标准的移动Web页面
2.3本章小结
第3章HTML5规范的本地存储
3.1移动设备的支持
3.2localStorage
3.3sessionStorage
3.4Storage事件监听
3.5本章小结
第4章移动Web的离线应用
4.1离线Web概述
4.1.1离线与缓存
4.1.2离线的意义
4.2移动设备的支持
4.3applicationCache和manifest
4.3.1manifest文件
4.3.2applicationCache对象和事件
4.4本章小结
第5章移动设备的常见HTML5表单元素
5.1丰富的表单属性
5.2移动Web表单的input类型
5.2.1search类型文本
5.2.2email类型文本
5.2.3number类型文本
5.2.4range类型文本
5.2.5tel类型文本
5.2.6url类型文本
5.2.7更多的类型
5.3表单属性应用范围
5.4本章小结
第6章移动Web界面样式
6.1CSS3
6.2选择器
6.2.1属性选择器
6.2.2伪类选择器
6.3 阴影
6.3.1 box-shadow
6.3.2text-shadow
6.4背景
6.4.1background-size
6.4.2background—clip
6.4.3background—origin
6.4.4background
6.5圆角边框
6.6Media Queries移动设备样式
6.6.1传统网站在iPhone上的显示问题
6.6.2viewport设置适应移动设备屏幕大小
6.6.3Media Queries如何工作
6.6.4Media Queries语法总结
6.6.5如何将官方网站移植成移动Web网站
6.7本章小结
第7章Geolocation地理定位
7.1功能介绍
7.2浏览器支持情况
7.3如何使用Geolocation API
7.3.1首次获取当前位置
7.3.2监视移动设备的位置变化
7.4本章小结
第8章轻量级框架jQuery Mobile初探
8.1jQuery Mobile概述
8.2入门示例Hello World
8.2.1部署文件
8.2.2编码
8.3基于HTML5的自定义属性驱动组件
8.3.1dataset自定义属性
8.3.2使用dataset属性驱动jQuery Mobile组件
8.4页面与视图
8.4.1标准的移动Web页面
8.4.2移动设备的视图
8.4.3多视图Web页面
8.4.4改变页面标题的视图
8.4.5视图切换动画
8.4.6dialog对话框
8.4.7页面主题
8.5button按钮
8.5.1button组件
8.5.2具有icon图标的button组件
8.5.3具有内联样式的button
8.5.4具有分组功能的button按钮
8.6Bar工具栏
8.6.1如何使用工具栏
8.6.2含有后退按钮的Header工具栏
8.6.3多按钮的Footer工具栏
8.6.4导航条工具栏
8.6.5定义fixed工具栏
8.6.6全屏模式工具栏
8.7内容区域格式布局
8.7.1网格布局
8.7.2仿9宫格排列的按钮组例子
8.7.3折叠块功能
8.7.4创建具有手风琴效果的例子
8.8Form表单
8.8.1如何使用表单提交功能
8.8.2HTML5文本框类型
8.8.3HTML5搜索类型输入框
8.8.4Slider类型
8.8.5Toggle类型
8.8.6单选按钮类型
8.8.7复选框类型
8.8.8下拉选择菜单
8.9List列表
8.9.1基本列表类型
8.9.2普通链接列表
8.9.3多层次嵌套列表
8.9.4有序编号列表
8.9.5只读列表
8.9.6可分割按钮列表
8.9.7列表的分隔符
8.9.8列表搜索过滤器
8.9.9含有气泡式计数的列表
8.9.10显示列表项右侧文本格式的列表
8.9.11列表项含有图标的列表
8.9.12数据项含有图片的列表
8.9.13内嵌列表
8.9.14列表的性能问题
8.10配置选项
8.11Event事件
8.11.1页面加载事件
8.11.2其他事件类型
8.12实用方法和工具
8.12.1页面视图辅助工具
8.12.2数据存储
8.12.3地址路径辅助工具
8.12.4loading显示/隐藏
8.13主题系统
8.14本章小结
……
第9章重量级富框架SENCHA TOUCH入门
第10章跨平台的PHONEGAP应用介绍
第11章构建基于HTML5的生活轨迹WEB APP
第12章进阶之路

亚马逊链接

基本信息

名称: 论道HTML5
作者信息: 作者: 秀野堂主 [ 中文 pdf ]

简单介绍

中国人在HTML5领域领先日本和韩国,这是不争的事实。HTML5是未来网络世界向生活全面接轨的号角。本书的知识点与目前市面上的所有的HTML5都不一样,与《HTML5高级语言设计》相比,这本书是本土的,涵盖了WEBGL部分的,对所有API都详细介绍了。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
第1章 利用HTML5制作网站 1
1.1 大多数人不了解HTML5时代的网页设计 1
1.2 HTML5带来的网页结构、设计风格及理念的变化 3
1.2.1 HTML4时代的几个特征 4
1.2.2 一个典型的HTML5页面 4
1.2.3 小结 6
1.3 HTML5带来的标签变化 6
1.3.1 什么是标签 6
1.3.2 标签的分类 7
1.3.3 近十几年来的HTML 9
1.3.4 Web的变化趋势 9
1.4 HTML5带来的表单数据内容进化 9
1.4.1 数据提交格式的变化 10
1.4.2 数据提交范围的变化 11
1.4.3 表单数据类型的增加 12
1.4.4 表单属性和验证方式的进化 13
1.4.5 文件上传控件和重复模型的应用 14
1.4.6 小结 14
1.5 HTML5与SEO 15
1.5.1 技术趋势 15
1.5.2 搜索引擎服务商面临的问题 16
1.5.3 SEO从业人员面临的问题 17
1.5.4 SEO面临的几个社会问题 18
1.6 HTML5的开发环境与调试环境 18
1.6.1 HTML5编写工具 18
1.6.2 JavaScript开发 19
1.6.3 HTTP监控 19
1.6.4 调试环境 20
1.7 案例:HTML5网站建设 22
1.7.1 需求的提出 22
1.7.2 需求分析 22
1.7.3 系统分析 22
1.7.4 工程实现 23
1.7.5 小结 27
第2章 用CSS3完善网站 28
2.1 文字模块 29
2.1.1 文字阴影:text—shadow 29
2.1.2 文字溢出:text—overflow 30
2.1.3 文字换行:word—wrap 30
2.2 颜色模块 31
2.2.1 透明度:opacity 31
2.2.2 HSL 33
2.2.3 HSLA和RGBA 33
2.3 边框模块 34
2.3.1 边框圆角:border—radius 34
2.3.2 边框颜色:border—color 36
2.3.3 边框图像:border—image 37
2.3.4 盒阴影:box—shadow 40
2.4 用户界面模块 41
2.4.1 盒倒影:box—reflect 41
2.4.2 盒大小:box—sizing 41
2.5 背景模块 42
2.5.1 背景渐变 42
2.5.2 background—origin 45
2.5.3 background—clip 46
2.5.4 background—size 47
2.5.5 多背景 48
2.5.6 遮罩 49
2.6 动画模块 51
2.6.1 transform 51
2.6.2 transition 53
2.6.3 animation 55
2.7 区域模块 57
2.7.1 故事线 58
2.7.2 区域样式 60
2.7.3 内容形状和环绕 60
2.7.4 小结 62
2.8 选择器 62
2.8.1 结构伪类 63
2.8.2 否定伪类 65
2.8.3 状态伪类 65
2.8.4 目标伪类 66
2.8.5 其他选择器 66
2.9 其他模块 68
2.9.1 多栏布局 68
2.9.2 弹性盒子布局 68
2.9.3 网络字体 69
2.9.4 媒介查询 70
2.9.5 滤镜效果 70
2.9.6 着色器 70
2.10 使用CSS3美化网站 72
2.10.1 右上角文字 73
2.10.2 下载盒子 74
2.10.3 图片格子 74
2.10.4 中间盒子 74
2.10.5 左右盒子 75
2.10.6 居中背景 76
2.10.7 载入效果 76
2.10.8 页脚 77
2.11 小结 77
第3章 划时代的WebAPI 79
3.1 传统Web模型与WebOS架构模型 79
3.2 WebAPI的概要介绍 81
3.3 Drag&DropAPI 82
3.3.1 以前的解决方案 82
3.3.2 Drag&DropAPI的优点 83
3.3.3 如何检测浏览器是否支持Drag&DropAPI 83
3.3.4 Drag&DropAPI的主要操作 84
3.3.5 文件拖放上传实例 86
3.4 HistoryAPI 87
3.4.1 以前的解决方案 87
3.4.2 现在的HistoryAPI 87
3.5 CommunicationAPI 89
3.5.1 以前解决跨源通信的方案 89
3.5.2 XMLHttpRequestLevel2 90
3.5.3 iframe和sandbox 91
3.5.4 跨文档消息通信 92
3.6 NotificationAPI 97
3.6.1 如何检测浏览器是否支持NotificationAPI 97
3.6.2 Web的Notification的状态 97
3.6.3 让你的WebApp带着Notification跑 97
3.7 audio标签和video标签 99
3.7.1 audio标签 100
3.7.2 video标签 102
3.8 CanvasAPI 108
3.8.1 以前的同类解决方案 109
3.8.2 Canvas的优点 109
3.8.3 检测浏览器是否支持Canvas 109
3.8.4 Canvas主要操作 109
3.9 WebSocketAPI 110
3.10 WebWorkerAPI 111
3.11 WebStorageAPI 111
3.12 MicroData和语义网络 111
3.12.1 MicroData的常见属性 112
3.12.2 MicroData的例子 112
3.12.3 MicroData与SEO——人类需要有序的信息 113
3.12.4 语义网络的基本概念 113
3.12.5 语义测试工具 114
3.13 通用Base64方法 114
3.13.1 编码 114
3.13.2 解码 115
3.13.3 应用 115
3.14 WebDatabaseAPI 117
3.14.1 WebSQLAPI 117
3.14.2 IndexedDBAPI 121
3.15 WebGL 124
3.16 DeviceAPI系列 125
3.16.1 GeolocationAPI 125
3.16.2 FileAPI 128
3.16.3 FileWriterAPI 132
3.16.4 MediaCaptureAPI 132
3.16.5 ContactAPI 133
3.16.6 SystemInformationAPI 134
3.16.7 CalendarAPI 137
3.16.8 MessagingAPI 137
3.17 小结 138
第4章 Canvas2D 139
4.1 什么是Canvas 139
4.2 Canvas2D原理 140
4.2.1 坐标系统说明 141
4.2.2 属性说明 142
4.3 绘制 143
4.3.1 各类线条 143
4.3.2 矩形 151
4.3.3 三角形 152
4.3.4 圆与扇形 153
4.3.5 图片 155
4.3.6 文字 158
4.4 特效 160
4.4.1 渐变 160
4.4.2 阴影与透明 162
4.5 基础操作中比较复杂的部分 162
4.5.1 保存和恢复 163
4.5.2 坐标转换 163
4.5.3 旋转 164
4.5.4 缩放 164
4.5.5 变形 164
4.5.6 组合 166
4.5.7 裁剪 167
4.5.8 像素操作 170
4.6 动画 172
4.6.1 左右运动 172
4.6.2 上下运动 173
4.6.3 圆心旋转运动 174
4.6.4 抛物线运动 175
4.6.5 渐变运动 175
4.7 事件感应 176
4.8 关于Canvas的一些经验 177
4.8.1 回答两个问题 177
4.8.2 避开浮点运算 178
4.8.3 资源载入与双缓冲问题 178
4.8.4 图片抗锯齿的原理及办法 179
4.8.5 粒子系统的使用 181
4.9 Web开发复古流 181
4.10 小结 182
第5章 HTML5和移动互联网开发 183
5.1 移动互联网的现状与需求 183
5.1.1 市场容量 184
5.1.2 移动设备的特点 184
5.1.3 移动设备的现状 185
5.1.4 开发者生态圈 185
5.1.5 可供选择的移动互联网开发平台 185
5.2 HTML5在移动互联网上的开发示例 187
5.2.1 一个HTML5开发者的基本配置 187
5.2.2 欧朋浏览器H5版介绍 188
5.2.3 重力传感设备 191
5.2.4 电子罗盘开发 199
5.2.5 Geolocation与LBS应用开发 203
5.2.6 网页摄像与网络相册 207
5.2.7 移动设备中的离线存储 214
5.3 小结 215
第6章 WebSocket开发应用 216
6.1 WebSocket的那些事儿 216
6.1.1 WebSocket的技术背景 217
6.1.2 WebSocket的定义 218
6.1.3 WebSocket通信模式解析 219
6.1.4 WebSocket检测浏览器支持代码 220
6.2 WebSocketAPI的内容 220
6.2.1 属性 220
6.2.2 URL 221
6.2.3 事件 221
6.3 客户端样例程序 222
6.4 服务器端样例程序 222
6.5 Ajax、长轮询、Comet之间的那些事儿 223
6.5.1 Ajax 223
6.5.2 长轮询 225
6.5.3 Comet 226
6.5.4 Ajax与WebSocket的多角度对比 227
6.6 与WebSocket相关的几个概念 227
6.6.1 SSJS 228
6.6.2 Node.js 228
6.7 开发基于WebSocket的通信示例 235
6.7.1 聊天室 235
6.7.2 服务器监控 239
6.7.3 联机作图 243
6.8 免费的WebSocket资源 247
6.9 小结 248
第7章 瘦服务器战略与云 249
7.1 战略观察与未来10年的思考 249
7.1.1 Web瘦服务器战略 249
7.1.2 云 253
7.1.3 计算能的思考 254
7.2 WebStorage 255
7.2.1 WebStorage的概念 255
7.2.2 localStorage介绍与示例 255
7.2.3 sessionStorage的介绍与示例 258
7.2.4 浏览器端存储的方案和局限性 260
7.3 离线应用 265
7.3.1 判断浏览器是否在线 266
7.3.2 离线应用的属性与方法 266
7.3.3 manifest文件 267
7.4 WebWorker 269
7.4.1 Worker 270
7.4.2 SharedWorker 273
7.4.3 WebWorker小结 275
7.5 一个云记事本的案例 276
7.5.1 客户端逻辑分析 276
7.5.2 客户端的实现 277
7.5.3 工程实现的联想 279
7.6 小结 279
附录A HTML5标签、事件属性及其相关网站 281
附录B 审慎对待各种框架 287
附录C 统一开发常用交流术语 289
附录D WebGL 294
附录E CSS3模块列表 299

亚马逊链接

基本信息

名称: 图灵程序设计丛书 HTML5程序设计(第2版)
作者信息: 作者: 柳伯斯 (Peter Lubbers) [ 中文 pdf ]

简单介绍

1、超级畅销书《HTML5高级程序设计》升级版;2、引领下一代web开发潮流;3、全面涵盖开创性html5api

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
第1章 HTML5概述
1.1 HTML5发展史
1.2 关于2022年的那个神话
1.3 谁在开发HTML5
1.4 新的认识
1.4.1 兼容性和存在即合理
1.4.2 效率和用户优先
1.4.3 化繁为简
1.4.4 通用访问
1.5 无插件范式
1.6 HTML5的新功能
1.6.1 新的DOCTYPE和字符集
1.6.2 新元素和旧元素
1.6.3 语义化标记
1.6.4 使用Selectors API简化选取操作
1.6.5 JavaScript日志和调试
1.6.6 window.JSON
1.6.7 DOM Level 3
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎
1.7 小结
第2章 Canvas API
2.1 HTML5 Canvas概述
2.1.1历史
2.1.2 canvas是什么
2.1.3 canvas坐标
2.1.4什么情况下不用canvas
2.1.5替代内容
2.1.6 CSS和canvas
2.1.7浏览器对HTML5 Canvas的支持情况
2.2 使用HTML5 Canvas API
2.2.1检测浏览器支持情况
2.2.2在页面中加入canvas
2.2.3变换
2.2.4路径
2.2.5描边样式
2.2.6填充样式
2.2.7填充矩形区域
2.2.8绘制曲线
2.2.9在canvas中插入图片
2.2.10渐变
2.2.11背景图
2.2.12缩放canvas对象
2.2.13 Canvas变换
2.2.14 Canvas文本
2.2.15应用阴影
2.2.16像素数据
2.2.17 Canvas的安全机制
2.3使用HTML5 Canvas创建应用
2.3.1进阶功能之全页玻璃窗
2.3.2进阶功能之为Canvas动画计时
2.4小结
第3章SVG
3.1 SVG概述
3.1.1历史
3.1.2理解SVG
3.1.3可缩放图形
3.1.4使用SVG创建2D图形
3.1.5在页面中添加SVG
3.1.6简单的形状
3.1.7变换SVG元素
3.1.8复用内容
3.1.9图案和渐变
3.1.10 SVG路径
3.1.11使用SVG文本
3.1.12组合场景
3.2使用SVG创建交互式应用
3.2.1添加树
3.2.2添加updateTrees函数
3.2.3添加removeTree函数
3.2.4添加CSS样式
3.2.5最终代码
3.3小结
第4章音频和视频
4.1 HTML5 Audio和Video概述
4.1.1视频容器
4.1.2音频和视频编解码器
4.1.3 HTML5 Audio和Video的 限制
4.1.4 audio元素和video元素的浏览器支持情况
4.2使用HTML5 Audio和Video API
4.2.1浏览器支持性检测
4.2.2可访问性
4.2.3理解媒体元素
4.2.4使用audio元素
4.2.5使用video元素
4.2.6进阶功能
4.3小结
第5章 GeoIocation API
5.1位置信息
5.1.1纬度和经度坐标
5.1.2位置信息从何而来
5.1.3 IP地址地理定位数据
5.1.4 GPS地理定位数据
5.1.5 Wi-Fi地理定位数据
5.1.6手机地理定位数据
5.1.7用户自定义的地理定位数据
5.2 HTML5 Geolocation的浏览器支持情况
5.3隐私
5.3.1触发隐私保护机制
5.3.2处理位置信息
5.4使用HTML5 Geolocation API
5.4.1浏览器支持性检查
5.4.2位置请求
5.5使用HTML5 Geolocation构建应用
5.5.1编写HTML显示代码
5.5.2处理Geolocation数据
5.5.3最终代码
5.6进阶功能
5.6.1现在的状态是什么
5.6.2在Goolge Map上显示“我在这里”
5.7小结
第6章 Communication API
6.1跨文档消息通信
6.1.1理解源安全
6.1.2跨文档消息通信的浏览器支持情况
6.1.3使用postMessage API
6.1.4使用postMessage API创建应用
6.2 XMLHttpRequest Level 2
6.2.1跨源XMLHttpRequest
6.2.2进度事件
6.2.3 HTML5XMLHttpRequest Level 2的浏览器支持情况
6.2.4使用XMLHttpRequest API
6.2.5创建XMLHttpRequest应用
6.3进阶功能
6.3.1结构化的数据
6.3.2 FramebUSting
6.4小结
第7章WebSockets API
7.1 WebSockets概述
7.1.1实时和HTTP
7.1.2解读WebSockets
7.2编写简单的Echo WebSocket服务器
7.3使用HTML5 WebSockets API
7.3.1浏览器支持情况检测
7.3.2 API的基本用法
7.4创建HTML5 WebSockets应用程序
7.4.1编写HTML文件
7.4.2添加WebSocket代码
7.4.3添加Geolocation代码
7.4.4合并所有内容
7.4.5最终代码
7.5小结
第8章Forms API
8.1 HTML5 Forms概述
8.1.1 HTML Forms与XForms
8.1.2功能性表单
8.1.3 HTML5 Forms的浏览器支持情况
8.1.4输入型控件目录
8.2使用HTML5 Forms API
8.2.1新的表单特性和函数
8.2.2表单验证
8.2.3验证反馈
8.3构建HTML5 Forms应用
8.4小结
第9章拖放
9.1 Web拖放发展史
9.2 HTML5拖放概述
9.2.1蓝图
9.2.2需要记住的事件
9.2.3设置元素可拖动
9.2.4传输和控制
9.3构建拖放应用
9.4拖放文件
9.5进阶功能
9.6小结
第10章Web Workers API
10.1 Web Workers的浏览器支持情况
10.2使用Web Workers API
10.2.1浏览器支持性检查
10.2.2创建Web Workers
10.2.3多个JavaScript文件的加载与执行
10.2.4与HTML5 Web Workers通信
10.3编写主页
10.3.1处理错误
10.3.2停止Web Workers
10.3.3 Web Workers的嵌套使用
10.3.4使用定时器
10.3.5示例代码
10.4构建Web Workers应用
10.4.1编写blurjs辅助脚本
10.4.2编写blur.html应用页面
10.4.3编写blurWorker.js
10.4.4与Web Worker通信
10.4.5运行程序
10.4.6示例代码
10.5小结
第11章Web Storage API
11.1 HTML5 Web Storage概述
11.2 Web Storage的浏览器支持情况
11.3使用Web Storage API
11.3.1检查浏览器的支持性
11.3.2设置和获取数据
11.3.3封堵数据泄漏
11.3.4 localStorage与sessionStorage
11.3.5 Web Storage API的其他特性和函数
11.3.6更新Web Storage后的通信
11.3.7探索Web Storage
11.4构建Web Storage应用
11.5浏览器数据库存储展望
11.5.1 Web SQL Database
11.5.2索引数据库API
11.6进阶功能
11.6.1 JSON对象的存储
11.6.2共享窗口
11.7小结
第12章构建离线Web应用
12.1 HTML5离线Web应用概述
12.2使用HTML5离线Web应用API
12.2.1检查浏览器的支持情况
12.2.2搭建简单的离线应用程序
12.2.3支持离线行为
12.2.4 manifest文件
12.2.5 applicationCache API
12.2.6运行中的应用缓存
12.3使用HTML5离线Web应用构建应用
12.3.1创建记录资源的manifest文件
12.3.2创建构成界面的HTML和CSS
12.3.3创建离线JavaScript
12.3.4检查applicationCache的支持情况
12.3.5为Update按钮添加处理函数
12.3.6添加Geolocation跟踪代码
12.3.7添加Storage功能代码
12.3.8添加离线事件处理程序
12.4小结
第13章HTML5未来展望
13.1 HTML5的浏览器支持情况
13.2 HTML未来的发展
13.2.1 WebGL
13.2.2设备
13.2.3音频数据API
13.2.4触摸屏设备事件
13.2.5 P2P网络
13.2.6最终方向
13.3小结

亚马逊链接

基本信息

名称: 精彩绝伦的CSS
作者信息: 作者: 迈耶 (Eric A.Meyer) [ 中文 pdf ]

简单介绍

《精彩绝伦的CSS》适合所有Web开发与设计人员学习参考。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
第一部分基本原理
第1章工具
1.1Firebug
1.2Web Developer Toolbar
1.3IE开发者工具栏
1.4Dragonfly(Opera浏览器)
1.5Web检查器(Safari浏览器)
1.6XRAY
1.7SelectORacle
1.8诊断样式表
1.9重启样式表
1.10IE9.JS
第2章选择器
2.1伪类与伪元素
2.2为目标元素添加样式
2.3特殊性
2.4重要性
2.5省略简写属性值的关键词时会发生什么
2.6选择性地覆盖简写属性
2.7通用选择
2.8ID还是类
2.9ID与类共用
2.10多类
2.11简单的属性选择
2.12类的属性选择
2.13ID还是属性选择器
2.14部分属性值选择
2.15更多部分属性值选择
2.16选择后代元素
2.17模拟部分子选择
2.18兄弟选择
2.19生成内容
第二部分核心技术
第3章提示
3.1验证
3.2调整字体值的顺序
3.3玩转行高
3.4无单位的行高值
3.5避免缺少样式的边框值
3.6使用颜色控制边框外观
3.7抑制元素的显示
3.8抑制元素的可见性
3.9将元素移出屏幕
3.10图像替换
3.11打印样式
3.12开发打印样式
3.13块级链接
3.14外边距还是内边距
3.15凸排列表
3.16为列表添加标记
3.17通过背景实现列表标记
3.18生成列表标记
3.19不可不知的容器
3.20文档背景
3.21服务器特定的CSS
第4章布局
4.1用轮廓代替边框
4.2居中块状框
4.3通过溢出遏制浮动
4.4通过浮动遏制浮动
4.5清除浮动
4.6相邻清除
4.7简单的两栏布局
4.8简单的三栏布局
4.9伪造栏布局
4.10流式漂白布局
4.11唯一布局
4.12Holy Grail
4.13流式网格
4.14基于em的布局
4.15文档流中的负外边距
4.16在特定的上下文中使用定位
4.17将元素推出包含块
4.18固定的页头和页脚
第5章效果
5.1复杂的螺旋
5.2CSS弹出框
5.3CSS菜单
5.4框冲切
5.5CSS3预备圆角
5.6CSS3圆角
5.7CSS精灵
5.8滑动门
5.9裁切的滑动门
5.10CSS视差
5.11参差浮动
5.12更好的参差浮动
5.13图像的框
5.14受限的图像
第三部分前沿技术
第6章表格
6.1表头、主体和脚注
6.2行标题
6.3面向列的样式
6.4表的映射
6.5表的图形化
第7章可预见的未来
7.1为HTML5应用样式
7.2像HTML5一样给类命名
7.3媒体查询
7.4为特定的子元素应用样式
7.5为特定的列应用样式
7.6RG Balpha颜色
7.7HSL颜色和HSL alpha颜色
7.8阴影样式
7.9多背景
7.10二维变换

亚马逊链接