图书目录

目    录

第1章  应用程序和页面框架 1

 1.1  应用程序的位置选项 1

1.1.1  内置的Web服务器 1

1.1.2  IIS 3

1.1.3  FTP 3

1.1.4  Web站点需要

   FrontPage Extensions 4

 1.2  ASP.NET页面结构选项 4

1.2.1  内联编码 6

1.2.2  隐藏代码模型 8

 1.3  ASP.NET 3.5的Page指令 10

1.3.1  @Page指令 11

1.3.2  @Master指令 13

1.3.3  @Control指令 14

1.3.4  @Import指令 15

1.3.5  @Implements指令 16

1.3.6  @Register指令 17

1.3.7  @Assembly指令 17

1.3.8  @PreviousPageType指令 17

1.3.9  @MasterType指令 18

1.3.10  @OutputCache指令 18

1.3.11  @Reference指令 18

 1.4  ASP.NET页面的事件 19

 1.5  处理回送 20

 1.6  跨页面的传送 21

 1.7  ASP.NET应用程序文件夹 27

1.7.1  \App_Code文件夹 27

1.7.2  \App_Data文件夹 31

1.7.3  \App_Themes文件夹 32

1.7.4  \App_GlobalResources

   文件夹 32

1.7.5  \App_LocalResources

   文件夹 32

1.7.6  \App_WebReferences

   文件夹 32

1.7.7  \App_Browsers文件夹 32

 1.8  编译 33

 1.9  Build Provider 36

1.9.1  使用内置的Build Provider 37

1.9.2  使用自己的Build Provider 37

 1.10  Global.asax 42

 1.11  通过Visual Studio 2008

   使用类 46

 1.12  小结 50

第2章  ASP.NET服务器控件和

    客户端脚本 51

 2.1  ASP.NET服务器控件 51

2.1.1  服务器控件的类型 52

2.1.2  用服务器控件构建页面 53

2.1.3  处理服务器控件的事件 54

 2.2  给服务器控件应用样式 57

2.2.1  控件的常见属性 57

2.2.2  使用层叠样式表改变样式 58

 2.3  HTML服务器控件 61

2.3.1  HtmlControl基类 63

2.3.2  HtmlContainerControl类 64

2.3.3  所有的HTML类 64

2.3.4  使用HtmlGeneric

   Control类 65

 2.4  通过JavaScript处理页面

   和服务器控件 66

2.4.1  使用Page.ClientScript.

       Register ClientScriptBlock 67

2.4.2  使用Page.ClientScript. 

   RegisterStartupScript 69

2.4.3  使用Page.ClientScript.

   RegisterClientScriptInclude 71

 2.5  客户端回调 71

2.5.1  比较典型的回送和回调 71

2.5.2  使用回调功能:一种

   简单的方法 73

2.5.3  使用带一个参数的

   回调功能 77

2.5.4  使用回调功能:一个复杂

   的例子 80

 2.6  小结 86

第3章  ASP.NET Web服务器控件 87

 3.1  Web服务器控件概述 87

 3.2  Label服务器控件 88

 3.3  Literal服务器控件 90

 3.4  TextBox服务器控件 90

3.4.1  使用Focus()方法 91

3.4.2  使用AutoPostBack 92

3.4.3  使用AutoCompleteType 93

 3.5  Button服务器控件 94

3.5.1  CausesValidation属性 94

3.5.2  CommandName属性 95

3.5.3  使用客户端JavaScript

   的按钮 96

 3.6  LinkButton服务器控件 97

 3.7  ImageButton服务器控件 98

 3.8  HyperLink服务器控件 99

 3.9  DropDownList服务器控件 100

 3.10  从集合中可视化地删除

   数据项 102

 3.11  ListBox服务器控件 104

 3.11.1  允许用户选择多项 104

 3.11.2  使用ListBox控件的

    例子 105

 3.11.3  给集合添加项 107

 3.12  CheckBox服务器控件 107

 3.12.1  如何确定复选框

    是否被选中 108

 3.12.2  给复选框赋值 109

 3.12.3  排列复选框的文本 109

 3.13  CheckBoxList服务器控件 109

 3.14  RadioButton服务器控件 112

 3.15  RadioButtonList服务器

   控件 114

 3.16  Image服务器控件 115

 3.17  Table服务器控件 116

 3.18  Calendar服务器控件 119

 3.18.1  从Calendar控件中

    选择一个日期 119

 3.18.2  从Calendar控件中选择

    要输出的日期格式 120

 3.18.3  选择日期、星期或月份 121

 3.18.4  使用日期范围 121

 3.18.5  修改日历的样式和

    操作方式 123

 3.19  AdRotator服务器控件 126

 3.20  Xml服务器控件 127

 3.21  Panel服务器控件 128

 3.22  PlaceHolder服务器控件 130

 3.23  BulletedList服务器控件 131

 3.24  HiddenField服务器控件 135

 3.25  FileUpload服务器控件 137

 3.25.1  使用FileUpload控件

    上传文件 137

 3.25.2  给上传文件指定正确的

    ASP.NET权限 140

 3.25.3  理解文件大小的限制 141

 3.25.4  从同一个页面上传

    多个文件 142

 3.25.5  把上传的文件放在

    Stream对象中 145

 3.25.6  把文件内容从Stream对

    象移动到Byte数组中 145

 3.26  MultiView和View

   服务器控件 146

 3.27  Wizard服务器控件 149

 3.27.1  定制边栏导航 151

 3.27.2  AllowReturn属性 151

 3.27.3  使用StepType属性 151

 3.27.4  给Wizard控件添加

    标题 152

 3.27.5  使用向导的导航系统 153

 3.27.6  使用Wizard控件的

    事件 153

 3.27.7  使用Wizard控件显示

    窗体元素 155

 3.28  ImageMap服务器控件 159

 3.29  小结 161

