第1章 ASP.NET 2.0 安装、使用
与新特性说明 1
1.1 ASP.NET 2.0的安装与基本使用 1
1.1.1 下载、安装.NET Framework 2.0 1
1.1.2 Visual Stduio.NET 2005的安装 2
1.1.3 Microsoft SQL Server 2005
Express Edition的下载和安装 4
1.1.4 建立第一个应用程序MyFirstPage
及VS.NET 2005的介绍 6
1.1.5 定制开发环境 6
1.1.6 添加一个新的页面 8
1.1.7 建立页面和代码分离文件 12
1.1.8 使用内置的Web服务器
(built-in Web Servers) 12
1.2 SQL Server 2005数据库的基本使用 13
1.2.1 启动SQL Server 2005服务 13
1.2.2 建立数据库 14
1.2.3 使用ASP.NET 2.0读取数据库 16
1.2.4 App_Data目录与数据库的
动态加载 17
1.2.5 数据库连接字符串的
快速配置与读取 19
1.3 C# 2.0语法新特性简介 21
1.3.1 泛型 21
1.3.2 匿名方法 25
1.3.3 迭代器 26
1.3.4 不完全类型 29
1.4 IIS、应用程序和ASP.NET 2.0 30
1.4.1 IIS快速浏览 30
1.4.2 ASP.NET 2.0和应用程序 31
1.4.3 使用Visual Studio.NET 2005
新建和打开Web项目 33
1.4.4 利用VS.NET 2005和IIS
管理Web项目的基本准则 35
1.4.5 IIS和ASP.NET 2.0版本问题 36
1.4.6 在VS.NET 2005内置的Web服务器
和IIS之间切换 37
1.5 ASP.NET 2.0代码组织与应用程序
编译方式 37
1.5.1 内置代码与隐藏文件 37
1.5.2 ASP.NET 2.0提供的解决方案 40
1.5.3 页面的编译 42
1.5.4 Inherits属性 46
1.5.5 页面部署的实现 47
1.6 App_Code目录与类的动态编译以及
多语言使用 52
1.6.1 App_Code目录 52
1.6.2 Bin目录与全局程序集缓存 54
1.6.3 在App_Code里使用多种语言 54
第2章 数据访问 58
2.1 数据源控件概述 58
2.1.1 DataSource数据源控件总体概述 58
2.1.2 数据源控件类型概述 58
2.2 SqlDataSource控件 59
2.2.1 SqlDataSource的基本使用 59
2.2.2 使用存储过程 65
2.2.3 返回值DataReader/DataSet的选择 67
2.2.4 数据编辑 67
2.2.5 数据筛选 71
2.2.6 SqlDataSource参数来源 73
2.2.7 默认参数的选择与更改 76
2.2.8 数据缓存 79
2.2.9 SqlDataSource事件 81
2.2.10 利用VS.NET 2005的可视化
支持 83
2.3 ObjectDataSource控件 83
2.3.1 SqlDataSource和ObjectDataSource
控件的比较 83
2.3.2 ObjectDataSource的概述 84
2.3.3 绑定到数据访问层 85
2.3.4 绑定到业务逻辑 89
2.3.5 DataKeyNames和
OldValuesParameterFormatString 91
2.3.6 冲突检测ConflictDetection 96
2.3.7 数据分页排序 101
2.3.8 ObjectDataSource事件与
设计器的支持 107
2.4 AccessDataSource 控件 108
2.5 数据集与数据适配器 108
2.5.1 强类型化数据集简介 108
2.5.2 建立数据集与数据适配器 109
2.5.3 为数据适配器增加参数 117
2.5.4 返回聚合值 119
2.5.5 进一步理解数据集和
数据适配器 120
2.5.6 模式的编译 122
2.5.7 自动生成类文件 128
2.5.8 DataMember 128
2.6 工厂模式与在ADO.NET 2.0里的
实际应用 129
2.6.1 简单工厂模式 129
2.6.2 抽象工厂模式 131
2.6.3 工厂模式在ADO.NET 2.0中的
实际应用 135
2.7 GridView控件 138
2.7.1 ImageField 138
2.7.2 CheckBoxField列 142
2.7.3 模板列 143
2.7.4 按钮列 147
2.7.5 选择分页与排序 151
2.7.6 格式化数据 157
2.7.7 GridView事件 160
2.8 DetailsView控件 166
2.8.1 DetailsView控件概述 166
2.8.2 数据分页 168
2.8.3 数据编辑 170
2.9 FormView控件 173
2.10 数据源控件与数据绑定控件的
进一步简单讨论 176
2.10.1 ASP.NET 2.0为什么提供
新的数据源模型 176
2.10.2 ASP.NET 2.0 中的
数据绑定控件 176
2.10.3 数据绑定机制概述 177
2.10.4 数据绑定控件具体实现细节 179
2.10.5 自定义CustomerDataSource
数据源控件 188
2.10.6 自定义CustomerDataSourceDesigner
设计器 193
2.11 自定义数据源参数 199
第3章 样式、主题和外观 201
3.1 CSS技术 201
3.1.1 什么是CSS 201
3.1.2 进一步了解CSS样式单 201
3.1.3 样式单的嵌套使用 204
3.1.4 样式中属性值的单位 205
3.1.5 绝对路径和相对路径 206
3.1.6 CSS属性 209
3.1.7 CSS中的滤镜 223
3.2 向HTML控件应用样式 226
3.2.2 Style属性 228
3.3 向Web服务器控件应用样式 229
3.4 使用主题定义页面样式 233
3.4.1 建立一个主题 233
3.4.2 全局主题和应用程序主题 235
3.4.3 为页指定主题 235
3.4.4 在web.config里指定主题 236
3.4.5 对控件禁用主题 236
3.4.6 默认外观与命名外观 236
3.5 主题和外观的内容 237
3.6 使用主题的服务器端样式 242
3.2.2 声明服务器端样式 242
3.7 Theme,StyleSheetTheme和控件属性
优先级 243
3.8 Visual Web Developer 支持 243
3.9 主题和配置文件 244
第4章 母版 246
4.1 母版页的概述 246
4.1.1 母版页 246
4.1.2 替换占位符基本机制 252
4.1.3 母版页中的URL重置 255
4.1.4 母版页和配置 256
4.2 通过程序访问母版 256
4.2.1 母版和内容页的运行级别机制 256
4.2.2 处理PreInit事件 258
4.3 与母版交互 260
4.3.1 使用FindControl查找控件 260
4.3.2 使用MasterType指令 262
4.4 深入母版页和内容页交互 264
4.4.1 处理母版控件里的事件 264
4.4.2 处理页面回发 266
4.4.3 母版页面事件顺序 267
4.5 Headers,Scripts和Meta Tags元素 268
4.6 访问Page指令 270
4.7 在母版里使用FindControl 271
4.8 名称重写 274
4.9 母版与主题 275
4.10 嵌套母版 275
第5章 成员角色与登录控件 278
5.1 身份验证 278
5.1.1 身份验证回顾 278
5.1.2 ASP.NET 2.0的成员角色
管理概述 279
5.1.3 登录控件概述 280
5.2 典型应用程序身份验证和授权设计 280
5.3 成员关系提供模型 296
5.3.1 ASPNETDB.MDF数据库 296
5.3.2 自定义SqlmembershipProvider 296
5.3.3 成员关系类 298
5.4 角色提供模型 303
5.4.1 角色管理模型 303
5.4.2 管理角色 305
5.4.3 基于角色的授权 305
5.4.4 角色管理类 307
5.5 综合使用成员角色关系 311
5.6 成员角色数据库ASPNETDB.MDF的
探讨 312
5.6.1 应用成员/角色模式到已有的
数据库 313
5.6.2 使用现有SQL Server 2000数据库
存放成员/角色关系 314
5.6.3 成员/角色关系对应的SQL脚本 315
5.6.4 asp_regsql.exe命令 317
5.6.5 始终设置成员,角色关系里的
applicationName属性 318
5.7 使用IIS进行ASP.NET 2.0成员/角色
管理 320
5.7.1 使用 IIS 进行ASP.NET 2.0 成员/角色
管理的原因 320
5.7.2 采用的技术 320
5.7.3 应用程序和项目 321
5.8 自定义Provider角色模型 337
5.8.1 Provider模型整体概述 337
5.8.2 membership Provider的基础 338
5.8.3 为什么开发自定义Membership
和Role的Provider 338
5.9 扩展登录控件 347
5.9.1 可自定义的登录控件 347
5.9.2 登录错误更多提示信息
与写入日志 349
5.9.3 使用带有验证码的注册页面 353
5.10 ASP.NET 2.0 Provider介绍 356
5.10.1 Provider概述 356
5.10.2 Provider模型 357
5.10.3 ProviderBase类 358
5.10.4 Provider的注册与配置 360
5.10.5 自定义Provider的注意事项 361
5.11 自定义Provider模型
之Membership Providers 362
5.11.1 MembershipProvider类 362
5.11.2 Membership数据应用范围 363
5.11.3 ReadOnlyXmlMembership-
Provider 364
5.12 自定义Provider之Role Provider 369
5.12.1 RoleProvider类 369
5.12.2 ReadOnlyXmlRoleProvider 369
5.13 登录控件与成员API函数 374
5.13.1 使用默认的向导控件功能 374
5.13.2 使用默认ID 374
5.13.3 自定义ID 374
第6章 站点导航系统 376
6.1 站点导航的实现 376
6.1.1 站点导航回顾 376
6.1.2 定义站点地图 377
6.1.3 使用导航控件显示导航 379
6.2 SiteMap编程 381
6.2.1 SiteMap类简介 381
6.2.2 SiteMap的基本使用 381
6.3 基于角色的导航 383
6.3.1 配置ASP.NET 2.0的成员
和角色关系 383
6.3.2 配置导航系统使用安全裁减 384
6.3.3 使用基于角色的安全裁减 385
6.4 自定义站点地图provider 388
6.4.1 自定义Provider 389
6.4.2 注册自定义的Provider 393
6.5 扩展Provider提供模型 393
6.5.1 为什么需要扩展Provider模型 393
6.5.2 建立扩展的Provider类 394
6.5.3 配置web.config 398
6.6 修改提供程序返回的站点导航数据 399
6.7 SitemapPath控件 402
6.7.1 SiteMapPath控件概述 402
6.7.2 SitemapPath的使用 403
6.7.3 SiteMapPath控件常见属性
的意义 404
6.8 Menu控件 406
6.8.1 Menu控件概述 406
6.8.2 Menu控件的基本使用 407
6.8.3 使用Menu控件的外观 408
6.8.4 事件 413
6.9 TreeView控件 413
6.9.1 TreeView控件概述 413
6.9.2 TreeView控件的基本使用 414
6.9.3 使用样式 415
6.9.4 利用数据库存放TreeView数据 431
6.10 MultiView和View Web服务器
控件概述 433
6.11 Wizard 控件 436
6.11.1 Wizard的组成 436
6.11.2 向导提交模型 438
6.11.3 向导控件的综合使用 447
6.12 自定义Provider之SiteMap Provider 455
6.12.1 自定义SiteMap Provider要点 455
6.12.2 自定义SqlSiteMapProvider 457
第7章 使用Web部件进行个性化设置 461
7.1 个性化设置 461
7.1.1 WebPart控件 461
7.1.2 Web部件控件集概述 462
7.2 WebPart的使用 463
7.2.1 使用WebPartManager控件
管理Web部件 463
7.2.2 使用WebPartZones存放
Web部件数据 463
7.2.3 使用用户控件 465
7.2.4 测试运行效果 465
7.2.5 更改模式 467
7.2.6 启用更改布局的功能 469
7.3 EditorZone与EditorPart控件 470
7.3.1 AppearanceEditorPart控件 472
7.3.2 LayoutEditorPart 控件 472
7.3.3 PropertyGridEditorPart控件 472
7.3.4 BehaviorEditorPart控件 476
7.3.5 自定义EditorWebPart 478
7.3.6 自定义谓词和编辑器 479
7.4 Web部件之间的通信 481
7.5 自定义WebPart Provider
之Web Parts Personalization Providers 486
7.5.1 自定义Web Parts Personalization
概述 486
7.5.2 TextFilePersonalizationProvider 488
第8章 存储用户配置文档 491
8.1 用户配置文件概述 491
8.1.1 配置文件的必要性
以及ASP.NET 2.0的新特性 491
8.1.2 定义配置文件架构 491
8.1.3 匿名配置文件 492
8.1.4 经过身份验证的配置文件 493
8.1.5 将匿名配置文件迁移到经过身份验证
的配置文件 496
8.1.6 用自定义基类定义配置文件属性 498
8.1.7 控制配置文件的自定义保存行为 498
8.1.8 删除配置文件 500
8.2 进一步理解Profile的功能 501
8.2.1 一个简单Profile的定义和使用 501
8.2.2 Profile Provider模型 502
8.2.3 用户惟一标识
(Unidentified User) 503
8.2.4 Profile的编译与执行 504
8.2.5 Profile的配置 505
8.2.6 序列化 506
8.2.7 Profile的继承 508
8.2.8 Profile_MigrateAnonymous事件 509
8.2.9 ProfileManager类 509
8.3 CustomerProvider之Profile Provider 510
8.3.1 ProfileProvider
和SettingsProvider类 510
8.3.2 Profile Data数据应用 511
8.3.3 GetPropertyValues 511
8.3.4 SetPropertyValues 513
8.3.5 TextFileprofileProvider 513
8.3.6 使用TextFileProfileProvider 520
第9章 ASP.NET 2.0应用程序的应用与扩展 521
9.1 页框架 521
9.1.1 页框架生命周期 521
9.1.2 生命周期事件 522
9.1.3 其他的页生命周期注意事项 522
9.2 ASP.NET应用程序 523
9.2.1 用户从Web服务器请求
应用程序资源 523
9.2.2 ASP.NET接收对应用程序的
第一个请求 523
9.2.3 为每个请求创建
ASP.NET核心对象 524
9.2.4 将HttpApplication对象
分配给请求 524
9.2.5 由HttpApplication
管理处理请求 524
9.2.6 生命周期事件
和Global.asax文件 525
9.2.7 编译生命周期 526
9.2.8 HTTP模块 527
9.3 服务器控件与状态 527
9.3.1 服务器控件运行库 527
9.3.2 控件类 527
9.3.3 控件类和属性元数据 528
9.3.4 状态管理 528
9.3.5 控件和页适配器:处理设备、浏览器
或标记的行为 528
9.3.6 数据源和数据绑定控件 529
9.3.7 Web资源 530
9.3.8 客户端脚本管理 531
9.3.9 设备筛选(设备标记或浏览器) 531
9.3.10 回调 531
9.3.11 页状态 532
9.3.12 服务器控件设计时 532
9.3.13 应用程序服务提供程序 533
9.3.14 本地化 534
9.3.15 编译和预编译 535
9.3.16 生成提供程序 535
9.3.17 虚拟路径提供程序 536
9.4 配置文件的使用与检索 537
9.4.1 配置文件格式 537
9.4.2 配置节和节组 538
9.4.3 添加配置节 538
9.4.4 集合设置 539
9.4.5 使用位置和路径 539
9.4.6 锁定配置设置 540
9.4.7 标准 ASP.NET配置节 540
9.4.8 检索配置 541
9.4.9 使用应用程序设置 541
9.4.10 使用连接字符串 542
9.5 使用管理工具 543
9.5.1 ASP.NET MMC管理单元 543
9.5.2 Web应用程序管理工具 544
9.5.3 ASPNET_REGSQL工具 545
9.5.4 ASPNET_REGIIS工具 545
9.6 使用管理API 545
9.6.1 检查配置设置 546
9.6.2 更新配置设置 548
9.6.3 对配置节进行加密 549
9.7 配置进程模型 551
9.7.1 进程模型配置 551
9.7.2 被动进程回收 552
9.7.3 主动进程回收 552
9.7.4 记录进程模型事件 552
9.8 对缓存的改进 553
9.8.1 基于轮询的失效 553
9.8.2 SQL Server 2005基于通知的
缓存失效 554
9.9 Web事件 554
9.9.1 事件和事件提供程序 555
9.9.2 配置事件 556
9.9.3 创建自定义事件 556
9.9.4 检测应用程序 557
9.9.5 事件限流 557
9.10 编码与本地化 557
9.10.1 编码 557
9.10.2 本地化 558
9.11 URL映射 558
9.12 ASP.NET的提示与技巧 560
9.12.1 跨页回发 560
9.12.2 验证组 561
9.12.3 焦点API和DefaultButton 562
9.12.4 编译生成提供程序 564
9.12.5 不编译页 564
9.12.6 确保非ASP.NET文件的安全 565
9.12.7 客户端脚本功能 566
9.13 自定义Provider之Session Provider 569
9.13.1 自定义Session Provider概述 569
9.13.2 自定义
TextFileSessionStateProvider 571
9.14 自定义WebEvent Provider 577
9.14.1 自定义WebEvent Provider概述 577
9.14.2 自定义
TextFileWebEventProvider 578
第10章 Personal Web Site Starter Kit
——个人站点 581
10.1 Personal Web Site的安装 581
10.2 建立成员与角色 582
10.2.1 角色的管理 582
10.2.2 建立管理员账户 582
10.3 相册管理 583
10.3.1 相册页——Albums.aspx 583
10.3.2 照片集页——Photos.aspx 586
10.3.3 照片的详细页——Details.aspx 588
10.4 母版页——Default.master 591
10.5 主题与服务器端样式 592
10.6 外观文件——Default.skin 593
10.7 简历页——Resume.aspx 594
10.8 链接收藏页——Links.aspx 594
10.9 数据库设计 594
10.10 App_Code目录 596
10.11 使用HttpHandler处理照片 598
10.12 管理相册 600
10.13 用户注册 602
10.14 扩展Personal Web Site Starter Kit 602
10.14.1 扩展管理员页 602
10.14.2 添加Manage.aspx页 604
10.14.3 添加Users.aspx页 605
10.14.4 建立Content.aspx页 607
10.15 Personal Web Site总结 614
第11章 Club Web Site Starter Kit
——俱乐部站点 615
11.1 Club Web Site Starter Kit的
安装和配置 615
10.14.4 建立管理员账户 616
11.2 母版页——default.master 617
11.3 注册页——member_register.aspx 619
11.4 用户详细页
——Member_Details.aspx 623
11.5 查看用户列表页
——member_list.aspx 626
11.6 添加相册 629
11.7 照片列表页
——PhotoAlbum_List.ospx 631
11.8 相册内容页
——PhotoAlbum_Contents.aspx 637
11.9 日历事件页
——Events_Calendar.aspx 641
11.10 事件的编辑、添加和删除 643
11.11 新闻模块 647
11.12 首页default.aspx 648
11.13 链接和联系页 651
11.14 CWS中主要技术的实现 651
11.14.1 日期和时间控件 651
11.14.2 RolloverButtons.cs文件 657
11.14.3 SharedRoutines.cs
和MemberDetails.cs文件 658
11.15 数据库处理 659
11.15.1 数据库和数据适配器 659
11.15.2 Club Web Site语言Bug修复 659
11.16 扩展Club Web Site Starter Kit 663
11.16.1 使用SQL Server 2000数据库 663
11.16.2 增加文件系统 666
11.17 重构CWS的Provider模型 671
11.18 扩展CWS以便使用IIS远程工具 673
第12章 Classfieds Web Site Starter Kit
——产品交易系统 675
12.1 Classfieds Web Site Starter Kit介绍 675
12.2 用户注册页——Register.aspx 681
12.3 登录页——Login.aspx 685
12.4 发布广告页——PostAd.aspx 686
12.5 查看发布的信息页
——MyAds.aspx 692
12.6 进入管理员页 696
12.7 搜索页 700
12.8 数据处理要点 706
第13章 TimeTracker Starter Kit
——时间跟踪 711
13.1 简介 711
13.2 创建应用程序角色 713
13.3 创建用户 714
13.4 更改注册详细信息 715
13.5 母版页——MasterPage.master 716
13.6 创建项目——Project_Details.aspx 717
13.7 列出项目页——Project_List.aspx 719
13.8 输入时间页——TimeEntry.aspx 720
13.9 查看项目报告页
——Report_Project.aspx 721
13.10 查看项目资源详细信息页
——Report_Resources.aspx 721
13.11 Time Trackr数据处理要点 722
附录A 构建多项目解决方案 729
A.1 构建Web框架 729
A.2 添加DAL_BLL层 730
A.3 构建Web站点 733
A.4 部署与优化 735
附录B Web Site与Web Project 736
B.1 Web Project 736
B.2 Web Site的局限性 737