图书目录

目    录

上卷

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

1.1  应用程序的位置选项 1

1.1.1  内置的Web服务器 1

1.1.2  IIS 3

1.1.3  FTP 4

1.1.4  Web站点需要FrontPage

   Extensions 4

1.2  ASP.NET页面结构选项 5

1.2.1  内嵌编码 7

1.2.2  后台编码模型 9

1.3  ASP.NET 3.5的Page指令 11

1.3.1  @Page指令 12

1.3.2  @Master指令 14

1.3.3  @Control指令 15

1.3.4  @Import指令 16

1.3.5  @Implements指令 18

1.3.6  @Register指令 18

1.3.7  @Assembly指令 19

1.3.8  @PreviousPageType指令 19

1.3.9  @MasterType指令 19

1.3.10  @OutputCache指令 20

1.3.11  @Reference指令 20

1.4  ASP.NET页面的事件 21

1.5  处理回送 22

1.6  跨页面的传送 23

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

1.7.1  \App_Code文件夹 30

1.7.2  \App_Data文件夹 34

1.7.3  \App_Themes文件夹 34

1.7.4  \App_GlobalResources

   文件夹 35

1.7.5  \App_LocalResources

   文件夹 35

1.7.6  \App_WebReferences

   文件夹 35

1.7.7  \App_Browsers文件夹 35

1.8  编译 35

1.9  建立提供程序 39

1.9.1  使用内置的提供程序 40

1.9.2  使用自己的提供程序 41

1.10  Global.asax 46

1.11  通过Visual Studio 2008

   使用类 50

1.12  小结 54

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

    客户端脚本 57

2.1  ASP.NET服务器控件 57

2.1.1  服务器控件的类型 58

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

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

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

2.2.1  控件的常见属性 63

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

2.3  HTML服务器控件 68

2.3.1  HtmlControl基类 71

2.3.2  HtmlContainerControl类 71

2.3.3  所有的HTML类 71

2.3.4  使用HtmlGenericControl类 73

2.4  通过JavaScript处理页面和

     服务器控件 74

2.4.1  使用Page.ClientScript.

   RegisterClientScriptBlock 75

2.4.2  使用Page.ClientScript.

   RegisterStartupScript 77

2.4.3  使用Page.ClientScript.

   RegisterClientScriptInclude 79

2.5  客户端回调 79

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

2.5.2  使用回调功能:一种简单

   的方法 81

2.5.3  使用带一个参数的回调功能 86

2.5.4  使用回调功能:

   一个复杂的例子 89

2.6  小结 95

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

3.1  Web服务器控件概述 97

3.2  Label服务器控件 98

3.3  Literal服务器控件 100

3.4  TextBox服务器控件 101

3.4.1  使用Focus()方法 102

3.4.2  使用AutoPostBack 102

3.4.3  使用AutoCompleteType 104

3.5  Button服务器控件 105

3.5.1  CausesValidation属性 105

3.5.2  CommandName属性 105

3.5.3  使用客户端JavaScript

   的按钮 106

3.6  LinkButton服务器控件 108

3.7  ImageButton服务器控件 109

3.8  HyperLink服务器控件 110

3.9  DropDownList服务器控件 111

3.10  从集合中可视化地

   删除条目 114

3.11  ListBox服务器控件 115

 3.11.1  允许用户选择多项 116

 3.11.2  使用ListBox

         控件的例子 116

 3.11.3  给集合添加条目 118

3.12  CheckBox服务器控件 119

 3.12.1  确定复选框是否被选中 120

 3.12.2  给复选框赋值 120

 3.12.3  排列复选框的文本 121

3.13  CheckBoxList服务器控件 121

3.14  RadioButton服务器控件 124

3.15  RadioButtonList服务器控件 126

3.16  Image服务器控件 127

3.17  Table服务器控件 129

3.18  Calendar服务器控件 131

 3.18.1  从Calendar控件中

         选择一个日期 132

 3.18.2  从Calendar控件中选择

         要输出的日期格式 133

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

 3.18.4  使用日期范围 134

 3.18.5  修改日历的样式和

         操作方式 136

3.19  AdRotator服务器控件 139

3.20  Xml服务器控件 141

3.21  Panel服务器控件 142

3.22  PlaceHolder服务器控件 144

3.23  BulletedList服务器控件 144

3.24  HiddenField服务器控件 150

3.25  FileUpload服务器控件 151

 3.25.1  使用FileUpload

         控件上传文件 151

 3.25.2  指定正确的ASP.NET

         权限第1章给上传文件 154

 3.25.3  理解文件大小的限制 155

 3.25.4  从同一个页面上传

         多个文件 157

 3.25.5  把上传的文件放在

         Stream对象中 160

 3.25.6  把文件内容从Stream对

         象移动到Byte数组中 161