第4章  验证服务器控件 162

 4.1  有效性验证 162

 4.2  客户端和服务器端的验证 163

 4.3  ASP.NET验证服务器控件 163

4.3.1  验证原因 165

4.3.2  RequiredFieldValidator

   服务器控件 165

4.3.3  CompareValidator

   服务器控件 170

4.3.4  RangeValidator

   服务器控件 172

4.3.5  RegularExpressionValidator

   服务器控件 176

4.3.6  CustomValidator服务器

   控件 177

4.3.7  ValidationSummary服务器

   控件 182

 4.4  关闭客户端验证功能 184

 4.5  为错误通知使用图像和声音 185

 4.6  使用验证组 186

 4.7  小结 190

第5章  使用Master页面 191

 5.1  需要Master页面的原因 191

 5.2  Master页面基础 193

 5.3  编写Master页面 194

 5.4  编写内容页面 197

5.4.1  混合页面类型和语言 200

5.4.2  指定要使用的Master页面 201

5.4.3  使用页面标题 202

5.4.4  使用Master页面中的控件

   和属性 203

 5.5  在Master页面中指定

     默认内容 210

 5.6  以编程方式将Master页面

     赋予内容页面 212

 5.7  Master页面的嵌套 212

 5.8  容器特定的Master页面 216

 5.9  事件的触发顺序 217

 5.10  高速缓存Master页面 217

 5.11  ASP.NET AJAX和Master

   页面 218

 5.12  小结 220

第6章  主题和Skin 221

 6.1  使用ASP.NET中的主题 221

6.1.1  给单个ASP.NET页面

   应用主题 221

6.1.2  把主题应用于整个

   应用程序 223

6.1.3  删除服务器控件中的主题 223

6.1.4  删除Web页面上的主题 224

6.1.5  使用Master页面时理解

   主题 224

6.1.6  StyleSheetTheme属性 225

 6.2  创建自己的主题 225

6.2.1  创建正确的文件夹结构 225

6.2.2  创建Skin 226

6.2.3  在主题中包含CSS文件 228

6.2.4  使主题包含图像 231

 6.3  定义多个Skin选项 233

 6.4  编程使用主题 235

6.4.1  编程指定页面的主题 235

6.4.2  编程指定控件的SkinID 236

 6.5  主题、Skin和定制控件 236

 6.6  小结 240

第7章  ASP.NET 3.5中的数据

    绑定 241

 7.1  数据源控件 241

7.1.1  SqlDataSource控件 243

7.1.2  LINQ数据源控件 253

7.1.3  AccessDataSource控件 257

7.1.4  XmlDataSource控件 258

7.1.5  ObjectDataSource控件 259

7.1.6  SiteMapDataSource控件 263

 7.2  配置数据源控件的高速缓存 264

 7.3  存储连接信息 264

 7.4  组合使用绑定的列表控件和

     数据源控件 267

7.4.1  GridView控件 267

7.4.2  编辑GridView中的

       数据行 281

7.4.3  删除GridView数据 287

7.4.4  DetailsView控件 289

7.4.5  使用DetailsView插入、

   更新和删除数据 294

7.4.6  ListView控件 296

7.4.7  FormView控件 303

 7.5  其他数据绑定控件 307

7.5.1  DropDownList、ListBox、

       RadioButtonList和

       CheckBoxList 307

7.5.2  TreeView控件 307

7.5.3  Ad Rotator控件 308

7.5.4  Menu 308

 7.6  内联数据绑定语法 309

7.6.1  DataBinder语法的变化 310

7.6.2  XML数据绑定 310

 7.7  表达式和表达式构建器 311

 7.8  小结 316

第8章  使用ADO.NET管理数据 317

 8.1  ADO.NET的基本功能 317

8.1.1  常见的ADO.NET任务 318

8.1.2  ADO.NET的基本

   名称空间和类 322

8.1.3  使用Connection对象 323

8.1.4  使用Command对象 325

8.1.5  使用DataReader对象 326

8.1.6  使用数据适配器 328

8.1.7  使用参数 331

8.1.8  DataSet和DataTable 333

8.1.9  将Oracle用作ASP.NET 3.5

       的数据库 338

 8.2  DataList服务器控件 340

 8.2.1  可用的模板 340

 8.2.2  使用ItemTemplate 341

 8.2.3  使用其他布局模板 343

 8.2.4  使用多个列 346

 8.3  ListView服务器控件 347

 8.3.1  可用的模板 347

 8.3.2  使用模板 347

 8.3.3  创建布局模板 349

 8.3.4  创建ItemTemplate 350

 8.3.5  创建EditItemTemplate 351

 8.3.6  创建EmptyItemTemplate 352

 8.3.7  创建InsertItemTemplate 352

 8.3.8  结果 353

 8.4  将Visual Studio用于

     ADO.NET任务 354

 8.4.1  建立与数据源的连接 354

 8.4.2  使用DataSet设计器 356

 8.4.3  使用DataSet对象

       CustomerOrders 360

 8.5  命令的异步执行 364

 8.5.1  SqlCommand类的

       异步方法 364

 8.5.2  IAsyncResult接口 365

 8.5.3  AsyncCallback 365

 8.5.4  WaitHandle类 365

 8.5.5  ADO.NET中异步处理

       的方式 366

 8.5.6  取消异步处理 384

 8.5.7  异步连接 384

 8.6  小结 384

