标题：ASP.NET编程之道(1DVD)
图书信息
书名：《ASP.NET编程之道》 
出版社：人民邮电出版社 
ISBN：978-7-115-24358-4 
出版时间：2011-03-01 
作者：明日科技 刘云峰 房大伟
定价：69元RMB 
  
内容简介
本书是一本帮助程序员提高编程素养的图书，书中结合开发人员多年的编程经验和感悟，介绍了程序开发中必知必会的关键细节、不可忽略的技术陷阱、常见的谬误以及经典的应用实例。全书分为6篇，共13章，全面介绍了学习和应用ASP.NET进行网站开发的各种知识。主要包括：程序员的成长之路，如何培养编程兴趣，编程学习经验，在编程的过程中可能会犯的错误，编程中必须掌握的技术细节、开发经验，项目开发中必备的算法和解决方案等。
本书附带有配套DVD光盘，光盘中提供有书中全部实例和项目的源代码，这些源代码都是经过作者精心调试通过的，保证能够在Windows XP、Windows Server 2003及Windows 7操作系统下编译和运行。
本书非常适合大中专院校在校生、毕业生、求职者、编程爱好者学习，同时也可以作为想要学习编程的初级人员的指导用书。
图书目录
第1篇　编程经验与感悟篇
第1章　编程感悟6则　2
感悟01　程序员的成长之路　2
感悟02　程序员应具备的素质　3
感悟03　程序员的必备技能　4
感悟04　程序员的认识误区　5
感悟05　程序员的生涯规划　6
感悟06　未来IT发展趋势　7
第2章　编程经验谈6则　9
经验01　培养编程的兴趣　9
经验02　编程学习经验谈　10
经验03　代码规范经验谈　12
经验04　数据库设计经验谈　13
经验05　项目实战经验谈　15 
第2篇　陷阱或谬误篇
第3章　不可忽视的30个技术陷阱　18
陷阱01　版本不一致产生的陷阱　18
陷阱02　结构初始化产生的陷阱　21
陷阱03　传递派生类产生的陷阱　23
陷阱04　用DataReader读取数据时产生的陷阱　25
陷阱05　类型转换时产生的陷阱　26
陷阱06　以DataReader作为返回类型的陷阱　28
陷阱07　GridView绑定DataReader产生的陷阱　30
陷阱08　SqlDateTime溢出陷阱　33
陷阱09　写网站中XML文件产生的陷阱　35
陷阱10　访问下拉列表控件的SelectedValue属性产生的陷阱　37
陷阱11　动态加载用户控件的陷阱　39
陷阱12　JavaScript设置服务器控件值　41
陷阱13　放置隐藏字段的陷阱　43
陷阱14　动态加载设置输出缓存的用户控件　45
陷阱15　为删除按钮添加删除确认对话框　47
陷阱16　页面在客户端转向的陷阱　49
陷阱17　Web Service方法重载产生的陷阱　50
陷阱18　编写JavaScript代码时的空格陷阱　52
陷阱19　使用可空符号??运算　54
陷阱20　获取错误信息并到指定页面　56
陷阱21　使用LINQ的First方法　58
陷阱22　文件格式与文件读取的陷阱　60
陷阱23　读写二进制文件的陷阱　61
陷阱24　母版页中使用img标签　63
陷阱25　页面缓存产生的陷阱　65
陷阱26　使用查询字符串在页面间传递参数　67
陷阱27　通用数据类型运算产生的陷阱　70
陷阱28　在模态窗口中下载文件　71
陷阱29　构造方法中调用虚方法的陷阱　75
陷阱30　使用值类型进行线程同步　77
第4章　开发人员意识中的20个常见谬误　80
谬误01　所有的异常都要使用try…catch语句捕获　80
谬误02　Web控件的Enabled功能等价于HTML控件的 disabled属性　81
谬误03　将Session设置为空就是删除该会话状态　82
谬误04　RegisterStartupScript方法不能向页面输出文本　83
谬误05　数据绑定表达式会自动计算它的值　84
谬误06　事件和委托的差别很大　84
谬误07　Visual C# 2008具有的特征Visual Basic 2008都具有　85
谬误08　.NET中的应用程序域和操作系统中的进程完全相同　86
谬误09　C#中没有全局变量　87
谬误10　.NET和SQL Server中“空值”是一回事　87
谬误11　C#的结构和C++的完全一样　87
谬误12　方法中只有引用类型的参数才能实现引用传递　88
谬误13　字符串是值类型　88
谬误14　数据绑定表达式中Eval功能等价于Bind　89
谬误15　.Net中的数组类型和C++的数组没有区别　90
谬误16　泛型不被指定的情况下是不确定的类型　91
谬误17　Object类型比较方法上的一些误解　92
谬误18　.NET中的线程等价于Win32线程　93
谬误19　TextBox控件依靠ViewState保存状态数据　94
谬误20　必须在页面添加link元素才能使用CSS文件中的样式　95 
第3篇　技术细节篇
第5章　必知必会的40个C＃语言方面的技术细节　100
细节01　给C#代码加注释的意义　100
细节02　装箱和拆箱　102
细节03　理解值类型和引用类型　103
细节04　隐式转换和显式转换　106
细节05　前缀方式增1和减1运算符　108
细节06　理解移位运算符　110
细节07　理解运算的次序　111
细节08　理解参数的类型　112
细节09　重载方法　116
细节10　虚方法与重写方法　117
细节11　结构和类的区别　119
细节12　什么是封装　122
细节13　什么是继承　124
细节14　什么是多态性　125
细节15　作用域的概念　128
细节16　使用索引器　129
细节17　base和this关键字　130
细节18　理解静态修饰符　131
细节19　.Net的object类　133
细节20　细说可空类型　134
细节21　分部类　136
细节22　匿名方法　137
细节23　.Net框架提供的属性(Attribute)　138
细节24　自定义属性类(Attribute)　140
细节25　泛型　142
细节26　包含/委托　144
细节27　实现迭代器　146
细节28　压缩和解压缩流的方法　149
细节29　C#中的深复制和浅复制　152
细节30　全角字符转换为半角　153
细节31　分析路径字符串函数总结　154
细节32　重载一元、二元运算符　156
细节33　对象也能排序　157
细节34　实现IDisposable接口清除对象　159
细节35　将字符串转为字符数组　160
细节36　将字符数组写入到字符串　161
细节37　使用var创建隐型局部变量　162
细节38　Lambda表达式　163
细节39　生成缩略图的方法　164
细节40　使用缓冲流　166
第6章　必知必会的28个ADO.NET、XML及LINQ方面的技术细节　168
细节01　ADO.NET调用存储过程插入数据　168
细节02　ADO.NET调用存储过程查询数据　170
细节03　ADO.NET仅影响一行的数据操作　171
细节04　ADO.NET返回多行数据操作　175
细节05　ADO.NET影响多行的数据操作　176
细节06　ADO.NET得到多组数据　179
细节07　DataSet操作XML文件　180
细节08　XML节点操作　183
细节09　用XmlReader读取XML　186
细节10　用XmlWriter写入XML　187
细节11　DataReader对象与DataSet对象的区别　188
细节12　对象的筛选操作　190
细节13　对象的投影操作　191
细节14　对象的排序操作　192
细节15　对象的聚合操作　195
细节16　对象的集合操作　199
细节17　对象的元素操作　202
细节18　对象的联接操作　203
细节19　查询DataSet中的单个表　205
细节20　查询DataSet中的多个表　207
细节21　对DataSet进行投影操作　208
细节22　对DataSet进行筛选操作　209
细节23　对DataSet进行排序操作　210
细节24　对DataSet进行聚合操作　212
细节25　对DataSet进行元素操作　212
细节26　对DataSet进行联接操作　213
细节27　对DataSet进行数据分区操作　215
细节28　使用LINQ数据源控件　216
第7章　必知必会的22个Web方面的技术细节　220
细节01　在网页中使用CSS的方式　220
细节02　动态调用JavaScript　222
细节03　用Request对象获得信息　224
细节04　用Response对象输出信息　225
细节05　URL编码与解码　226
细节06　取站点路径　228
细节07　ViewState　228
细节08　隐藏域　229
细节09　Cookie　230
细节10　Application　232
细节11　Session　233
细节12　定义主题　234
细节13　应用主题　238
细节14　动态加载主题　239
细节15　母版页　242
细节16　设置母版页应用范围　246
细节17　数据格式验证　247
细节18　ImageMap典型应用　249
细节19　MultiView和View控件典型应用　252
细节20　Wizard控件典型应用　257
细节21　DetailsView典型应用　262
细节22　BulletedList典型应用　267 
第4篇　开发技巧篇
第8章　必知必会的30个语言方面的经验技巧　272
技巧01　Parse与TryParse的区别　272
技巧02　变量的默认值　273
技巧03　判断字符串是否为空　273
技巧04　使语句执行安全的数学计算　274
技巧05　多用Foreach语句　275
技巧06　理解按位求反运算符　275
技巧07　关闭字符串中的特殊字符　276
技巧08　接口和抽象类的选择　276
技巧09　取枚举类子项的描述信息　277
技巧10　接口索引器　278
技巧11　创建自已的Where操作符　278
技巧12　使用new关键字重复使用标识符　280
技巧13　实现具有相同名称的接口方法　281
技巧14　使用is关键字处理接口　282
技巧15　使用非整数表示数组的索引　283
技巧16　尽量用StringBuilder　284
技巧17　对比ArrayList和ListT　285
技巧18　对比Stack和StackT　286
技巧19　对比Queue和QueueT　287
技巧20　对比SortedList和StoredListT　287
技巧21　进制转换技巧　288
技巧22　什么是复制构造函数　289
技巧23　ToString的使用技巧　290
技巧24　什么时候使用密封类　291
技巧25　using关键字的用法　292
技巧26　对象和集合初始化器　293
技巧27　创建匿名类型的对象、数组　293
技巧28　善于使用代码重构　294
技巧29　善于使用条件编译　295
技巧30　标准化事件驱动的设计　296
第9章　必知必会的15个ADO及XML方面的经验技巧　298
技巧01　在数据库连接中使用连接池　298
技巧02　如何更有效地管理连接字符串　299
技巧03　使用DataView操作数据集　300
技巧04　效率最高的数据读取方式　301
技巧05　从XML中加载数据集　302
技巧06　从XML中加载数据集架构信息　303
技巧07　根据数据集生成XML及XML框架　304
技巧08　强类型的DataSet　306
技巧09　数据集与XML建立同步关联　307
技巧10　数据关系导航DataRelation　308
技巧11　合并两个数据集的数据内容　309
技巧12　复制数据集　310
技巧13　动态创建DataTable技术全析　310
技巧14　DataTable行状态与行版本　313
技巧15　实现数据表行列转换　314
第10章　必知必会的40个LINQ方面的经验技巧　316
技巧01　查询非泛型集合　316
技巧02　筛选指定类型元素　317
技巧03　转换为泛型列表　318
技巧04　转换为数组　318
技巧05　转换为字典类型　319
技巧06　转换为一对多的字典　320
技巧07　创建包含默认元素或空值的集合　321
技巧08　比较两个数据表数据是否完全相同　322
技巧09　创建指定范围值的序列　323
技巧10　创建包含指定数量重复值的序列　323
技巧11　LINQ查询中的限定符　324
技巧12　查询序列中指定区域的元素　325
技巧13　判断两个序列是否相等　326
技巧14　将两个序列串联起来　327
技巧15　使用嵌套查询　327
技巧16　操作泛型排序列表　329
技巧17　操作泛型双向链表　330
技巧18　操作泛型队列　331
技巧19　按照多个条件分组　332
技巧20　操作泛型哈希集合　333
技巧21　实现LINQ动态查询的方法　334
技巧22　操作泛型排序字典　336
技巧23　查找字符串中指定类型的字符　337
技巧24　过滤出包含指定单词的句子　337
技巧25　统计每个单词在文章中的出现次数　339
技巧26　查找在文章中以ing结尾的单词　340
技巧27　取两个目录中的同名文件　341
技巧28　使用LINQ创建DataView　342
技巧29　使用LINQ创建XML文件　343
技巧30　添加元素到XML文件　344
技巧31　修改XML文件中的元素　345
技巧32　删除XML文件中的元素　347
技巧33　将XML文件中的属性转换为元素　348
技巧34　查找指定名称的文件　349
技巧35　查找指定属性的文件　350
技巧36　查找包含指定内容的文件　351
技巧37　合计XML元素值　351
技巧38　将字符串数组按元素长度分组　352
技巧39　使用LINQ为ListView提供数据　353
技巧40　获得序列中元素的索引位置　354
第11章　必知必会的65个Web方面的经验技巧　356
技巧01　用meta标签来增强网页性能　356
技巧02　给服务器控件添加不存在的属性　357
技巧03　如何动态使用表格　358
技巧04　PlaceHolder容器控件的使用技巧　359
技巧05　用框架定制页面布局的技巧　360
技巧06　在HTML中创建ArrayList对象　362
技巧07　Javascript和C#之间的互相调用与访问　362
技巧08　自定义实现让TextBox控件只能输入数字　364
技巧09　绝对路径表示方法　365
技巧10　在刷新或提交页面后保持页面滚动条的位置　366
技巧11　设置Web窗体的默认按钮　366
技巧12　设置Web窗体的默认焦点控件　367
技巧13　页面传值方式博览　367
技巧14　动态创建客户端脚本　368
技巧15　HyperLink和LinkButton按钮的区别　369
技巧16　用最简单的方法实现站点导航　370
技巧17　以编程方式向TreeView控件中添加节点　372
技巧18　Menu控件绑定站点地图实现导航　373
技巧19　网页代码文件中定义变量的技巧　373
技巧20　实现GridView无刷新换页及排序　374
技巧21　合理使用GridView　375
技巧22　使用GridView实现简单排序功能　375
技巧23　GridView上加滚动条　377
技巧24　删除行时弹出确认对话框　378
技巧25　改变GridView当前行的颜色　379
技巧26　单击GridView中的按钮执行客户端脚本　379
技巧27　设置GridView列的显示格式　380
技巧28　将DropDownList控件嵌入GridView　381
技巧29　将CheckBox控件嵌入GridView　382
技巧30　实现自动编号功能　383
技巧31　实现用“...”代替超长字符串　383
技巧32　GridView一般换行与强制换行　384
技巧33　创建表头固定表体可滚动的GridView　386
技巧34　为GridView加入小计　386
技巧35　页面跳转方法对比分析　387
技巧36　关闭子窗口时刷新父窗口　388
技巧37　使用主题实现网页皮肤动态切换　388
技巧38　访问母版页中的成员　390
技巧39　访问母版页中控件的值　391
技巧40　自定义HTTP处理程序　392
技巧41　HTTP模块　393
技巧42　缓存页面的技巧　394
技巧43　尽量使用数据缓存　395
技巧44　使用脚本管理控件引入脚本资源　396
技巧45　使用Timer控件实现记时器功能　398
技巧46　使用UpdatePanel控件实现局部更新　399
技巧47　多个UpdatePanel控件之间的关系　400
技巧48　为控件添加水印提示　401
技巧49　智能提示输入密码的强度　403
技巧50　无刷新播放照片　404
技巧51　实现弹出模态窗体　406
技巧52　实现日期选择下拉框　407
技巧53　为异步操作提供进度提示　408
技巧54　使用缓存区输出图像　409
技巧55　使用jQuery实现带进度的上传文件功能　411
技巧56　如何下载大文件　413
技巧57　在GridView中跨页面实现多行选择　414
技巧58　在浏览器中访问Word文件　415
技巧59　通过Forms身份验证之前也能访问网站资源　416
技巧60　利用PostBackUrl属性实现页面传值　417
技巧61　在Table控件中显示标题　418
技巧62　在Web页中使用广告控件　418
技巧63　在Web页中滚动显示公告信息　419
技巧64　为TextBox控件设置热键　420
技巧65　实现客户端回调CallBack　421
第5篇　算法和效率篇 
第12章　常用的20个算法及应用　424
算法01　单向链表　424
算法02　双向链表　430
算法03　堆栈　437
算法04　队列　439
算法05　树的实现　441
算法06　冒泡排序算法　446
算法07　选择排序算法　447
算法08　插入排序算法　449
算法09　希尔排序算法　450
算法10　判断素数的算法　451
算法11　加密和解密算法　452
算法12　判断身份证是否合法　454
算法13　判断IP地址是否合法的算法　456
算法14　按要求生成指定位数编号　457
算法15　身份证号从15位升到18位算法　459
算法16　百钱百鸡的算法　460
算法17　韩信点兵的算法　462
算法18　实现裴波纳契数列求和　463
算法19　求水仙花数的算法　464
算法20　如何将B转换成GB、MB和KB　465 
第6篇　解决方案篇
第13章　项目中经常用到的20个解决方案　468
方案01　GridView绑定数据为空时也显示表头　468
方案02　构建通用权限系统的解决方案　472
方案03　构建安全网站的全套方案　478
方案04　在Web页面中使用模态窗口　485
方案05　CommandBuilder类自动生成DataAdapter的更新命令　488
方案06　实现分布式事务的方案　489
方案07　提供一种与.Net环境集成度好的ORM方案　490
方案08　基于XSD的XML验证方案　493
方案09　在线汉字转拼音　497
方案10　多层系统框架设计方案　500
方案11　实现日志管理的方案　505
方案12　创建多语言版本网站　511
方案13　网页打印的全套解决方案　515
方案14　实现GridView多级复杂表头的解决方案　521
方案15　登录网站验证方案　524
方案16　异步调用WebService　531
方案17　在线压缩和解压缩文件　534
方案18　更换网站皮肤的方案　540
方案19　自动适应不同数据库的数据访问层　546
方案20　实现真正的分页功能　552