3.26  MultiView和View

     服务器控件 161

3.27  Wizard服务器控件 165

 3.27.1  定制边栏导航 167

 3.27.2  AllowReturn属性 168

 3.27.3  使用StepType属性 168

 3.27.4  给Wizard控件添加标题 168

 3.27.5  使用向导的导航系统 169

 3.27.6  使用Wizard控件的事件 170

 3.27.7  使用Wizard控件显示

    窗体元素 171

3.28  ImageMap服务器控件 176

3.29  小结 178

第4章  验证服务器控件 179

4.1  有效性验证 179

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

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

4.3.1  验证原因 182

4.3.2  RequiredFieldValidator

   服务器控件 182

4.3.3  CompareValidator

   服务器控件 187

4.3.4  RangeValidator

   服务器控件 190

4.3.5  RegularExpressionValidator

   服务器控件 194

4.3.6  CustomValidator

   服务器控件 195

4.3.7  ValidationSummary

   服务器控件 201

4.4  关闭客户端验证功能 204

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

4.6  使用验证组 206

4.7  小结 210

第5章  使用Master页面 211

5.1  需要Master页面的原因 211

5.2  Master页面基础 213

5.3  编写Master页面 214

5.4  编写内容页面 217

5.4.1  混合页面类型和语言 221

5.4.2  指定要使用的

   Master页面 222

5.4.3  使用页面标题 223

5.4.4  使用Master页面中的

   控件和属性 224

5.5  在Master页面中指定

     默认内容 231

5.6  以编程方式将Master页面

  赋予内容页面 233

5.7  Master页面的嵌套 234

5.8  容器特定的Master页面 238

5.9  事件的触发顺序 239

5.10  高速缓存Master页面 240

5.11  ASP.NET AJAX和Master

     页面 240

5.12  小结 243

第6章  主题和Skin 245

6.1  使用ASP.NET中的主题 245

6.1.1  给单个ASP.NET

   页面应用主题 245

6.1.2  把主题应用于整个

   应用程序 247

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

6.1.4  删除Web页面上的

   主题特性 248

6.1.5  使用Master页面时

   理解主题 248

6.1.6  StyleSheetTheme属性 249

6.2  创建自己的主题 249

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

6.2.2  创建Skin 250

6.2.3  在主题中包含CSS文件 253

6.2.4  使主题包含图像 255

6.3  定义多个Skin选项 258

6.4  编程使用主题 260

6.4.1  编程指定页面的主题 260

6.4.2  编程指定控件的SkinID 261

6.5  主题、Skin和定制控件 261

6.6  小结 265

第7章  ASP.NET 3.5中的数据绑定 267

7.1  数据源控件 267

7.1.1  SqlDataSource控件 269

7.1.2  LINQ数据源控件 280

7.1.3  AccessDataSource控件 285

7.1.4  XmlDataSource控件 285

7.1.5  ObjectDataSource控件 286

7.1.6  SiteMapDataSource控件 291

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

7.3  存储连接信息 292

7.4  使用绑定的列表控件和

  数据源控件 295

7.4.1  GridView 295

7.4.2  编辑GridView

   中的数据行 311

7.4.3  删除GridView数据 318

7.4.4  DetailsView 320

7.4.5  使用DetailsView插入、

   更新和删除数据 326

7.4.6  ListView 328

7.4.7  FormView控件 335

7.5  其他数据绑定控件 340

7.5.1  DropDownList、ListBox、

   RadioButtonList和

   CheckBoxList 340

7.5.2  TreeView控件 340

7.5.3  Ad Rotator控件 341

7.5.4  Menu 341

7.6  内部数据绑定语法 342

7.6.1  DataBinder语法的变化 343

7.6.2  XML数据绑定 343

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

7.8  小结 349

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

8.1  ADO.NET的基本功能 351

8.1.1  常见的ADO.NET任务 352

8.1.2  ADO.NET的基本命名

   空间和类 357

8.1.3  使用Connection对象 358

8.1.4  使用Command对象 359

8.1.5  使用DataReader对象 360

8.1.6  使用数据适配器 363

8.1.7  使用参数 365

8.1.8  DataSet和DataTable 369

8.1.9  将Oracle用作

   ASP.NET 3.5的数据库 374

8.2  DataList服务器控件 376

8.2.1  可用的模板 376

8.2.2  使用ItemTemplate 377

8.2.3  使用其他布局模板 380

8.2.4  使用多个列 382

8.3  ListView服务器控件 383

8.3.1  可用的模板 383

8.3.2  使用模板 384

8.3.3  创建布局模板 385

8.3.4  创建ItemTemplate 387

8.3.5  创建EditItemTemplate 388

8.3.6  创建EmptyItemTemplate 388