第9章  使用LINQ查询 385

 9.1  LINQ to Objects 385

9.1.1  传统的查询方法 385

9.1.2  用LINQ替代传统的查询 394

9.1.3  数据分组 401

9.1.4  其他LINQ运算符 402

9.1.5  LINQ连接 403

9.1.6  使用LINQ分页 404

 9.2  LINQ to XML 405

 9.3  LINQ to SQL 410

9.3.1  通过LINQ插入、更新

     和删除查询 417

9.3.2  扩展LINQ 421

 9.4  小结 422

第10章  使用XML和LINQ to XML 423

 10.1  XML的基础 424

 10.1.1  XML InfoSet 426

 10.1.2  XSD/XML模式定义 426

 10.1.3  在Visual Studio 2008中

    编辑XML和XML

    模式 428

 10.2  XmlReader和XmlWriter 430

 10.2.1  使用XDocument替代

    XmlReader 433

 10.2.2  使用模式和

    XmlTextReader 434

 10.2.3  使用XDocument根据

    模式来验证 436

 10.2.4  包含NameTable优化 437

 10.2.5  从XML中提取

    .NET CLR类型 439

 10.2.6  ReadSubtree和

    XmlSerialization 441

 10.2.7  通过LINQ to XML从

    XML中创建CLR对象 443

 

 10.2.8  用XmlWriter

    创建XML 444

 10.2.9  用LINQ for XML

    创建XML 446

 10.2.10  2.0版本中XmlReader

         和XmlWriter的改进 449

 10.3  XmlDocument和

       XPathDocument 449

 10.3.1  DOM存在的问题 449

 10.3.2  XPath、XPathDocument

    和XmlDocument 450

 10.4  DataSet 454

 10.4.1  将DataSet保存到

    XML中 454

 10.4.2  XmlDataDocument 455

 10.5  XmlDataSource控件 457

 10.6  XSLT 461

 10.6.1  XslCompiledTransform 462

 10.6.2  XSLT调试 466

 10.7  数据库和XML 467

 10.7.1  FOR XML AUTO子句 467

 10.7.2  SQL Server 2005和

    XML数据类型 471

 10.8  小结 476

第11章  IIS7开发 478

 11.1  IIS7的模块化体系结构 478

11.1.1  IIS-WebServer 479

11.1.2  IIS-WebServer

    ManagementTools 481

11.1.3  IIS-FTPPulishing

    Service 481

 11.2  IIS7的扩展体系结构 482

 11.3  IIS7和ASP.NET集成

   的管道 482

 11.4  建立定制的Web服务器 483

 11.4.1  更新包的依赖关系 484

 11.4.2  在Windows Vista上

    安装IIS7 485

 11.4.3  在Windows Server 2008

       上安装IIS7 485

 11.4.4  命令行安装选项 486

 11.4.5  Unattended安装选项 487

 11.4.6  升级 487

 11.5  Internet Information

      Services(IIS)Manager 488

 11.5.1  Application Pools 489

 11.5.2  Web Sites 491

 11.5.3  层次结构的配置 493

 11.5.4  委托 497

 11.6  把应用程序从IIS6

   迁移到IIS7 500

 11.7  小结 502

第12章  提供程序模型概述 503

 12.1  提供程序概述 503

 12.2  ASP.NET 3.5中的提供

       程序模型 505

 12.2.1  设置提供程序,以使用

         Microsoft SQL Server 7.0、

         2000、2005或2008 506

 12.2.2  Membership提供程序 511

 12.2.3  Role提供程序 515

 12.2.4  Personalization

    提供程序 519

 12.2.5  SiteMap提供程序 520

 12.2.6  SessionState提供程序 522

 12.2.7  Web事件提供程序 524

 12.2.8  配置提供程序 532

 12.2.9  WebParts提供程序 534

 12.3  提供程序的配置 535

 12.4  小结 536

第13章  扩展提供程序模型 537

 13.1  提供程序是较大体系

       结构中的一层 537

 13.2  通过基于属性的编程改变

       提供程序的行为 538

 

 13.2.1  通过SqlMembership

    Provider建立简单的

    密码结构 538

 13.2.2  通过SqlMembershi

         p Provider建立强类型

         的密码结构 541

 13.3  ProviderBase类 542

 13.4  建立自己的提供程序 544

 13.4.1  创建CustomProviders

    应用程序 544

 13.4.2  构建需要的类框架 545

 13.4.3  创建XML用户

    数据存储 549

 13.4.4  在web.config文件中

    定义提供程序实例 550

 13.4.5  没有实现Membership 

    Provider类的方法和

    属性 550

 13.4.6  实现MembershipProvider

    类的方法和属性 551

 13.4.7  使用XmlMembership 

    Provider进行用户登录 559

 13.5  扩展预定义的提供程序 560

 13.5.1  用新的LimitedSqlRole

    Provider提供程序

    限制角色功能 560

