标题：一览众山小：ASP.NET Web开发修行实录
图书信息
一览众山小：ASPdotnet Web开发修行实录  薛小龙  等编著
ISBN 978-7-121-12934-6
2011年3月出版
定价：79.00元（含DVD光盘1张）
16开
596 页
宣传语
从基础到实践
从入门到提高
内 容 简 介
ASPdotnet是当今使用最为频繁的Web开发技术之一，一直在开发领域占据重要的地位。本书循序渐进、由浅入深地详细讲解了ASPdotnet 4.0的核心技术，并通过具体实例的实现过程演练了各个知识点的具体使用流程。全书共23章，分为5篇。其中第1~6章是基础篇，讲解了ASPdotnet 4.0开发所必须具备的基本知识，包括搭建开发环境、C#语法、面向对象；第7~12章是核心技术篇，包括页面结构、内置对象、控件和组件；第13~18章是提高篇，包括ADOdotnet，母版页、样式、主题和皮肤、个性化、WebParts、缓存、网站安全；第19~22章是典型模块篇，讲解了现实应用中最常见的4个典型模块的实现流程；第23章是综合实战篇，通过一个在线相册系统讲解了ASPdotnet 4.0在大型站点中的综合应用流程。全书采用故事性、趣味性相结合的对话讲解方式，并穿插了学习技巧和职场生存法则，引领读者全面掌握ASPdotnet。
本书不但适用于ASPdotnet的初学者，也适于有一定ASPdotnet基础的读者，甚至也可以作为有一定造诣程序员的参考书。
前  言
ASPdotnet的重要性
随着Internet的普及推广，Web开发技术得到了迅速发展，软件行业对Web应用程序开发人员的需求也越来越多。目前，ASPdotnet技术已成为Web应用开发的主流技术之一，受到广大Web开发人员的喜爱。ASPdotnet技术已被广泛应用于电子商务、电子政务、远程教育、网上资源管理等领域。ASPdotnet全面支持面向对象的设计思想，提供了一个功能强大的Web应用程序开发模式，使Web应用程序开发变得更加直观、简单和高效。在ASP. NET中HTML代码和程序功能代码分离，大大提高了ASPdotnet页面的设计效率以及程序代码的可阅读性、可调试性与可维护性。而基于ASPdotnet进行Web项目开发需要综合应用服务器脚本语言（ASPdotnet）、数据库技术（如SQL Server）和软件工程等领域的知识和技能，并且需要经过不断的项目开发实践，从“做中学，学中做”，才能持续提升项目开发能力和提升软件开发的理论认识。
本书的架构
本书分为5篇，分别是基础篇、核心技术篇、提高篇、典型模块篇和综合实战篇。各篇内容从头开始循序渐进，和读者的成长同步。一般来说，读者学习程序的过程分为4个阶段：入门阶段、上手阶段、大悟阶段和初级程序员。为了表述得更加直观，下图展示了学习程序的成长历程。
本书的特色
本书的最大特色是用一问一答的模式穿插知识点，用故事性和趣味性的语言来讲解枯燥的编程知识。本书讲述了一个编程初学者“我”在老师KNOWALL的帮助下顺利掌握开发技术的成长历程。作者用日记的格式全程记录了学习历程，日记和生活密切相关，也和知识点相关，使读者读后有一个豁然开朗的感觉。
（1）以作者学习经历为主线
从作者开始学习讲起，一直贯穿整个学习过程。以日记的方式记录下了学习过程中的点点滴滴，趣味和知识并重，情节引人入胜。
（2）每个实例是精心挑选典型代表，丰富的技巧提示。
书中遵循了理论加实践的写作模式，在么和知识点讲解完毕之后，都会用一个具体实例来演练知识点的用法。所有实例都是具有典型的和代表性的。
（3）通俗的语言，大话的讲解模式
以最通俗的语言来实现，以大话的方式将知识展现给读者。让读者仿佛是在看一个故事，而不是在学习深奥的语言知识。
（4）用问题串联知识点
为了满足读者的成功感，书中提出了大量测试和问题，通过这些测试和问题将各个知识点串联起来。这样能让读者在问题中学会知识点的运用，一举两得。
（5）提出问题到解决问题，问题一环扣一环
第1步：每章的开始，我们将提出一个能涵盖本章知识的问题；
第2步：详细讲解需要解决这些问题的基本知识；
第3步：解决这个问题；
（6）超值DVD光盘
►实例源代码：包括了书中全部实例的完整源代码。
►开发技术视频教学课堂：结合全书技术体系，用视频教学方式讲解了书中所涉及的所有知识点。
►实例视频教学课堂：用视频教学的方式全面讲解了书中每个实例的具体实现过程。
►精美PPT教案：结合全书内容体系，为教学工作者提供了精心制作的PPT教案。
►超值大赠送：额外免费赠送给读者5个综合案例的完整源码和实例教学视频。
本书的内容
第1～6章是基础篇，介绍了ASPdotnet 4.0开发所必需具备的基本知识，逐一讲解了网页和网站，3种必备技术，搭建开发环境，C#语法，面向对象等领域的知识，并采用理论结合实例的方式对各个知识点进行了剖析。
第7～12章是核心技术篇，逐一讲解了页面结构，内置对象和程序配置，服务器控件，数据控件，验证控件、用户控件和自定义控件等领域的知识，并采用理论结合实例的方式对各个知识点进行了剖析。
第13～18章是提高篇，逐一讲解了ADOdotnet，母版页、样式、主题和皮肤，个性化，WebPart，缓存，网站安全等领域的知识，并采用理论结合实例的方式对各个知识点进行了剖析。
第19～22章是典型模块篇，讲解了现实应用中最常见的4个典型模块：用户登录验证模块、在线信息搜索模块、图文处理模块、在线留言本模块的实现流程，阐述了ASPdotnet 4.0在其中的真谛和运用技巧。
第23章是综合实战篇，通过一个在线相册系统讲解了ASPdotnet 4.0在大型站点中的综合应用流程。
本书的读者对象
初学编程的自学者          编程爱好者
大中专院校的老师和学生      相关培训机构的老师和学员
毕业设计的学生           初中级程序开发人员
程序测试及维护人员          参加实习的初级级程序员
在职程序员                   资深程序员
致谢
本书由薛小龙编写，参加本书还有张储、管西京、李佐彬、王梦、王书鹏、张子言、张建敏、陈德春、李藏、关立勋、秦雪薇、蒋凯、王东华、罗红仙等人，由于时间仓促并因为个人水平有限，有些错误在所难免。如有错误或问题之处请及时告诉我们，可以发送电子邮件及时与我们联系，我们会尽快更正或给予答复。
编者     
2011年3月  
目  录
第一篇  基 础 篇 
第1章  ASPdotnet来了 1
1.1  引出问题 1
1.2  认识网页和网站 1
1.2.1  网页基础知识 2
1.2.2  网站 3
1.3  Web技术和工作原理 3
1.3.1  本地计算机和远程服务器 4
1.3.2  Web应用程序的工作原理 4
1.3.3  常用Web开发技术 5
1.3.4  常用Web概念 7
1.3.5  看ASPdotnet在Web开发中的
1.3.5  作用 9
1.4  Web标准简介 9
1.4.1  Web开发标准概述 10
1.4.2  为什么要使用Web标准 11
1.5  解决问题——ASPdotnet的
1.5  作用 11
1.6  我的总结 12
第2章  必须有的3种武器 13
2.1  引出问题 13
2.2  HTML技术初步 14
2.2.1  创建基本静态页面 14
2.2.2  HTML页面布局 17
2.3  CSS技术基础 18
2.3.1  CSS概述 19
2.3.2  CSS的特点和意义 20
2.3.3  CSS的语法结构 20
2.4  JavaScript技术基础 20
2.5  解决问题 21
2.6  我的总结 22
第3章  工欲善其事，必先利其器 23
3.1  引出问题 23
3.2  配置ASPdotnet环境 23
3.2.1  IIS的安装 24
3.2.2  IIS的配置 25
3.3  全新的Visual Studio 2010 26
3.3.1  Visual Studio 2010新特性 27
3.3.2  安装Visual Studio 2010 28
3.3.3  Visual Studio 2010设置 30
3.3.4  新建项目 30
3.3.5  解决方案管理器 31
3.3.6  文本编辑器 32
3.3.7  生成与查错 34
3.3.8  史上最强大的工具箱 34
3.4  SQL Server 2005的安装与
3.4  配置 35
3.4.1  安装SQL Server 2005 36
3.4.2  配置SQL Server 2005 38
3.4.3  测试SQL Server 2005数据库
3.4.3  连接 39
3.5  编译和部署ASPdotnet程序 40
3.5.1  编译和运行ASPdotnet程序 40
3.5.2  部署ASPdotnet程序 40
3.6  解决问题——寻找快速学习
3.6  编程的捷径 41
3.7  我的总结 41
第4章  C# 4.0基础 43
4.1  引出问题 43
4.2  什么是C# 43
4.2.1  C#的推出背景 43
4.2.2  C#的特点 44
4.3  dotnet Framework介绍 46
4.3.1  dotnet Framework简介 46
4.3.2  几个常见的概念 48
4.3.3  程序编译 49
4.4  C#的基本语法 50
4.5  C#变量 52
4.5.1  C#类型 53
4.5.2  给变量命名 57
4.6  常量 57
4.7  类型转换 57
4.7.1  隐式转换 58
4.7.2  显式转换 58
4.7.3  装箱与拆箱 59
4.8  不是多此一举的其他类型 61
4.8.1  枚举 61
4.8.2  结构 62
4.8.3  数组 63
4.9  基本dotnet框架类 64
4.9.1  Console类 64
4.9.2  Convert类 65
4.9.3  Math类 65
4.10  解决问题 65
4.11  我的总结 66
第5章  C#三驾马车 68
5.1  引出问题 68
5.2  表达式 69
5.3  运算符 69
5.3.1  基本运算符 70
5.3.2  数学运算符 72
5.3.3  赋值运算符 72
5.3.4  比较运算符 73
5.3.5  逻辑运算符 73
5.3.6  移位运算符 73
5.3.7  三元运算符 74
5.3.8  运算符的优先级 74
5.4  语句和流程控制 75
5.4.1  if选择语句 76
5.4.2  循环语句 79
5.4.3  跳转语句 81
5.5  解决问题 83
5.6  我的总结 84
第6章  看面向对象给我们带来了什么 85
6.1  引出问题 85
6.2  面向对象编程基础 86
6.2.1  OPP思想 86
6.2.2  C#的面向对象编程 86
6.3  函数是神秘的箱子 87
6.3.1  定义和使用函数 87
6.3.2  函数参数详解 89
6.4  类 91
6.4.1  定义类 91
6.4.2  类的成员 92
6.5  C#对象 93
6.5.1  创建对象 93
6.5.2  使用对象 94
6.6  C#属性 96
6.7  命名空间 98
6.7.1  C#编译单元 98
6.7.2  完全限定名标识 99
6.7.3  using指令 100
6.8  灵活自由的集合 101
6.8.1  C#集合概述 101
6.8.2  使用集合 103
6.9  C#继承 104
6.9.1  类的层次结构 104
6.9.2  声明继承 105
6.9.3  继承规则 106
6.10  多态 107
6.10.1  虚方法和虚方法重写 107
6.10.2  重写方法的特点 108
6.11  接口 109
6.11.1  定义接口 110
6.11.2  接口的实现和继承 110
6.12  委托 111
6.12.1  声明委托 111
6.12.2  委托链 112
6.13  事件 112
6.13.1  声明事件 113
6.13.2  使用事件 114
6.14  解决问题 115
6.15  我的总结 117
第二篇  核心技术篇
第7章  ASPdotnet页面的结构 119
7.1  引出问题 119
7.2  一个简单的ASPdotnet文件 120
7.2.1  简单ASPdotnet文件实例 120
7.2.2  ASPdotnet页面元素 121
7.2.3  ASPdotnet页面布局 122
7.3  ASPdotnet页面指令 122
7.3.1  Page指令 123
7.3.2  @Master指令 125
7.3.3  @Control指令 126
7.3.4  @Import指令 127
7.3.5  @Implements指令 128
7.3.6  @Assembly指令 129
7.3.7  @PreviousPageType指令 130
7.3.8  @MasterType指令 130
7.3.9  @OutputCache指令 130
7.3.10  @Reference指令 131
7.3.11  @Register指令 131
7.4  解决问题 132
7.5  我的总结 133
第8章  ASPdotnet内置对象和应用
第8章  程序配置 134
8.1  引出问题 134
8.2  ASPdotnet内置对象 134
8.2.1  Response对象 135
8.2.2  Request对象 136
8.2.3  Application对象 138
8.2.4  Session对象 140
8.2.5  Server对象 144
8.2.6  Cookie对象 145
8.2.7  Cache对象 147
8.2.8  Global.asax文件 148
8.2.9  内置对象总结 149
8.3  配置ASPdotnet应用程序 150
8.3.1  ASPdotnet应用程序配置
8.3.1  基础 150
8.3.2  配置文件结构 151
8.3.3  配置文件的继承层次结构 152
8.3.4  使用位置和路径 153
8.3.5  ASPdotnet配置元素 154
8.3.6  自定义应用程序设置 156
8.4  预编译和编译 157
8.4.1  网站预编译 158
8.4.2  网站编译 158
8.5  解决问题 159
8.6  我的总结 159
第9章  HTML服务器控件和Web
第9章  服务器控件 160
9.1  引出问题 160
9.2  HTML服务器控件 160
9.2.1  HTML服务器控件基础 161
9.2.2  HTMLButton控件 161
9.2.3  HTMLInput控件 162
9.3  Web服务器控件 166
9.4  标准控件 167
9.4.1  Label控件 167
9.4.2  TextBox控件 168
9.4.3  CheckBox和CheckBoxList
9.4.3  控件 169
9.4.4  RadioButton和RadioButton
9.4.4  List控件 170
9.4.5  Image控件 171
9.4.6  Table控件 171
9.4.7  按钮控件 172
9.4.8  列表框控件ListBox 175
9.4.9  CheckBoxList控件 176
9.4.10  DropDownList控件 176
9.4.11  DataList控件 180
9.4.12  Wizard控件和WizardStep
9.4.12  控件 185
9.4.13  AdRotator控件 190
9.4.14  Calendar控件 193
9.4.15  HiddenField控件 196
9.4.16  FileUpload控件 197
9.4.17  ImageMap控件 199
9.5  解决问题 201
9.6  我的总结 202
第10章  重要的数据控件 203
10.1  引出问题 203
10.2  先看数据绑定控件 204
10.2.1  GridView控件 204
10.2.2  DetailsView控件 205
10.2.3  FormView控件 206
10.2.4  Repeater控件 207
10.2.5  DataList控件 208
10.2.6  DetailsView控件 210
10.2.7  FormView控件 212
10.2.8  数据绑定控件演练 216
10.3  再看数据源控件 217
10.3.1  SqlDataSource控件 219
10.3.2  AccessDataSource控件 228
10.3.3  XmlDataSource控件 230
10.3.4  SiteMapDataSource控件 232
10.3.5  ObjectDataSource控件 236
10.3.6  LinkButton控件 236
10.4  解决问题 237
10.5  我的总结 242
第11章  验证控件、用户控件和
第11章  自定义控件 243
11.1  引出问题 243
11.2  先看验证控件 244
11.2.1  RequiredFieldValidator
11.2.1  控件 244
11.2.2  RangeValidator控件 245
11.2.3  CompareValidator控件 246
11.2.4  RegularExpressionValidator
11.2.1  控件 246
11.2.5  CustomValidator控件 247
11.2.6  ValidationSummary控件 250
11.3  再看用户控件 252
11.3.1  入门用户控件 252
11.3.2  创建一个简单的用户控件 253
11.3.3  属性和事件 254
11.3.4  动态加载 256
11.3.5  片段缓存处理 257
11.4  自定义控件 257
11.4.1  一个简单的自定义控件 258
11.4.2  子控件 261
11.4.3  复合控件 261
11.5  解决问题 263
11.6  我的总结 264
第12章  ASPdotnet 4.0新增功能 265
12.1  引出问题 265
12.2  更加简洁的web.config 265
12.3  新增的3个属性 266
12.3.1  ViewStateMode属性 266
12.3.2  ClientIDMode属性 267
12.3.3  EnablePersistedSelection
11.2.1  属性 270
12.4  增强的Dynamic Data控件 273
12.5  并行运算 275
12.6  ADOdotnet Data Services 1.5的
12.6  新增功能 278
12.7  ADOdotnet Entity Framework 4.0 
12.6  的新增功能 280
12.8  QueryExtender控件 282
12.9  解决问题 283
12.10  我的总结 284
第三篇  提 高 篇
第13章  ADOdotnet详解 285
13.1  引出问题 285
13.2  ADOdotnet简介 286
13.2.1  ADOdotnet的作用 286
13.2.2  ADOdotnet结构 287
13.3  ADOdotnet对象 289
13.3.1  ADOdotnet的使用环境 290
13.3.2  用ADOdotnet对象实现
13.3.2  数据库访问 294
13.4  ODBCdotnet Data Provider 300
13.4.1  ODBC dotnet Data Provider
13.3.2  概述 300
13.4.2  连接ODBC数据源 301
13.5  DataSet对象 303
13.5.1  DataSet概述 303
13.5.2  使用DataSet 307
13.6  XML 308
13.6.1  XML概述 309
13.6.2  文档类型定义 310
13.6.3  创建XML文件 311
13.6.4  DataSet读取XML数据 316
13.6.5  XML填充DataSet 316
13.7  解决问题 317
13.8  我的总结 322
第14章  使用母版页、样式、主题和
第14章  皮肤 323
14.1  引出问题 323
14.2  母版页详解 323
14.2.1  何谓母版页 324
14.2.2  创建母版页 325
14.2.3  创建内容页 327
14.2.4  母版页的嵌套 329
14.2.5  动态访问母版页 331
14.2.6  母版页的应用范围 332
14.2.7  缓存母版页 333
14.3  主题、样式和皮肤 334
14.3.1  先看主题 334
14.3.2  应用样式 338
14.3.3  应用主题和皮肤 340
14.3.4  怎样创建主题 343
14.3.5  应用主题 345
14.4  解决问题 346
14.5  我的总结 350
第15章  个性化设置 351
15.1  引出问题 351
15.2  开始个性化设置 352
15.2.1  个性化设置基础 352
15.2.2  看ASPdotnet中的个性化
15.2.2  用户配置 353
15.3  实现个性化用户配置 361
15.3.1  匿名用户的个性化配置 362
15.3.2  注册用户的个性化配置 364
15.4  解决问题 365
15.5  我的总结 369
第16章  WebParts构建你的门户 370
16.1  引出问题 370
16.2  WebParts初步 370
16.2.1  Portal框架简介 371
16.2.2  WebParts的基本要素 371
16.2.3  实际开发中使用WebParts
16.2.3  控件的方式 372
16.3  WebParts的基本控件 373
16.4  配置WebParts环境 375
16.5  创建、管理WebParts页面 377
16.5.1  使用WebPartZone创建 378
16.5.2  CatalogZone控件创建 380
16.5.3  EditorZone创建 380
16.5.4  管理WebParts页面 385
16.5.5  WebParts页面间的通信 385
16.5.6  自定义WebParts 386
16.6  解决问题 387
16.7  我的总结 388
第17章  使用缓存 390
17.1  引出问题 390
17.2  缓存概述 391
17.2.1  ASPdotnet缓存介绍 391
17.2.2  看ASPdotnet中的几种
17.2.2  缓存 391
17.2.3  缓存的缺点和优点 392
17.3  整页输出缓存 393
17.3.1  使用@OutputCache指令 393
17.3.2  使用API 396
17.3.3  页面输出缓存应用 398
17.4  页面部分缓存 399
17.4.1  使用@ OutputCache指令 400
17.4.2  使用PartialCachingAttribute
17.4.2  类 400
17.4.3  使用ControlCachePolicy
17.4.2  类 401
17.4.4  缓存后替换 403
17.5  应用程序数据缓存 405
17.5.1  将项添加到缓存中 406
17.5.2  检索缓存项的值 410
17.5.3  从ASPdotnet缓存中
17.5.3  删除项 411
17.5.4  从缓存中移除项时通知
17.5.4  应用程序 411
17.6  解决问题 415
17.7  我的总结 416
第18章  构建安全的ASPdotnet站点 418
18.1  引出问题 418
18.2  ASPdotnet的安全性 418
18.3  用户账户模拟 420
18.3.1  模拟某一个用户 422
18.3.2  实现临时模拟 423
18.4  基于Windows的身份验证 424
18.4.1  配置IIS安全 425
18.4.2  配置Windows安全 425
18.4.3  配置Windows身份验证和
18.4.3  授权 426
18.4.4  自定义角色 427
18.4.5  获取用户信息 428
18.5  基于表单的身份验证 428
18.6  ASPdotnet登录控件 435
18.6.1  登录控件Login 435
18.6.2  用户向导控件
18.4.3  CreateUserWizard 435
18.6.3  密码恢复控件
18.4.3  PasswordRecovery 436
18.6.4  修改密码控件
18.4.3  ChangePassword 436
18.6.5  其他的控件 437
18.7  ASPdotnet网站管理工具 437
18.7.1  用户管理 438
18.7.2  角色管理 439
18.7.3  访问规则管理 440
18.7.4  其他配置 441
18.8  解决问题 442
18.9  我的总结 442
第四篇  典型模块篇
第19章  用户登录验证模块 445
19.1  用户登录验证模块简介 445
19.2  规划项目文件 446
19.3  系统配置文件 447
19.4  搭建系统数据库 447
19.4.1  数据库设计 447
19.4.2  数据库访问层设计 448
19.5  设置主题皮肤 451
19.6  用户登录处理模块 452
19.6.1  创建图文验证码 452
19.6.2  编写用户登录界面 456
19.6.3  登录数据处理 458
19.7  用户注册处理模块 460
19.7.1  编写用户注册界面 460
19.7.2  注册数据处理 462
19.8  用户注销处理模块 464
19.9  我的总结 465
第20章  在线信息搜索模块 467
20.1  在线信息搜索简介 467
20.2  在线信息搜索模块实例
20.2  概述 468
20.3  系统配置文件实现 468
20.4  搭建系统数据库 469
20.4.1  数据库设计 469
20.4.2  数据库访问层设计 470
20.5  设置主题皮肤文件 471
20.5.1  设置按钮元素样式 471
20.5.2  设置页面元素样式 472
20.6  信息搜索模块 472
20.6.1  信息搜索表单页面 473
20.6.2  搜索处理页面 474
20.6.3  搜索结果显示 475
20.6.4  搜索智能提示 476
20.7  我的总结 478
第21章  图文处理模块 480
21.1  图文处理模块简介 480
21.2  图文处理模块实例概述 481
21.3  系统配置文件 481
21.4  系统设置文件实现 482
21.5  搭建系统数据库 483
21.5.1  数据库设计 483
21.5.2  数据库访问层设计 484
21.6  系统文件列表显示模块 487
21.6.1  列表显示页面 487
21.6.2  列表处理页面 489
21.7  创建缩略图模块 491
21.7.1  创建缩略图页面 491
21.7.2  创建缩略图处理页面 491
21.8  创建水印图模块 494
21.8.1  创建水印图页面 494
21.8.2  创建水印图处理页面 495
21.9  文件上传处理模块 497
21.9.1  多文件上传处理模块 497
21.9.2  文件自动上传处理模块 500
21.10  我的总结 503
第22章  在线留言本模块 506
22.1  在线留言本系统简介 506
22.2  在线留言本模块实例概述 507
22.3  系统配置文件 507
22.4  搭建系统数据库 508
22.4.1  数据库设计 508
22.4.2  数据库访问层设计 509
22.5  留言数据显示模块 515
22.5.1  留言列表显示页面 515
22.5.2  留言展开回复模块 520
22.6  留言分页列表显示模块 521
22.6.1  留言分页显示页面 521
22.6.2  分页处理页面 522
22.7  留言回复模块 523
22.7.1  留言回复表单页面 524
22.7.2  回复数据处理页面 525
22.8  留言发布模块 527
22.9  留言管理模块 528
22.9.1  留言管理列表页面 529
22.9.2  留言删除处理页面 530
22.10  我的总结 531
第五篇  综合实战篇
第23章  构建个人用户站点——
第23章  在线相册系统 533
23.1  求职路上 533
23.2  个人在线相册系统简介 535
23.3  个人在线相册系统模块
23.3  实例概述 536
23.4  系统配置文件实现 537
23.5  搭建系统数据库 537
23.5.1  数据库设计 538
23.5.2  参数设置文件 538
23.6  相片上传模块 539
23.6.1  设计数据库访问层 539
23.6.2  单张相片上传 544
23.7  系统相片显示模块 547
23.7.1  设计数据库访问层 548
23.7.2  系统首页显示模块 553
23.7.3  相片类别显示模块 557
23.7.4  相片详情模块 563
23.7.5  相片播放模块 566
23.8  系统类别管理模块 569
23.8.1  设计数据库访问层 570
23.8.2  分类添加模块 570
23.8.3  分类管理模块 572
23.9  我的总结 578