8.3.7  创建InsertItemTemplate 389

8.3.8  结果 389

8.4  给ADO.NET任务使用

  Visual Studio 391

8.4.1  建立与数据源的连接 392

8.4.2  使用DataSet设计器 394

8.4.3  使用DataSet对象

   CustomerOrders 398

8.5  命令的异步执行 403

8.5.1  SqlCommand类的

   异步方法 403

8.5.2  IAsyncResult接口 404

8.5.3  AsyncCallback 404

8.5.4  WaitHandle类 405

8.5.5  ADO.NET中异步处理

   的方式 406

8.5.6  取消异步处理 423

8.5.7  异步连接 424

8.6  小结 424

第9章  使用LINQ查询 425

9.1  LINQ to Objects 425

9.1.1  传统的查询方法 425

9.1.2  用LINQ替代传统的查询 435

9.1.3  数据分组 442

9.1.4  其他LINQ运算符 443

9.1.5  LINQ连接 444

9.1.6  使用LINQ分页 446

9.2  LINQ to XML 447

9.3  LINQ to SQL 452

9.3.1  通过LINQ插入、

   更新和删除查询 461

9.3.2 扩展LINQ 465

9.4  小结 465

第10章  使用XML和LINQ to XML 467

10.1  XML的基础 468

 10.1.1  XML InfoSet 470

 10.1.2  XSD/XML模式定义 471

 10.1.3  在Visual Studio 2008

         中编辑XML和

         XML模式 472

10.2  XmlReader和XmlWriter 475

 10.2.1  使用XDocument替代

         XmlReader 477

 10.2.2  使用模式和

         XmlTextReader 479

 10.2.3  使用XDocument

         根据模式来验证 481

 10.2.4  包含NameTable优化 482

 10.2.5  从XML中提取

         .NET CLR类型 485

 10.2.6  ReadSubtree和

         XmlSerialization 486

 10.2.7  以LINQ to XML从

         XML中创建CLR对象 488

 10.2.8  用XmlWriter创建XML 489

 10.2.9  用LINQ for XML

         创建XML 492

 10.2.10  2.0版本中XmlReader

     和XmlWriter的改进 495

10.3  XmlDocument和

     XPathDocument 495

 10.3.1  DOM存在的问题 495

 10.3.2  XPath、XPathDocument

         和XmlDocument 496

10.4  DataSet 500

 10.4.1  把DataSet保存到

         XML中 500

 10.4.2  XmlDataDocument 502

10.5  XmlDataSource控件 503

10.6  XSLT 507

 10.6.1  XslCompiledTransform 509

 10.6.2  XSLT调试 513

10.7  数据库和XML 514

 10.7.1  FOR XML AUTO子句 514

 10.7.2  SQL Server 2005和

         XML数据类型 518

10.8  小结 524

第11章  IIS7.0开发 527

11.1  IIS7的模块化体系结构 527

 11.1.1  IIS-WebServer 528

 11.1.2  IIS-WebServer

         ManagementTools 530

 11.1.3  IIS-FTPPulishingService 531

11.2  IIS7的扩展体系结构 531

11.3  IIS7和ASP.NET

     集成的管道 532

11.4  建立定制的Web服务器 533

 11.4.1  更新的依赖关系 534

 11.4.2  在Windows Vista

         上安装IIS7 535

 11.4.3  在Windows Server 2008

         上安装IIS7 535

 11.4.4  命令行安装选项 536

 11.4.5  Unattended安装选项 537

 11.4.6  升级 537

11.5  Internet Information Services

   (IIS)管理器 538

 11.5.1  Application Pools 539

 11.5.2  Web Sites 542

 11.5.3  层次结构的配置 544

 11.5.4  委托 548

11.6  把应用程序从IIS6

     迁移到IIS7 551

11.7  小结 553

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

12.1  提供程序概述 555

12.2  ASP.NET 3.5中的提供

   程序模型 557

 12.2.1  设置提供程序,以

         使用Microsoft SQL 

         Server 7.0、2000、

         2005或2008 558

 12.2.2  Membership提供程序 564

 12.2.3  Role提供程序 568

 12.2.4  Personalization提供程序 573

 12.2.5  SiteMap提供程序 574

 12.2.6  SessionState提供程序 575

 12.2.7  Web事件提供程序 578

 12.2.8  配置提供程序 586

 12.2.9  WebParts提供程序 589

12.3  提供程序的配置 590

12.4  小结 591

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

13.1  提供程序是较大体系

     结构中的一层 593

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

     提供程序的行为 594

 13.2.1  通过SqlMembership

         Provider建立简单的

         密码结构 594

 13.2.2  通过SqlMembership

         Provider建立强类型

         的密码结构 597

13.3  ProviderBase类 598