13.5.2  使用新的LimitedSql

 RoleProvider提供程序 564

 13.6  小结 567

第14章  站点导航 568

 14.1  基于XML的站点地图 568

 14.2  SiteMapPath服务器控件 570

 14.2.1  PathSeparator属性 572

 14.2.2  PathDirection 属性 574

 14.2.3  ParentLevelsDisplayed

    属性 574

 14.2.4  ShowToolTips属性 575

 

 14.2.5  SiteMapPath控件的

    子元素 575

 14.3  TreeView服务器控件 576

 14.3.1  标识TreeView控件的

    内置样式 579

 14.3.2  TreeView控件的

       各个部分 580

 14.3.3  将TreeView控件绑定

    到XML文件上 581

 14.3.4  在TreeView中选择

    多个选项 583

 14.3.5  在TreeView控件中

    指定定制的图标 586

 14.3.6  指定用于连接节点

    的线条 587

 14.3.7  编程使用TreeView

    控件 589

 14.4  Menu服务器控件 594

 14.4.1  对Menu控件应用

    不同的样式 595

 14.4.2  Menu事件 599

 14.4.3  把Menu控件绑定到

    XML文件上 600

 14.5  SiteMap数据提供程序 602

 14.5.1  ShowStartingNode属性 602

 14.5.2  StartFromCurrentNode

    属性 603

 14.5.3  StartingNodeOffset属性 604

 14.5.4  StartingNodeUrl属性 604

 14.6  SiteMap API 605

 14.7  URL映射 607

 14.8  站点地图的本地化 608

 14.8.1  为本地化构建

    Web.sitemap文件 608

 14.8.2  修改Web.config文件 609

 14.8.3  创建程序集资源(.resx)

    文件 610

 14.8.4  测试结果 611

 14.9  安全补偿 612

 14.9.1  启动管理员的角色

    管理功能 612

 14.9.2  建立管理员的配置段 613

 14.9.3  启用安全补偿功能 614

 14.10  嵌套站点地图文件 616

 14.11  小结 618

第15章  个性化 619

 15.1  个性化模型 619

 15.2  创建个性化属性 620

 15.2.1  添加简单的个性化属性 620

 15.2.2  使用个性化属性 621

 15.2.3  添加一组个性化属性 625

 15.2.4  使用分组的个性化属性 626

 15.2.5  为个性化属性定义类型 626

 15.2.6  使用定制的类型 627

 15.2.7  提供默认值 629

 15.2.8  把个性化属性

    指定为只读 630

 15.3  匿名个性化 630

 15.3.1  支持终端用户的

    匿名身份 630

 15.3.2  使用匿名身份事件 633

 15.3.3  个性化属性的匿名选项 634

 15.3.4  有关匿名用户配置

    信息的警告 634

 15.4  编程访问个性化功能 635

 15.4.1  迁移匿名用户 635

 15.4.2  profile的个性化 636

 15.4.3  确定是否继续

    自动保存profile值 637

 15.5  个性化提供程序 638

 15.5.1  使用SQL Server 

    Express Edition 639

 15.5.2  使用Microsoft的SQL

     Server 7.0/2000/2005/

    2008 640

 15.5.3  使用多个提供程序 642

 15.6  管理应用程序的配置信息 642

 15.6.1  ProfileManager类的

    属性 643

 15.6.2  ProfileManager类的

    方法 643

 15.6.3  建立ProfileManager.aspx

    页面 644

 15.6.4  检验ProfileManager.aspx

    页面的代码 647

 15.6.5  运行ProfileManager.aspx

    页面 648

 15.7  小结 649

第16章  成员和角色管理 650

 16.1  身份验证 650

 16.2  授权 650

 16.3  ASP.NET 3.5的身份验证 651

 16.3.1  为成员建立Web站点 651

 16.3.2  添加用户 653

 16.3.3  请求证书 666

 16.3.4  处理验证用户 673

 16.3.5  显示在线用户数 676

 16.3.6  处理密码 677

 16.4  ASP.NET 3.5的授权 681

 16.4.1  使用LoginView

    服务器控件 681

 16.4.2  为角色管理建立Web

    站点 684

 16.4.3  添加和检索应用

    程序角色 687

 16.4.4  删除角色 689

 16.4.5  给角色添加用户 690

 16.4.6  获取某个角色的

    所有用户 690

 16.4.7  获取包含某个用户的

    所有角色 692

 16.4.8  从角色中删除用户 693

 16.4.9  检查角色中的用户 693

 16.4.10  角色的高速缓存方式 694

 16.5  使用Web站点管理工具 695

 16.6  Membership API的

   公共方法 696

 16.7  Roles API的公共方法 696

 16.8  小结 697

第17章  Portal Framework

         和Web Part 698

 17.1  Web Part简介 698

 17.2  建立动态的模块化Web

   站点 700

 17.2.1  WebPartManager控件 700

 17.2.2  使用区域进行布局 701

 17.2.3  WebPartZone控件 704

 17.2.4  允许用户改变页面的

    模式 706

 17.2.5  修改区域 715

 17.3  使用Portal Framework

   中的类 720

 17.4  创建定制的Web Part 723

 17.5  连接Web Part 728

 17.5.1  建立提供程序Web Part 729

 17.5.2  建立用户Web Part 732

 17.5.3  连接ASP.NET页面上的

    Web Part 734

 17.5.4  连接Web Part时处理

    Master页面的难点 736

 17.6  小结 737

