第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 Studio.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 ⅡS、应用程序和ASP.NET 2.0 30
1.4.1 ⅡS快速浏览 30
1.4.2 ASP.NET 2.0和应用程序 31
1.4.3 使用Visual Studio.NET 2005新建和打开Web项目 33
1.4.4 利用VS.NET 2005和ⅡS管理Web项目的基本准则 35
1.4.5 ⅡS和ASP.NET 2.0版本问题 36
1.5.1 内置代码与隐藏文件 37
1.4.6 在VS.NET 2005内置的Web服务器和ⅡS之间切换 37
1.5 ASP.NET 2.0代码组织与应用程序编译方式 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.1.1 DataSource数据源控件总体概述 58
2.1.2 数据源控件类型概述 58
2.1 数据源控件概述 58
第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.1 DetailsView控件概述 166
2.8 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.1.1 什么是CSS 201
3.1.2 进一步了解CSS样式单 201
第3章 样式、主题和外观 201
3.1 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
Style属性 228
3.3 向Web服务器控件应用样式 229
3.4 使用主题定义页面样式 233
3.4.1 建立一个主题 233
3.4.3 为页指定主题 235
3.4.2 全局主题和应用程序主题 235
3.4.4 在web.config里指定主题 236
3.4.5 对控件禁用主题 236
3.4.6 默认外观与命名外观 236
3.5 主题和外观的内容 237
3.6 使用主题的服务器端样式 242
声明服务器端样式 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.1 使用ⅡS进行ASP.NET 2.0成员/角色管理的原因 320
5.7.2 采用的技术 320
5.7 使用ⅡS进行ASP.NET 2.0成员/角色管理 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.1.1 站点导航回顾 376
第6章 站点导航系统 376
6.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.5.1 为什么需要扩展Provider模型 393
6.5 扩展Provider提供模型 393
6.4.2 注册自定义的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.9 TreeView控件 413
6.9.1 TreeView控件概述 413
6.8.4 事件 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 自定义SiteMapProvider要点 455
6.12.2 自定义SqlSiteMapProvider 457
7.1.1 WebPart控件 461
第7章 使用Web部件进行个性化设置 461
7.1 个性化设置 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.2 LayoutEditorPart控件 472
7.3.3 PropertyGridEditorPart控件 472
7.3.1 AppearanceEditorPart控件 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.1 ProfileProvider和SettingsProvider类 510
8.3 CustomerProvider之Profile Provider 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.5 由HttpApplication管理处理请求 524
9.2.3 为每个请求创建ASP.NET核心对象 524
9.2.4 将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.10 回调 531
9.3.8 客户端脚本管理 531
9.3.9 设备筛选(设备标记或浏览器) 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.5 使用位置和路径 539
9.4.4 集合设置 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.1 进程模型配置 551
9.7 配置进程模型 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.10 编码与本地化 557
9.10.1 编码 557
9.9.4 检测应用程序 557
9.9.5 事件限流 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.1 自定义Session Provider概述 569
9.13 自定义Provider之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章 PersonaI 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
建立管理员账户 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 ClubWeb 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以便使用ⅡS远程工具 673
12.1 Classfieds Web Site Starter Kit介绍 675
第12章 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