13.4  建立自己的提供程序 600

 13.4.1  创建CustomProviders

         应用程序 601

 13.4.2  构建需要的类框架 602

 13.4.3  创建XML用户

         数据存储 606

 13.4.4  在web.config文件中定义

         提供程序实例 606

 13.4.5  没有实现Membership

         Provider类的

         方法和属性 607

 13.4.6  实现Membership

    Provider类的

    方法和属性 608

 13.4.7  使用XmlMembership

         Provider进行用户登录 616

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

 13.5.1  用新的LimitedSqlRole

    Provider提供程序

    限制角色功能 618

 13.5.2  使用新的LimitedSql

         RoleProvider提供程序 622

13.6  小结 626

第14章  站点导航 627

14.1  基于XML的站点地图 627

14.2  SiteMapPath服务器控件 629

 14.2.1  PathSeparator属性 632

 14.2.2  PathDirection 属性 633

 14.2.3  ParentLevelsDisplayed

         属性 634

 14.2.4  ShowToolTips属性 635

 14.2.5  SiteMapPath控件的

    子元素 635

14.3  TreeView服务器控件 635

 14.3.1  标识TreeView控件

    的内置样式 639

 14.3.2  TreeView控件的

         各个部分 640

 

 14.3.3  在XML文件中绑定

         TreeView控件 641

 14.3.4  在TreeView中选择

         多个选项 644

 14.3.5  在TreeView控件中

    指定定制的图标 647

 14.3.6  指定用于连接

         节点的线条 649

 14.3.7  编程使用TreeView

         控件 650

14.4  Menu服务器控件 656

 14.4.1  给Menu控件应用

    不同的样式 657

 14.4.2  Menu事件 662

 14.4.3  把Menu控件绑定到

    XML文件上 663

14.5  SiteMap数据提供程序 665

 14.5.1  ShowStartingNode属性 665

 14.5.2  StartFromCurrentNode

         属性 666

 14.5.3  StartingNodeOffset属性 667

 14.5.4  StartingNodeUrl属性 667

14.6  SiteMap API 668

14.7  URL映射 671

14.8  站点地图的本地化 672

 14.8.1  为本地化构建

         Web.sitemap文件 672

 14.8.2  修改Web.config文件 673

 14.8.3  创建程序集资源

         (.resx)文件 673

 14.8.4  测试结果 675

14.9  安全补偿 676

 14.9.1  启动管理员的角色

         管理功能 676

 14.9.2  建立管理员的配置段 677

 14.9.3  启用安全补偿功能 679

14.10  嵌套站点地图文件 681

14.11  小结 682

第15章  个性化 685

15.1  个性化模型 685

15.2  创建个性化属性 686

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

 15.2.2  使用个性化属性 688

 15.2.3  添加一组个性化属性 691

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

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

 15.2.6  使用定制的类型 693

 15.2.7  提供默认值 696

 15.2.8  把个性化属性指定为

         只读 696

15.3  匿名个性化 697

 15.3.1  支持终端用户的

         匿名身份 697

 15.3.2  使用匿名身份事件 700

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

 15.3.4  有关匿名用户配置

         信息的警告 701

15.4  编程访问个性化功能 702

 15.4.1  迁移匿名用户 702

 15.4.2  profile的个性化 704

 15.4.3  确定是否继续自动

         保存profile值 705

15.5  个性化提供程序 706

 15.5.1  使用SQL Server 

         Express Edition 706

 15.5.2  使用Microsoft的SQL

     Server 7.0/2000/

         2005/2008 707

 15.5.3  使用多个提供程序 709

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

 15.6.1  ProfileManager

    类的属性 710

 15.6.2  ProfileManager

         类的方法 711

 15.6.3  建立ProfileManager.aspx

    页面 711

 15.6.4  检验ProfileManager.aspx

         页面的代码 715

 15.6.5  运行ProfileManager.aspx

    页面 716

15.7  小结 716

第16章  成员和角色管理 719

16.1  身份验证 719

16.2  授权 719

16.3  ASP.NET 3.5的身份验证 720

 16.3.1  为成员建立Web站点 720

 16.3.2  添加用户 722

 16.3.3  请求证书 737

 16.3.4  处理验证用户 745

 16.3.5  显示在线用户数 747

 16.3.6  处理密码 749

16.4  ASP.NET 3.5的授权 753

 16.4.1  使用LoginView

    服务器控件 753

 16.4.2  为角色管理建立

    Web站点 756

 16.4.3  添加和检索应用

    程序角色 759

 16.4.4  删除角色 761

 16.4.5  给角色添加用户 762

 16.4.6  获取某个角色的

    所有用户 762

 16.4.7  获取包含某个用户的

    所有角色 764

 16.4.8  从角色中删除用户 765

 16.4.9  检查角色中的用户 766

 16.4.10  角色的高速缓存方式 767