第18章  用ASP.NET进行HTML

     和CSS设计 738

 18.1  警告 738

 18.2  HTML和CSS概述 739

 18.2.1  CSS的引入 740

 18.2.2  创建样式表 740

 18.2.3  CSS规则 742

 18.2.4  CSS继承 750

 18.2.5  元素的布局和定位 751

 18.2.6  在Visual Studio中使用

    HTML和CSS 758

 

 18.2.7  ASP.NET 2.0 CSS—— 

    友好的控件适配器 764

 18.3  小结 764

第19章  ASP.NET AJAX 765

 19.1  理解对AJAX的需求 765

 19.1.1  在AJAX出现之前 766

 19.1.2  AJAX改变了这个过程 766

 19.2  ASP.NET AJAX和Visual 

   Studio 2008 769

 19.2.1  客户端技术 769

 19.2.2  服务器端技术 770

 19.2.3  用ASP.NET AJAX开发 770

 19.3  ASP.NET AJAX应用程序 771

 19.3.1  建立没有AJAX的简单

    ASP.NET页面 773

 19.3.2  建立包含AJAX的简单

    ASP.NET页面 774

 19.4  ASP.NET AJAX的

       服务器端控件 780

 19.4.1  ScriptManager控件 780

 19.4.2  ScriptManagerProxy

    控件 782

 19.4.3  Timer控件 784

 19.4.4  UpdatePanel控件 785

 19.4.5  UpdateProgress控件 789

 19.5  使用多个UpdatePanel

   控件 792

 19.6  使用页面历史记录 795

 19.7  脚本合并 801

 19.8  小结 805

第20章  ASP.NET AJAX控件

         工具集 806

 20.1  下载和安装 807

 20.1.1  新的Visual Studio模板 808

 20.1.2  给Visual Studio 2008

    工具箱添加新控件 808

 20.2  ASP.NET AJAX控件 810

 

 20.2.1  ASP.NET AJAX控件

    工具集的扩展程序 812

 20.2.2  ASP.NET AJAX控件工

    具集中的服务器控件 857

 20.3  小结 868

第21章  安全性 870

 21.1  身份验证和授权 870

 21.2  应用身份验证措施 871

 21.2.1  <authentication>节点 871

 21.2.2  基于Windows的

    身份验证 872

 21.2.3  基于窗体的身份验证 879

 21.2.4  Passport身份验证 888

 21.3  验证特定的文件和文件夹 888

 21.4  编程授权 889

 21.4.1  使用User.Identity 890

 21.4.2  使用User.IsInRole() 891

 21.4.3  用WindowsIdentity

    显示更多信息 892

 21.5  身份和模拟 894

 21.6  通过IIS进行保护 896

 21.6.1  IP地址和域名限制 896

 21.6.2  使用文件扩展名 897

 21.6.3  使用ASP.NET MMC

    管理单元 899

 21.6.4  使用IIS 7.0 Manager 900

 21.7  小结 901

第22章  状态管理 902

 22.1  如何选择 902

 22.2  ASP.NET中的Session

       对象 904

 22.2.1  会话和事件模型 904

 22.2.2  配置会话状态的管理 906

 22.2.3  进程中的会话状态 906

 22.2.4  进程外的会话状态 914

 22.2.5  SQL支持的会话状态 918

 22.2.6  用其他提供程序扩展

    会话状态 921

 22.2.7  无cookie的会话状态 922

 22.2.8  选择维护状态的

    正确方式 923

 22.3  Application对象 923

 22.4  查询字符串 924

 22.5  cookie 924

 22.6  回送和跨页面的回送 925

 22.7  隐藏的字段、ViewState

   和ControlState 927

 22.8  为短时间状态存储应用

   HttpContext.Current.Items 931

 22.9  小结 932

第23章  高速缓存 934

 23.1  高速缓存 934

 23.1.1  输出高速缓存 934

 23.1.2  部分页面(UserControl)

    的高速缓存 937

 23.1.3  Post-Cache Substitution 938

 23.1.4  HttpCachePolicy和

    客户端高速缓存 940

 23.2  编程高速缓存 942

 23.2.1  使用Cache对象高速

    缓存数据 942

 23.2.2  控制ASP.NET

    高速缓存 943

 23.2.3  高速缓存依赖性 943

 23.3  使用SQL Server高速

   缓存依赖性 949

 23.3.1  使数据库支持SQL Server

    高速缓存禁用功能 950

 23.3.2  使表支持SQL Server

    高速缓存禁用功能 950

 23.3.3  对SQL Server 2000

    的影响 950

 23.3.4  查看支持SQL高速

    缓存禁用功能的表 951

 23.3.5  使表不支持SQL Server

    高速缓存禁用功能 952

 23.3.6  使数据库不支持SQL 

    Server高速缓存

    禁用功能 952

 23.3.7  SQL Server 2005

    高速缓存禁用功能 953

 23.4  配置ASP.NET应用程序 954

 23.5  测试SQL Server

   高速缓存禁用功能 955

 23.5.1  给页面添加多个表 957

 23.5.2  给SQL Server高速缓存

    依赖性和Request对象

    建立关联 957

 23.5.3  给SQL Server高速

    缓存依赖性和Cache对象

    建立关联 958

 23.6  小结 961

