第1章 走近ASP.NET 3.5 1
1.1两大网络应用体系 1
1.1.1 C/S网络结构 1
1.1.2 B/S网络结构 2
1.2两大语法编程体系 3
1.3三大数据库管理系统 3
1.3.1 SQL Server 4
1.3.2 Oracle 4
1.3.3 DB2 4
1.4三大服务器技术 4
1.4.1 ASP/ASP.NET 5
1.4.2 PHP 5
1.4.3 JSP 6
1.5 ASP.NET技术 7
1.5.1 ASP.NET的发展历史 7
1.5.2 ASP.NET的脚本语言 7
1.5.3 ASP.NET的技术特点 8
1.5.4 .NET框架 8
1.6配置ASP.NET 3.5网站 10
1.6.1在Windows Server 2008/Vista系统中配置IIS 7.0 10
1.6.2在IIS 7.0中部署ASP.NET 3.5网站 16
第2章 VS2008+SQL Server 2005操作基础 19
2.1 ASP.NET运行环境概述 19
2.2 ASP.NET开发工具概述 20
2.3安装Visual Studio 2008 21
2.4配置Visual Studio 2008 22
2.5用Visual Studio 2008创建ASP.NET网站 25
2.5.1新建ASP.NET网站 25
2.5.2设计页面 26
2.5.3预览页面 27
2.5.4在网站中添加资源文件夹 29
2.5.5在网站中添加模板页 30
2.6管理ASP.NET网站 31
2.7认识ASP.NET文件 32
2.8分析ASP.NET文档结构 33
2.8.1页面指令 34
2.8.2代码部分 34
2.8.3页面布局 35
2.9 SQL Server 2005快速操作 37
2.9.1使用SQL Server 2005创建数据库 37
2.9.2使用SQL Server 2005创建数据表 41
2.9.3使用SQL Server 2005管理数据 45
2.9.4使用SQL Server 2005快速备份和还原数据库 47
2.9.5使用SQL Server 2005快速分离和附加数据库 49
2.10使用Visual Studio 2008绑定SQL Server 2005数据的可视化操作 52
2.10.1创建SqIDataSource 52
2.10.2实现GridView与SqlDataSource的数据绑定 56
第3章 C#程序设计入门 60
3.1 C#语言概述 60
3.1.1从第1个C#程序说起 60
3.1.2测试C#程序 62
3.1.3编写C#程序基本语法 64
3.2数据类型 68
3.2.1值类型 69
3.2.2引用类型 72
3.2.3装箱和拆箱 73
3.3变量和常量 74
3.3.1命名变量 74
3.3.2声明变量 75
3.3.3初始化变量 75
3.3.4变量作用域 76
3.3.5常量 79
3.4表达式和运算符 79
3.4.1算术运算符 79
3.4.2赋值运算符 81
3.4.3逻辑运算符 81
3.4.4比较运算符 82
3.4.5运算符的优先级 82
3.4.6名称空间 83
3.5语句 84
3.5.1 C#语句概述 84
3.5.2条件语句 85
3.5.3循环语句 89
3.5.4跳转语句 95
3.6函数 96
3.6.1定义和使用函数 96
3.6.2函数的返回值与参数 97
3.6.3 Main()函数 99
3.7类 99
3.7.1定义类 99
3.7.2类的属性 100
3.7.3类的方法 101
3.7.4类的字段值 102
3.7.5继承 103
3.7.6重载 104
3.7.7重写 106
3.7.8构造函数 107
3.7.9析构函数 107
3.8异常处理 108
3.8.1 try-catch语句 108
3.8.2 try-finally语句 109
第4章 网站准入与安全防范——网站注册、登录和验证模块 110
4.1建立用户信息数据表 110
4.2设计注册表单 112
4.3注册信息验证 114
4.4验证控件的灵活应用 117
4.4.1范围验证 118
4.4.2比较验证 120
4.4.3电话号码验证 123
4.4.4日期验证 125
4.5保存用户注册信息 125
4.6完善用户注册功能 128
4.6.1对输入密码进行加密 128
4.6.2验证用户信息是否重复 129
4.7用户登录 130
4.7.1设计用户登录控件 130
4.7.2登录功能实现 132
4.7.3应用登录控件 134
4.7.4退出登录 134
4.8设计图形验证码 135
4.8.1定义验证码类 135
4.8.2应用验证码类 137
4.9用户登录安全防范 139
4.9.1防止SQL注入式攻击 140
4.9.2防止脚本注入式攻击 140
第5章 让网站开始聚集人气——网站交互留言模块 143
5.1留言板模块功能分析与总体设计 143
5.1.1留言板功能分析 143
5.1.2留言板整体设计 144
5.1.3数据结构设计 144
5.1.4建立数据库连接字符串 145
5.1.5获取数据库连接字符串 146
5.2留言列表 148
5.2.1定义留言板导航用户控件 149
5.2.2注册和引用导航用户控件 150
5.2.3定义数据查询与绑定过程 150
5.2.4绑定数据字段到DataList控件 151
5.2.5初始化页面显示 153
5.2.6分页导航 153
5.2.7回复显示 155
5.3发表留言 155
5.3.1设计留言发表表单 156
5.3.2表单验证 157
5.3.3插入数据 157
5.4留言模块后台管理 158
5.4.1后台登录 158
5.4.2用户管理 160
5.4.3后台管理控制台 161
5.4.4在表单上绑定留言回复 164
5.4.5更新留言回复 165
5.4.6删除留言 166
5.4.7退出管理 167
第6章 探秘二进制数据流——图片上传系统模块 168
6.1预备知识——.NET图形命名空间 168
6.1.1认识.NET图形命名空间 168
6.1.2 System.Drawing画图起步 169
6.1.3绘制复杂图形 171
6.1.4绘制坐标图 173
6.1.5在网页中定位绘制的图形 175
6.2图片上传 176
6.2.1使用HTML Input(File)控件上传文件 176
6.2.2使用FileUpload控件限制上传图片 177
6.3增强图片上传功能 179
6.3.1解决服务器端同名覆盖问题 179
6.3.2上传图片统一命名 179
6.3.3给上传图片增加文字水印 182
6.3.4给上传图片增加图片水印 184
6.3.5给上传图片增加透明图片水印 185
6.3.6制作上传图片的缩微图 189
6.4把图片上传到数据库 191
6.4.1在本地建立数据库 191
6.4.2上传图片到数据库 192
6.4.3从数据库中读取图片 193
第7章 知己知彼百战不殆——网站流量与统计监测 196
7.1流量统计模块功能分析 196
7.2数据结构设计 198
7.3自定义数据库操作类 200
7.3.1数据库连接 201
7.3.2数据库操作 202
7.4获取用户信息 204
7.4.1初始化页面 204
7.4.2获取用户基本信息 206
7.4.3计算用户信息 209
7.4.4使用Request对象获取更多用户信息 211
7.5记录用户信息 213
7.5.1存储用户信息 213
7.5.2更新系统统计值 213
7.5.3存储用户浏览量 215
7.6绑定被统计站点和输出动态数据 216
7.6.1读取用户统计信息 216
7.6.2输出流量统计标识和动态信息 217
7.6.3绑定到被统计站点 218
7.7用户管理 219
7.7.1用户登录 219
7.7.2后台验证 221
7.7.3设计用户管理框架 221
7.7.4退出管理 225
7.8流量统计与分析 226
7.8.1 PV值统计 226
7.8.2 24小时实时流量统计 228
7.8.3日流量统计 229
7.8.4周流量统计 230
7.8.5客户端统计 231
7.8.6 IP地址及访问量分析 232
7.8.7来路分析 234
7.8.8访问者地区分析 235
7.8.9被访页面统计 237
第8章 让自己的网站更具亲和力——网站投票与反馈模块 239
8.1网站投票模块功能分析 239
8.2数据结构设计 240
8.3 LINQ to SQL介绍 241
8.3.1 LINQ to SQL概述 241
8.3.2 LINQ to SQL的优点 242
8.3.3使用LINQ to SQL前的准备 243
8.3.4 LINQ to SQL常用功能介绍 244
8.3.5 Lambda表达式简介 245
8.4使用LINQ to SQL构建网站投票模块数据层 246
8.5制作后台管理模块 250
8.5.1建立母版页 250
8.5.2建立投票项目管理页面 252
8.6建立投票选项设置页面 257
8.6.1 Page_Load事件设计 260
8.6.2添加、修改投票项目 261
8.6.3添加投票选项 262
8.6.4绑定投票选项到gvVoteltems控件 262
8.6.5修改投票选项 263
8.6.6删除投票选项 264
8.7制作前台投票模块 265
8.7.1制作投票用户控件 265
8.7.2引用投票用户控件 270
第9章 网上商店交易引擎——购物车模块 271
9.1网站购物车模块功能分析 271
9.2实体类设计 272
9.2.1商品数据实体类 272
9.2.2购物车实体类 273
9.3 LINQ to XML介绍 274
9.3.1 XML概述 274
9.3.2 LINQ to XML概述 277
9.3.3使用LINQ to XML 对.XML文件进行操作 279
9.4 ASP.NET Session简介 284
9.5使用LINQ to XML为购物车生成XML数据源 288
9.6从XML数据源中查询商品信息 289
9.7 显示商品信息 291
第10章 挖掘网络信息的剩余价值——RSS信息发布与聚合模块 305
10.1 RSS概述 305
10.1.1 RSS的历史 305
10.1.2 RSS的现状 306
10.1.3 RSS的未来 306
10.2 RSS的使用 307
10.2.1发布RSS 307
10.2.2订阅RSS 307
10.3 RSS 2.0规范 309
10.3.1 rss节点 310
10.3.2 channel节点 310
10.3.3 item节点 311
10.4制作RSS发布模块 312
10.4.1建立数据环境 312
10.4.2建立响应RSS请求的一般处理程序 318
10.4.3使用IE浏览器计阅自制RSS内容 320
10.5开发简易的RSS阅读器 321
10.5.1使用XSLT定义阅读器外观 321
10.5.2使用XSLT转换RSS聚合内容 324
10.5.3整合RSS阅读器 325
第11章 社会化网络服务——SNS问答模块 328
11.1网站问答功能概述 328
11.1.1问答流程设计 328
11.1.2问答模块数据库结构设计 331
11.2 LINQ to Entities介绍 333
11.2.1 LINQ to Entities概述 333
11.2.2 LINQ to SQL和 LINQ to Entities的适用场合 335
11.2.3 LINQ to Entities的基本方法和属性 335
11.2.4 LINQ to Entities扩展方法 338
11.3使用LINQ to Entities构建问答模块数据层 340
11.4开发问答模块后台管理 345
11.4.1用户管理 347
11.4.2目录管理 349
11.4.3编辑区域 350
11.4.4提问管理 359
11.5开发问答模块前台 363
11.5.1用户登录 363
11.5.2新建问题 363
11.5.3提问管理 363
11.5.4回答问题 364
11.5.5用户登录 368
11.5.6新建提问 371
11.5.7提问管理、回答问题 373
第12章 神秘的网络爬虫——网站信息检索与搜索模块 377
12.1网站搜索技术概述 377
12.1.1站内搜索的真正意义 377
12.1.2站内搜索的技术难点 378
12.2实现站内搜索的几种方案 380
12.2.1依靠站内实时数据实现 380
12.2.2依靠站内搜索引擎实现 381
12.2.3依靠第三方搜索引擎实现 381
12.2.4取长补短 382
12.3搜索引擎优化 382
12.3.1网页价值指数 383
12.3.2搜索引擎三部曲 384
12.3.3 SEO优化原则 384
12.4正则表达式 387
12.4.1正则表达式的历史 387
12.4.2正则表达式的用途 387
12.4.3 C#正则表达式语法基础 388
12.4.4 C#中的正则表达式的语言元素 396
12.4.5 C#中的Regex类 400
12.5创建站内搜索模块 401
12.5.1建立通用搜索入口 402
12.5.2搜索结果页面 403
12.6优化站内搜索模块 409
12.6.1匹配准确程度 409
12.6.2用户使用体验 410
12.6.3关键字过滤 414
第13章 更高效的网站——缓存技术在网站中的初步应用 416
13.1网页中常用缓存的概述 416
13.1.1高速缓存的用途及优点 417
13.1.2高速缓存的限制及其软肋 418
13.2页面级缓存 419
13.2.1在ASP.NET中使用页面缓存 421
13.2.2 ASP.NET中的用户控件缓存 427
13.2.3 ASP.NET中页面缓存的优缺点 431
13.3数据级缓存 432
13.3.1 ASP.NET中数据缓存的介绍 433
13.3.2数据缓存的应用范围和使用注意点 437
13.4数据缓存的依赖项使用 438
13.4.1文件依赖 438
13.4.2其他的缓存项依赖 441
13.4.3数据库依赖 443
13.4.4关联依赖 449
第14章 更高效的网站——企业级缓存优化策略 452
14.1缓存机制设计的一些原则 452
14.1.1适量适用原则 452
14.1.2功能与效率平衡原则 452
14.1.3同步原则 453
14.1.4充分利用原则 453
14.1.5灵活原则 453
14.2缓存优化设计 453
14.2.1页面缓存优化设计 453
14.2.2数据缓存优化设计 454
14.3建立通用数据缓存模块 456
14.3.1建立缓存策略接口 456
14.3.2实现缓存策略接口 458
14.3.3建立缓存基类 462
14.3.4全局数据库依赖设置 465
14.4其他一些缓存机制的建议 468
14.4.1索引 469
14.4.2多线程同步 469
14.4.3关键字 470
14.4.4数据库访问 470
第15章 更高效的网站——使用缓存技术优化问答模块 471
15.1问答模块的缓存机制设计 471
15.1.1问答模块页面缓存优化设计 471
15.1.2问答数据缓存优化设计 471
15.2建立问答模块的缓存机制 472
15.2.1页面缓存优化 472
15.2.2建立单项缓存类:用户信息 477
15.2.3建立单项缓存类:全局设置 479
15.2.4建立单项缓存类:提问目录 481
15.2.5建立单项缓存类:问题及站内搜索 482
15.2.6使用LINQ to Entities方法创建存储过程 491
15.3将数据缓存模块整合到问答模块 494
15.3.1后台管理-用户页面 494
15.3.2后台管理-目录页面 495
15.3.3问题详细页面 497
15.3.4搜索结果页面 498
15.4使用缓存模块的效率测试 503
15.4.1测试原始数据库查询 504
15.4.2测试使用缓存查询 505
15.4.3测试结果对比分析 506
15.4.4测试缓存搜索的多关键字搜索 507