16.5  使用Web站点管理工具 768

16.6  Membership API的

     公共方法 769

16.7  Roles API的公共方法 769

16.8  小结 770

下卷

第17章  Portal Framework和

     Web Part 771

17.1  Web Part简介 771

17.2  建立动态的模块化

     Web站点 773

 17.2.1  WebPartManager控件 773

 17.2.2  使用区域进行布局 774

 17.2.3  WebPartZone控件 777

 17.2.4  允许用户改变页面

         的模式 779

 17.2.5  修改区域 790

17.3  使用Portal Framework

   中的类 796

17.4  创建定制的Web Part 799

17.5  连接Web Part 805

 17.5.1  建立提供程序Web Part 806

 17.5.2  建立用户Web Part 809

 17.5.3  连接ASP.NET页面上的

         Web Part 811

 17.5.4  连接Web Part时处理

         Master页面的难点 814

17.6  小结 815

第18章  用ASP.NET进行HTML和

     CSS设计 817

18.1  警告 817

18.2  HTML和CSS概述 818

 18.2.1  CSS的引入 819

 18.2.2  创建样式表 819

 18.2.3  CSS规则 822

 18.2.4  CSS继承 831

 18.2.5  元素的布局和定位 832

 18.2.6  在Visual Studio中

         使用HTML和CSS 839

 18.2.7  ASP.NET 2.0 CSS—— 

         友好的控件适配器 846

18.3  小结 847

第19章  ASP.NET AJAX 849

19.1  理解对AJAX的需求 849

 19.1.1  在AJAX出现之前 850

 19.1.2  AJAX改变了这个过程 850

19.2  ASP.NET AJAX和

     Visual Studio 2008 853

 19.2.1  客户端技术 853

 19.2.2  服务器端技术 854

 19.2.3  用ASP.NET AJAX开发 854

19.3  ASP.NET AJAX应用程序 855

 19.3.1  建立没有AJAX

         的简单ASP.NET页面 857

 19.3.2  建立包含AJAX的

    简单ASP.NET页面 858

19.4  ASP.NET AJAX的服务器

   端控件 864

 19.4.1  ScriptManager控件 865

 19.4.2  ScriptManagerProxy

         控件 867

 19.4.3  Timer控件 869

 19.4.4  UpdatePanel控件 870

 19.4.5  UpdateProgress控件 875

19.5  使用多个UpdatePanel控件 877

19.6  小结 881

第20章  ASP.NET AJAX

         控件工具集 883

20.1  下载和安装 883

 20.1.1  新的Visual Studio模板 884

 20.1.2  给Visual Studio 2008

    工具箱添加新控件 885

20.2  ASP.NET AJAX控件 887

 20.2.1  ASP.NET AJAX控件

    工具集的扩展程序 889

 20.2.2  ASP.NET AJAX控件

    工具集中的服务器控件 936

20.3  小结 944

第20章  安全性 945

21.1  身份验证和授权 945

21.2  应用身份验证措施 946

 21.2.1  <authentication>节点 946

 21.2.2  基于Windows的

    身份验证 947

 21.2.3  基于窗体的身份验证 955

 21.2.4  Passport身份验证 964

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

21.4  编程授权 966

 21.4.1  使用User.Identity 966

 21.4.2  使用User.IsInRole() 967

 21.4.3  用WindowsIdentity

         显示更多信息 968

21.5  身份和模拟 971

21.6  通过IIS进行保护 973

 21.6.1  IP地址和域名限制 973

 21.6.2  使用文件扩展名 974

 21.6.3  使用ASP.NET MMC

         管理单元 977

 21.6.4  使用IIS 7.0 Manager 979

21.7  小结 979

第22章  状态管理 981

22.1  如何选择 981

22.2  ASP.NET中的Session对象 984

 22.2.1  会话和事件模型 984

 22.2.2  配置会话状态的管理 985

 22.2.3  进程中的会话状态 986

 22.2.4  进程外的会话状态 993

 22.2.5  SQL支持的会话状态 999

 22.2.6  用其他提供程序扩展

         会话状态 1002

 22.2.7  无cookie的会话状态 1003

 22.2.8  选择维护状态的

         正确方式 1004

22.3  Application对象 1005

22.4  查询字符串 1005

22.5  cookie 1006

22.6  回送和跨页面的回送 1006

22.7  隐藏的字段、ViewState

     和ControlState 1009

22.8  为短时间状态存储

     应用HttpContext.Current.

     Items 1013

22.9  小结 1014

第23章  高速缓存 1015