第24章  调试和错误处理技术 962

 24.1  设计期间的支持 962

 24.1.1  语法通知 962

 24.1.2  Immediate和Command

    窗口 964

 24.1.3  任务列表 964

 24.2  跟踪 965

 24.2.1  System.Diagnostics.Trace 

    和ASP.NET的

    Page.Trace 966

 24.2.2  页面级的跟踪 966

 24.2.3  应用程序的跟踪 966

 24.2.4  查看跟踪数据 966

 24.2.5  在组件中跟踪 969

 24.2.6  跟踪的传送 971

 24.2.7  TraceListener 971

 24.2.8  诊断选项 975

 24.2.9  Web事件 976

 24.3  调试 978

 24.3.1  需要的内容 978

 24.3.2  IIS和ASP.NET开发

    服务器 979

 24.3.3  启动调试会话 980

 24.3.4  有助于调试的新工具 983

 24.3.5  客户端的Javascript

    调试 986

 24.3.6  SQL存储过程的调试 988

 24.4  异常和错误处理 988

 24.4.1  处理页面上的异常 989

 24.4.2  处理应用程序异常 989

 24.4.3  HTTP状态码 990

 24.5  小结 991

第25章  文件I/O和流 992

 25.1  使用驱动器、目录和文件 992

 25.1.1  DriveInfo类 993

 25.1.2  Directory和

    DirectoryInfo类 996

 25.1.3  File和FileInfo类 1002

 25.1.4  使用路径 1006

 25.1.5  文件和目录的属性、

    特性和访问控制列表 1010

 25.2  读写文件 1017

 25.2.1  Stream类 1017

 25.2.2  Reader和Writer类 1021

 25.2.3  压缩流 1025

 25.3  处理串行端口 1030

 25.4  网络通信 1031

 25.4.1  WebRequest和

    WebResponse 1032

 25.4.2  发送邮件 1038

 25.5  小结 1038

第26章  用户控件和服务器控件 1040

 26.1  用户控件 1040

 26.1.1  创建用户控件 1040

 26.1.2  与用户控件交互 1043

 26.1.3  动态加载用户控件 1045

 26.2  服务器控件 1050

 26.2.1  WebControl项目的

    建立 1050

 26.2.2  控件的属性 1055

 26.2.3  控件的显示 1056

 26.2.4  添加标记属性 1059

 26.2.5  给HTML设置样式 1061

 26.2.6  主题和skin 1063

 26.2.7  添加客户端特性 1065

 26.2.8  检测和响应

    浏览器功能 1073

 26.2.9  使用ViewState 1076

 26.2.10  引发PostBack事件 1080

 26.2.11  处理回送数据 1083

 26.2.12  复合控件 1085

 26.2.13  模板化控件 1088

 26.2.14  在设计期间创建控件 1095

 26.3  小结 1114

第27章  模块和处理程序 1115

 27.1  处理HTTP请求 1115

 27.1.1  IIS 5/6和ASP.NET 1115

 27.1.2  IIS 7和ASP.NET 1116

 27.1.3  ASP.NET请求处理 1117

 27.2  HttpModule 1117

 27.2.1  修改HTTP输出 1119

 27.2.2  URL的重写 1122

 27.2.3  IIS 通配符 1126

 27.3  HttpHandler 1127

 27.3.1  一般的处理程序 1127

 27.3.2  在IIS中映射文件

    扩展名 1131

 27.4  小结 1133

第28章  使用业务对象 1134

 28.1  使用ASP.NET 3.5中的

       业务对象 1134

 28.1.1  创建预编译的.NET

    业务对象 1134

 28.1.2  在ASP.NET应用程序

    中使用预编译的业务

    对象 1137

 28.2  COM交互操作性:在.NET 

       中使用COM 1138

 28.2.1  运行库可调用包装

    (RCW) 1138

 28.2.2  在ASP.NET代码中

    使用COM对象 1139

 28.2.3  错误处理 1144

 28.2.4  用.NET应用程序部署

    COM组件 1146

 28.3  在非托管代码中

       使用.NET 1148

 28.3.1  COM可调用

    包装(CCW) 1148

 28.3.2  在COM对象中使用

    .NET组件 1150

 28.3.3  早期绑定和后期绑定 1153

 28.3.4  错误处理 1154

 28.3.5  用COM应用程序

    部署.NET组件 1156

 28.4  小结 1157

第29章  ADO.NET Entity

         Framework 1158

 29.1  能否使用同一种语言 1158

 29.1.1  概念层和逻辑层 1160

 29.1.2  层之间的映射 1160

 29.2  创建第一个实体数据模型 1160

 29.2.1  使用EDM向导 1161

 29.2.2  使用ADO.NET实体

    设计器 1163

 29.2.3  使用EDM建立

    ASP.NET页面 1164

 29.3  理解关系 1167

 29.3.1  一对一和一对多关系 1167

 29.3.2  多对一和多对多关系 1170

 29.4  EDM中的继承 1173

 29.5  使用存储过程 1177

 29.6  EntityDataSource控件 1180

 29.6.1  创建基本页面 1180

 29.6.2  配置数据源控件 1181

 29.7  小结 1185

第30章  ASP.NET Dynamic Data 1186

 30.1  使用Visual Studio 2008

   创建基本应用程序 1186

 30.1.1  默认应用程序中创建

    的核心文件 1187

 30.1.2  Dynamic Data

    应用程序 1188

 30.1.3  连接数据库 1193

 30.1.4  在Global.asax文件中

    注册数据模型 1196

 30.1.5  样式和布局 1198

 30.1.6  应用程序的结果 1198

 30.2  使用动态数据路由 1201

 30.3  控制显示方式 1205

 30.4  小结 1207

第31章  建立和使用服务 1208

 31.1  不同系统之间的通信 1208

 31.2  建立一个简单的XML 

       Web服务 1210

 31.2.1  WebService页面指令 1211

 31.2.2  查看Web服务的

    基类文件 1211

 31.2.3  把定制的数据集

    显示为SOAP 1212

 31.2.4  XML Web服务接口 1215

 31.3  使用简单的XML Web

       服务 1217

 31.3.1  添加Web引用 1218

 31.3.2  在客户应用程序中

    调用Web服务 1219

 31.4  Web服务的传输协议 1221

 31.4.1  HTTP-GET 1223

 31.4.2  HTTP-POST 1225

 31.4.3  SOAP 1226

 31.5  Web方法的重载 1226

 31.6  高速缓存Web服务

       的响应 1229

 31.7  SOAP标题 1230

 31.7.1  用SOAP标题建立

    Web服务 1230

 31.7.2  通过SOAP标题使用

    Web服务 1232

 31.7.3  使用SOAP 1.2请求

    Web服务 1234

 31.8  异步使用Web服务 1236

 31.9  Windows Communication

       Foundation 1238

 31.9.1  迈向SOA的一大步 1239

 31.9.2  WCF概述 1240

 31.9.3  建立WCF服务 1240

 31.10  建立WCF使用程序 1247

 31.10.1  添加服务引用 1247

 31.10.2  使用数据合同 1250

 31.10.3  名称空间 1255

 31.11  小结 1255

第32章  ADO.NET Data 

         Services 1256

 32.1  创建第一个服务 1257

 32.1.1  添加Entity Data Model 1257

 32.1.2  创建服务 1259

 32.2  查询接口 1263

 32.2.1  读取数据表 1264

 32.2.2  从表中读取特定的项 1265

 32.2.3  关系 1268

 32.2.4  展开关系 1270

 32.2.5  结果集中的排序 1273

 32.2.6  在结果集中移动 1274

 32.2.7  过滤内容 1275

 32.3  在ASP.NET中使用

   ADO.NET Data Services 1276

 32.4  小结 1280

第33章  本地化 1281

 33.1  文化和地区 1281

 33.1.1  理解文化类型 1282

 33.1.2  ASP.NET线程 1282

 33.1.3  服务器端的文化声明 1285

 33.1.4  客户端的文化声明 1286

 33.1.5  翻译值和行为 1287

 33.2  ASP.NET 3.5资源文件 1294

 33.2.1  使用本地资源 1295

 33.2.2  使用全局资源 1300

 33.3  资源编辑器 1302

 33.4  小结 1303

第34章  配置 1304

 34.1  配置概述 1304

 34.1.1  服务器配置文件 1305

 34.1.2  应用程序配置文件 1308

 34.1.3  配置设置的应用 1308

 34.1.4  检测配置文件的变化 1309

 34.1.5  配置文件的格式 1309

 34.2  公共配置设置 1310

 34.2.1  连接字符串 1310

 34.2.2  配置会话状态 1311

 34.2.3  编译配置 1315

 34.2.4  浏览器的功能 1317

 34.2.5  定制错误 1319

 34.2.6  身份验证 1320

 34.2.7  匿名身份 1322

 34.2.8  授权 1323

 34.2.9  锁定配置设置 1325

 34.2.10  ASP.NET页面配置 1326

 34.2.11  include文件 1327

 34.2.12  配置ASP.NET

         运行时设置 1328

 34.2.13  配置ASP.NET

         辅助进程 1330

 34.2.14  存储与应用程序

         相关的设置 1332

 34.2.15  配置文件的编程 1333

 34.2.16  保护配置设置 1339

 34.2.17  编辑配置文件 1343

 34.3  创建定制段 1344

 34.3.1  使用NameValueFile

    SectionHandler对象 1345

 34.3.2  使用DictionarySection

    Handler对象 1347

 34.3.3  使用SingleTagSection

    Handler对象 1348

 34.3.4  使用定制的配置

    处理程序 1349

 34.4  小结 1351

第35章  测试 1352

 35.1  使用事件日志 1352

 35.1.1  读取事件日志 1353

 35.1.2  写入事件日志 1355

 35.2  使用性能计数器 1357

 35.2.1  通过管理工具查看

    性能计数器 1357

 35.2.2  建立基于浏览器的

    管理工具 1359

 35.3  应用程序的跟踪 1365

 35.4  健康监控 1365

 35.4.1  健康监控系统的

    提供程序模型 1366

 35.4.2  健康监控的配置 1367

 35.4.3  通过配置写入事件:

    运行示例 1374

 35.4.4  把事件路由到

    SQL Server中 1375

 35.4.5  缓存Web事件 1377

 35.4.6  通过电子邮件发送

    Web事件 1379

 35.5  小结 1384