23.1  高速缓存 1015

 23.1.1  输出高速缓存 1015

 23.1.2  部分页面(UserControl)

    的高速缓存 1018

 23.1.3  Post-Cache Substitution 1019

 23.1.4  HttpCachePolicy和

    客户端高速缓存 1021

23.2  编程高速缓存 1024

 23.2.1  使用Cache对象高速

    缓存数据 1024

 23.2.2  控制ASP.NET

    高速缓存 1025

 23.2.3  高速缓存依赖性 1025

23.3  使用SQL Server高速

     缓存依赖性 1031

 23.3.1  使数据库支持

    SQL Server高速

    缓存禁用功能 1031

 23.3.2  使表支持

    SQL Server高速

    缓存禁用功能 1032

 23.3.3  对SQL Server 2000

    的影响 1032

 23.3.4  查看支持SQL高速

    缓存禁用功能的表 1033

 23.3.5  使表不支持SQL Server

    高速缓存禁用功能 1034

 23.3.6  使数据库不支持

    SQL Server高速

    缓存禁用功能 1034

 23.3.7  SQL Server 2005

    高速缓存禁用功能 1035

23.4  配置ASP.NET应用程序 1036

23.5  测试SQL Server高速

     缓存禁用功能 1037

 23.5.1  给页面添加多个表 1039

 23.5.2  给SQL Server高速缓存

    依赖性和Request

    对象建立关联 1039

 23.5.3  给SQL Server高速缓存

    依赖性和Cache对象

    建立关联 1040

23.6  小结 1044

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

24.1  设计期间的支持 1045

 24.1.1  语法通知 1045

 24.1.2  Immediate和Command

    窗口 1047

 24.1.3  任务列表 1048

24.2  跟踪 1049

 24.2.1  System.Diagnostics.Trace

         和ASP.NET的

         Page.Trace 1049

 24.2.2  页面级的跟踪 1049

 24.2.3  应用程序的跟踪 1050

 24.2.4  查看跟踪数据 1050

 24.2.5  在组件中跟踪 1053

 24.2.6  跟踪的传送 1055

 24.2.7  TraceListener 1055

 24.2.8  诊断选项 1060

 24.2.9  Web事件 1061

24.3  调试 1063

 24.3.1  需要的内容 1063

 24.3.2  IIS和ASP.NET

    开发服务器 1064

 24.3.3  启动调试会话 1065

 24.3.4  有助于调试的新工具 1068

 24.3.5  客户端的Javascript

    调试 1071

 24.3.6  SQL存储过程的调试 1073

24.4  异常和错误处理 1073

 24.4.1  处理页面上的异常 1074

 24.4.2  处理应用程序异常 1075

 24.4.3  HTTP状态码 1076

24.5  小结 1077

第25章  文件I/O和流 1079

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

 25.1.1  DriveInfo类 1079

 25.1.2  Directory和

    DirectoryInfo类 1083

 25.1.3  File和FileInfo类 1090

 25.1.4  使用路径 1094

 25.1.5  文件和目录的属性、

    特性和访问控制列表 1098

25.2  读写文件 1105

 25.2.1  Stream类 1106

 25.2.2  Reader和Writer类 1110

 25.2.3  压缩流 1114

25.3  处理串行端口 1119

25.4  网络通信 1120

 25.4.1  WebRequest和

         WebResponse 1121

 25.4.2  发送邮件 1127

25.5  小结 1128

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

26.1  用户控件 1129

 26.1.1  创建用户控件 1129

 26.1.2  与用户控件交互 1132

 26.1.3  动态加载用户控件 1134

26.2  服务器控件 1139

 26.2.1  WebControl

         项目的建立 1140

 26.2.2  控件的属性 1145

 26.2.3  控件的显示 1146

 26.2.4  添加标记属性 1150

 26.2.5  给HTML设置样式 1152

 26.2.6  主题和Skin 1154

 26.2.7  添加客户端特性 1156

 26.2.8  检测和响应

         浏览器功能 1165

 26.2.9  使用ViewState 1168

 26.2.10  引发PostBack事件 1173

 26.2.11  处理回送数据 1177

 26.2.12  复合控件 1178

 26.2.13  模板化控件 1182

 26.2.14  在设计期间创建控件 1189

26.3  小结 1209

第27章  模块和处理程序 1211

27.1  处理HTTP请求 1211

 27.1.1  IIS 5/6和ASP.NET 1211

 27.1.2  IIS 7和ASP.NET 1212

 27.1.3  ASP.NET请求处理 1213

27.2  HttpModule 1214

 27.2.1  修改HTTP输出 1215

 27.2.2  URL的重写 1218

 27.2.3  IIS 通配符 1222

27.3  HttpHandler 1224

 27.3.1  一般的处理程序 1224

 27.3.2  在IIS中映射

         文件扩展名 1229

27.4  小结 1231