第36章  管理 1385

 36.1  ASP.NET Web站点

       管理工具 1385

 36.1.1  Home选项卡 1386

 36.1.2  Security选项卡 1386

 36.1.3  Application选项卡 1396

 36.1.4  Provider选项卡 1399

 36.2  在Vista的IIS上

       配置ASP.NET 1400

 36.2.1  .NET Compilation 1401

 36.2.2  .NET Globalization 1402

 36.2.3  .NET Profile 1402

 36.2.4  .NET Roles 1402

 36.2.5  .NET Trust Levels 1403

 36.2.6  .NET Users 1403

 36.2.7  Application Settings 1405

 36.2.8  Connection Strings 1405

 36.2.9  Pages and Controls 1406

 36.2.10  Providers 1406

 36.2.11  Session State 1407

 36.2.12  SMTP E-mail 1408

 36.3  小结 1408

第37章  打包和部署ASP.NET

应用程序 1409

 37.1  部署各个部分 1409

 37.2  部署之前的准备 1410

 37.3  部署Web应用

       程序的方法 1411

 37.3.1  使用XCOPY 1411

 37.3.2  使用VS Copy Web Site

    选项 1413

 37.3.3  部署预编译的Web

    应用程序 1415

 37.3.4  建立安装程序 1417

 37.4  安装程序的选项 1424

 37.4.1  使用部署项目的属性 1424

 37.4.2  File System编辑器 1427

 37.4.3  Registry编辑器 1430

 37.4.4  File Types编辑器 1431

 37.4.5  User Interface编辑器 1431

 37.4.6  Custom Actions

    编辑器 1433

 37.4.7  Launch Conditions

    编辑器 1434

 37.5  小结 1434

附录A  迁移ASP.NET旧项目 1435

A.1  迁移过程并不难 1435

A.1.1  同时运行Framework的

 多个版本 1435

A.1.2  升级ASP.NET应用程序 1435

A.2  混合版本——窗体验证 1437

A.3  升级——ASP.NET保留的

     文件夹 1438

A.4  ASP.NET 3.5页面是

     XHTML 1439

A.5  在ASP.NET 3.5中没有

     硬编码的.js文件 1440

A.6  在Visual Studio 2008中转换

     ASP.NET 1.x应用程序 1441

A.7  从ASP.NET 2.0迁移到3.5 1445

附录B  ASP.NET终极工具 1448

B.1  调试更简单 1448

B.1.1  Firebug 1448

B.1.2  YSlow 1449

B.1.3  IE WebDeveloper和Firefox

   WebDeveloper工具栏 1450

B.1.4  Aptana Studio——

   JavaScript IDE 1452

B.1.5  评测器:dotTrace或

   ANTS 1452

B.2  参考资料 1453

B.2.1  PositionlsEverything.net、

   QuirksMode.org和

   HTMLDog.com 1454

B.2.2  Visibone 1454

B.2.3  www.asp.net 1454

B.3  整理代码 1455

B.3.1  来自Devexpress的

       Refactor! for ASP.NET 1455

B.3.2  Code Style Enforcer 1455

B.3.3  Packer for .NET——

   JavaScript最小化器 1456

B.4  Visual Studio 插件 1457

B.4.1  用于Visual Studio 的

   ASPX Edit Helper插件 1458

B.4.2  Power Toys Pack Installer 1458

B.5  扩展ASP.NET 1459

B.5.1  ASP.NET AJAX控件

   工具集 1460

B.5.2  Atif Aziz的ELMAH——

   错误记录模块和

   处理程序 1460

B.5.3  Helicon的ISAPI_Rewrite 1461

B.6  一般目的的开发工具 1462

B.6.1  Telerik的在线代码

       转换器 1463

B.6.2  WinMerge和Differencing

       工具 1463

B.6.3  Reflector 1464

B.6.4  CR_Documentor 1465

B.6.5  Process Explorer 1466

B.7  小结 1467

附录C  Silverlight 2和ASP.NET 1468

C.1  入门 1468

C.2  Silverlight控件 1471

C.2.1  Silverlight控件 1472

C.2.2  MediaPlayer控件 1478

C.3  Silverlight和JavaScript 1479

C.3.1  JavaScript API 1479

C.3.2  HTML Bridge 1481

C.4  小结 1486

附录D  ASP.NET大于

    ASP.NET MVC 1487

D.1  抽象:Web窗体能做好的

     工作 1487

D.1.1  基本的Web窗体

       应用程序 1488

D.1.2  事件的重要性 1491

D.2  漏洞:Web窗体不适合

     哪些场合 1492

D.2.1  ViewState 1493

D.2.2  控制尖括号 1493

D.2.3  客户ID 1494

D.2.4  测试 1494

D.3  返回基础:ASP.NET MVC

     相信… 1494

D.3.1  管弦乐作曲和编程 1495

D.3.2  Separation of Concerns

       的含义 1495

D.3.3  可维护性 1495

D.4  考虑可测试性 1496

D.5  对ASP.NET MVC的

     一般反应 1497

D.5.1  这看起来像是1999年

       的传统ASP 1497

D.5.2  谁移动了我的<asp:Cheese

       runat=“server”> 1497

D.5.3  另一个Web框架 1497

D.6  为什么“(ASP.NET > ASP

     .NET MVC) ==True” 1498

D.6.1  在配置之上的约定 1500

D.6.2  第三个请求 1503

D.6.3  请求的生命周期 1505

D.7  小结 1505

附录E  ASP.NET在线资源 1506

E.1  作者的Blog 1506

E.2  ASP.NET有影响的Blog 1506

E.3  Web站点 1506