第28章  使用业务对象 1233

28.1  使用ASP.NET 3.5中的

   业务对象 1233

 28.1.1  创建预编译的.NET

         业务对象 1233

 28.1.2  在ASP.NET应用程序

         中使用预编译的

         业务对象 1236

27.2  COM交互操作性:

   在.NET中使用COM 1237

 28.2.1  运行库可调用包装

         (RCW) 1238

 28.2.2  在ASP.NET代码中

         使用COM对象 1239

 28.2.3  错误处理 1243

 28.2.4  用.NET应用程序部署

         COM组件 1246

28.3  在非托管代码中

   使用.NET 1248

 28.3.1  COM可调用

         包装(CCW) 1248

 28.3.2  在COM对象中

         使用.NET组件 1250

 28.3.3  早期绑定和后期绑定 1253

 28.3.4  错误处理 1254

 28.3.5  用COM应用程序

         部署.NET组件 1256

28.4  小结 1257

第29章  建立和使用服务 1259

29.1  不同系统之间的通信 1259

29.2  建立一个简单的

     XML Web服务 1261

 29.2.1  WebService页面指令 1262

 29.2.2  查看Web服务的

         基类文件 1263

 29.2.3  把定制的数据集

         显示为SOAP 1264

 29.2.4  XML Web服务接口 1267

29.3  使用简单的

     XML Web服务 1269

 29.3.1  添加Web引用 1270

 29.3.2  在客户应用程序中

         调用Web服务 1271

29.4  Web服务的传输协议 1274

 29.4.1  HTTP-GET 1275

 29.4.2  HTTP-POST 1277

 29.4.3  SOAP 1278

29.5  Web方法的重载 1278

29.6  高速缓存Web

     服务的响应 1282

29.7  SOAP标题 1282

 29.7.1  用SOAP标题建立

         Web服务 1283

 29.7.2  通过SOAP标题使用

         Web服务 1285

 29.7.3  使用SOAP 1.2请求

         Web服务 1287

29.8  异步使用Web服务 1289

29.9  Windows Communication

      Foundation 1292

 29.9.1  迈向SOA的一大步 1293

 29.9.2  WCF概述 1293

 29.9.3  建立WCF服务 1294

29.10  建立WCF使用程序 1301

   29.10.1  添加服务引用 1301

   29.10.2  使用数据合同 1304

   29.10.3  命名空间 1310

29.11  小结 1310

第30章  本地化 1311

30.1  文化和地区 1311

 30.1.1  理解文化类型 1312

 30.1.2  ASP.NET线程 1313

 30.1.3  服务器端的文化声明 1316

 30.1.4  客户端的文化声明 1317

 30.1.5  翻译值和行为 1318

30.2  ASP.NET 3.5资源文件 1326

 30.2.1  使用本地资源 1326

 30.2.2  使用全局资源 1332

30.3  资源编辑器 1335

30.4  小结 1335

第31章  配置 1337

31.1  配置概述 1337

 31.1.1  服务器配置文件 1338

 31.1.2  应用程序配置文件 1341

 31.1.3  配置设置的应用 1341

 31.1.4  检测配置文件的变化 1342

 31.1.5  配置文件的格式 1342

31.2  公共配置设置 1343

 31.2.1  连接字符串 1343

 31.2.2  配置会话状态 1344

 31.2.3  编译配置 1349

 31.2.4  浏览器的功能 1350

 31.2.5  定制错误 1353

 31.2.6  身份验证 1354

 31.2.7  匿名身份 1356

 31.2.8  授权 1357

 31.2.9  锁定配置设置 1359

 31.2.10  ASP.NET页面配置 1360

 31.2.11  include文件 1361

 31.2.12  配置ASP.NET

     运行时设置 1362

 31.2.13  配置ASP.NET

     辅助进程 1364

 31.2.14  存储与应用程序

     相关的设置 1367

 31.2.15  配置文件的编程 1367

 31.2.16  保护配置设置 1374

 31.2.17  编辑配置文件 1378

31.3  创建定制段 1380

 31.3.1  使用NameValueFile

         SectionHandler对象 1380

 31.3.2  使用Dictionary

         SectionHandler对象 1382

 31.3.3  使用SingleTag

         SectionHandler对象 1384

 31.3.4  使用定制的配置

         处理程序 1385

31.4  小结 1387

第32章  测试 1389

32.1  使用事件日志 1389

 32.1.1  读取事件日志 1389

 32.1.2  写入事件日志 1392

32.2  使用性能计数器 1395

 32.2.1  通过管理工具查看

         性能计数器 1395

 32.2.2  建立基于浏览器的

         管理工具 1397

32.3  应用程序的跟踪 1402

32.4  健康监控 1403

 32.4.1  健康监控系统的

         提供程序模型 1404

 32.4.2  健康监控的配置 1405

 32.4.3  通过配置写入事件:

         运行示例 1412

 32.4.4  把事件路由到

    SQL Server中 1413

 32.4.5  缓存Web事件 1416

 32.4.6  通过电子邮件发送

    Web事件 1418

32.5  小结 1423

第33章  管理 1425

33.1  ASP.NET Web站点

   管理工具 1425

 33.1.1  Home选项卡 1426

 33.1.2  Security选项卡 1427

 33.1.3  Application选项卡 1436

 33.1.4  Provider选项卡 1439

33.2  在Vista的IIS上配置

     ASP.NET 1440

 33.2.1  .NET编译 1441

 33.2.2  .NET Globalization 1442

 33.2.3  .NET Profile 1442

 33.2.4  .NET Roles 1443

 33.2.5  .NET Trust Levels 1444

 33.2.6  .NET Users 1444

 33.2.7  Application Settings 1445

 33.2.8  Connection Strings 1446

 33.2.9  Pages and Controls 1447

 33.2.10  Providers 1447

 33.2.11  Session State 1447

 33.2.12  SMTP E-mail 1448

33.3  小结 1449

第34章  打包和部署ASP.NET

     应用程序 1451

34.1  部署各个部分 1451

34.2  部署之前的准备 1452

34.3  部署Web应用程序的方法 1453

 34.3.1  使用XCOPY 1453

 34.3.2  使用VS Copy Web Site

         选项 1455

 34.3.3  部署预编译的Web

         应用程序 1458

 34.3.4  建立安装程序 1460

34.4  安装程序的选项 1468

 34.4.1  使用部署项目的属性 1468

 34.4.2  File System编辑器 1472

 34.4.3  Registry编辑器 1475

 34.4.4  File Types编辑器 1476

 34.4.5  User Interface编辑器 1477

 34.4.6  Custom Actions编辑器 1479

 34.4.7  Launch Conditions

         编辑器 1480

34.5  小结 1481

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

A.1  迁移过程并不难 1483

A.1.1  同时运行Framework

   的多个版本 1483

A.1.2  升级ASP.NET

   应用程序 1483

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

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

  文件夹 1486

A.4  ASP.NET 3.5页面是

  XHTML 1487

A.5  在ASP.NET 3.5中没有

  硬编码的.js文件 1489

A.6  在Visual Studio 2008中转

  换ASP.NET 1.x应用程序 1489

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

附录B  ASP.NET终极工具 1497

B.1  调试更简单 1497

B.1.1  Firebug 1497

B.1.2  YSlow 1498

B.1.3  IE WebDeveloper和

   Firefox WebDeveloper工具栏 1500

B.1.4  Aptana Studio——

   JavaScript IDE 1501

B.1.5  评测器:dotTrace或

   ANTS 1502

B.2  参考资料 1503

B.2.1  PositionlsEverything.net、

   QuirksMode.org和

   HTMLDog.com 1503

B.2.2  Visibone 1504

B.2.3  www.asp.net 1504

B.3  整理代码 1504

B.3.1  来自Devexpress的

   Refactor! for ASP.NET 1504

B.3.2  Code Style Enforcer 1505

B.3.3  Packer for .NET——

   Javascript最小化器 1506

B.4  Visual Studio 插件 1507

B.4.1  用于Visual Studio 的

   ASPX Edit Helper插件 1507

B.4.2  Power Toys Pack Installer 1508

B.5  扩展ASP.NET 1509

B.5.1  ASP.NET AJAX

   控件工具集 1509

B.5.2  Atif Aziz的ELMAH——

   错误记录模块和处理程序 1510

B.5.3  Helicon的ISAPI_Rewrite 1511

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

B.6.1  Telerik的在线代码转换器 1512

B.6.2  WinMerge和Differencing

   工具 1513

B.6.3  Reflector 1514

B.6.4  CR_Documentor 1515

B.6.5  Process Explorer 1516

B.7  小结 1517

附录C   Silverlight 1519

C.1  用Silverlight扩展ASP.NET

  应用程序 1519

C.1.1  第一步:一个基本的

   ASP.NET应用程序 1520

C.1.2  查找基于矢量的内容 1521

C.1.3  把矢量内容转换为

   XAML 1522

C.1.4  查看和编辑XAML

   的工具 1524

C.1.5  与已有的ASP.NET

   站点集成 1530

C.1.6  在JavaScript中接收

   Silverlight事件 1532

C.1.7  在JavaScript事件中

   访问Silverlight元素 1534

C.2  小结 1536

附录D   ASP.NET在线资源 1537

D.1  作者的Blog 1537

D.2  ASP.NET有影响的Blog 1537

D.3  Web站点 1537