ASP.NET3.5AJAX高级编程

ASP.NET3.5AJAX高级编程"

作者:
ISBN:9787302213581
定价:¥68
字数:千字
页数:
出版时间:2010.01.01
开本:
版次:1-2
装帧:
出版社:清华大学出版社
简介

◆ AJAX的最新版本是.NET Framework 3.5的一部分,不需要独立安装

◆ 能在所有主流浏览器上跨平台兼容

◆ Visual Studio使用支持AJAX的页面的方法

◆ 测试、调试和部署ASP.NET AJAX应用程序的技术

◆ 创建定制控件和使用动画的技巧

◆ 如何访问数据库和Web服务

前言

前    言

  ASP.NET是一个革命性的Web应用程序开发平台。这个平台可以处理构建Web应用程序时的很多复杂问题。并且现在ASP.NET AJAX将此平台更推进了一步,模糊了富客户端应用程序和传统的、较少交互的、基于浏览器的应用程序之间的界限。

  Microsoft AJAX Library为现代浏览器和JavaScript开发带来了面向对象的编程方式,并且ASP.NET AJAX Extensions非常便于编写多功能的Web应用程序,这种应用程序可以和Web服务器异步通信。再次重申,ASP.NET降低了Web开发的复杂性。

  ASP.NET AJAX中的新服务器控件很容易自动更新网页中的指定区域,这种更新不会暂停用户的操作,所以用户在数据刷新时不必等待。使用ASP.NET AJAX可以只刷新某个网页的局部区域,而不用编写额外的代码。还有一些其他的新控件可以用来提示用户,在后台正在进行某种工作,还可以指定这种更新的固定时间间隔。另外,ASP.NET AJAX Control Toolkit使得实现具有动画、模式对话框、过渡效果等更多功能的用户界面变得异常简单。

  Ajax肯定是目前Web应用程序领域的流行语。Ajax是Asynchronous JavaScript and XML的首字母缩写词,在Web应用程序开发领域,用它可以创建能使用XMLHttpRequest对象的应用程序。

  利用JavaScript可以创建和包含XMLHttpRequest对象,大多数主流浏览器都支持使用这个对象,所以有了Ajax模型。Ajax应用程序尽管已经出现了好几年,但在Google发布了一些著名的、支持Ajax的应用程序(例如Google Maps和Google Suggest)之后,Ajax才开始流行开来。这些应用程序体现了Ajax的价值。

  不久之前,Microsoft发布了一个新工具集的测试版,允许开发人员把Ajax特性合并到他们的Web应用程序中。这个工具集的代码名称是Atlas,后来重命名为ASP.NET AJAX,该工具集使得目前在应用程序中使用Ajax特性异常简便。

  在Visual Studio 2008推出之前,ASP.NET AJAX产品曾经是一个独立的应用程序,开发人员需要把该产品安装在他们使用的机器和Web服务器上。而这个版本快速流行开,目前已成为Visual Studio 2008产品的一部分。ASP.NET AJAX产品不仅是Visual Studio 2008 IDE的一部分,还内置到.NET Framework 3.5中。因此,要使用ASP.NET AJAX,如果开发人员使用ASP.NET 3.5,就不需要安装任何软件。

  总体上,Microsoft完全集成了整个ASP.NET AJAX产品,因为开发人员很容易使用Visual Studio及其可视化设计器来处理支持Ajax的页面,甚至对应用程序进行全面的调试。开发人员使用Visual Studio 2008,可以直接调试页面上使用的JavaScript。

  另外,Microsoft花了很大精力来处理ASP.NET AJAX的跨平台的兼容性。开发人员会发现,使用.NET Framework 3.5建立的支持Ajax的应用程序可以在所有主流浏览器上工作,例如FireFox和Opera。

本书读者对象

  本书适用于有经验的、想在应用程序中添加AJAX功能的ASP.NET开发人员,本书同样适用于想要结合使用ASP.NET和AJAX的经验丰富的Web开发人员。

  本书假定读者已经理解了ASP.NET的工作原理。要想了解ASP.NET的更深层次的知识,建议阅读Bill Evjen等人撰写的《ASP.NET 3.5高级编程(第5版)》。本书的重点是介绍如何扩展ASP.NET应用程序来异步更新某个网页的局部,并向网页中添加更多UI元素。ASP.NET AJAX可以很容易地用来增强已有的应用程序,或设计一个新的应用程序来为用户提供更好的体验。不同浏览器之间的区别是很抽象的,我们可以编写一套共用的API来处理用户的行为,不论他们使用的是Internet Explorer、Firefox还是Safari。

  如果已经了解了如何构建ASP.NET网页,就可以使用Microsoft AJAX库来操作浏览器的文档对象模型(Document Object Model),并且和服务器通信来更新用户的数据视图,而不用强制用户等待整个网页的刷新。

本书主要内容

  本书基于ASP.NET?AJAX来介绍ASP.NET 3.5 AJAX,但不讨论ASP.NET 3.5。通过本书的样例可以了解ASP.NET AJAX库的核心内容,以及我们要开始使用的核心控件。在介绍调试、部署和定制控件开发之前,我们先要学习如何使用JavaScript核心库和ASP.NET AJAX Toolkit。

  ASP.NET 3.5版本包括Microsoft AJAX库以及可以在ASP.NET网页上使用的服务器控件,这些内容可以扩展应用程序,实现更丰富的、更多交互的功能。所有这些都是通过Microsoft AJAX库实现的,这是一个运行在浏览器端的JavaScript库。服务器控件和JavaScript库合作,可以使用从服务器异步获得的数据更新HTML内容。还可以把ASP.NET应用程序服务公布给Microsoft AJAX库中的JavaScript类,以便从浏览器中实现身份验证和个人信息的访问。

  第1章介绍ASP.NET AJAX,其中会介绍对AJAX库的需求,并比较ASP.NET AJAX和其他AJAX库。还会介绍ASP.NET AJAX由客户端和服务器端两部分如何组成,如何在任何服务器平台上使用客户端的库函数。在第2章中,会把重点放在ASP.NET最受欢迎和最容易使用的UpdatePanel控件上。这个控件可以自动异步更新一个网页的某个局部,而用户不必等待整个网页刷新完毕。第3章和第4章会介绍一些使用JavaScript的关键内容,并介绍Microsoft AJAX Library如何使JavaScript开发变得更容易。本书随后会讲解几个重要的功能,包括第5章介绍的脚本资源控制和如何使用ScriptManager控件。第6章中处理后退按钮的ASP.NET 3.5新功能。第7章的ASP.NET AJAX Library,以及如何使用这个工具集创建多功能用户界面。第8章介绍如何通过ASP.NET AJAX使用应用程序服务(例如成员和角色管理系统)。第9章介绍联网对象,第10章介绍ASP.NET AJAX中的动画,第11章介绍如何开发定制的AJAX控件。第12~14章介绍如何在其他ASP.NET核心功能中合并Ajax,例如Web Part、本地化和状态管理。第15章的主要内容是如何测试和调试AJAX应用程序,第16章会探索如何部署ASP.NET AJAX应用程序。

使用本书的条件

  ASP.NET AJAX 3.5是以ASP.NET为基础的,因此需要安装.NET Framework 3.5,为此需要下载两种软件,一个是可再发行组件包,它支持应用程序的运行,需要安装在开发机器、测试机器和服务器中。另一个是SDK(Software Development Kit),这是用来开发应用程序的一套工具。在下面的网址中可以下载这两种软件:http://msdn2.microsoft.com/en-us/netframework/aa731542.aspx。

  本书中的示例使用Visual Web Developer,在下面网址中可以下载免费的Express版本:www.microsoft.com/express。

源代码

  在读者学习本书中的示例时,可以手工输入所有的代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点http://www.wrox.com/或www.tupwk.com.cn/downpage上下载。登录到站点http://www.wrox.com/,使用Search工具或使用书名列表就可以找到本书。接着单击本书细目页面上的Download Code链接,就可以获得所有的源代码。

  注释:

  由于许多图书的标题都很类似,所以按ISBN搜索是最简单的,本书英文版的ISBN是978-0-470-39217-1。

  在下载了代码后,只需用自己喜欢的解压缩软件对它进行解压缩即可。另外,也可以进入http://www.wrox.com/dynamic/books/download.aspx上的Wrox代码下载主页,查看本书和其他Wrox图书的所有代码。

勘误表

  尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果您在本书中发现了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。

  请给wkservice@vip.163.com发电子邮件,我们就会检查您的反馈信息,如果是正确的,我们将在本书的后续版本中采用。

  要在网站上找到本书英文版的勘误表,可以登录http://www.wrox.com,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml。

P2P.WROX.COM

  要与作者和同行讨论,请加入p2p.wrox.com上的P2P论坛。这个论坛是一个基于Web的系统,便于您张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给您传送感兴趣的论题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。

  在http://p2p.wrox.com上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤:

  (1) 进入p2p.wrox.com,单击Register链接。

  (2) 阅读使用协议,并单击Agree按钮。

  (3) 填写加入该论坛所需要的信息和自己希望提供的其他信息,单击Submit按扭。

  (4) 您会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。

  注释:

  不加入P2P也可以阅读论坛上的消息,但要张贴自己的消息,就必须加入该论坛。

  加入论坛后,就可以张贴新消息,响应其他用户张贴的消息,也可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。

  关于使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作情况以及P2P和Wrox图书的许多常见问题。要阅读FAQ,可以在任意P2P页面上单击FAQ链接。

  

  

  

  

  

  

  

  

  

  

  

目录

目    录

第1章  AJAX概述 1

1.1  对AJAX应用程序的需求 1

1.2  实现多功能Web应用程序 2

1.3  谁会从AJAX中受益 3

1.3.1  最终用户利益所在 3

1.3.2  开发人员利益所在 4

1.4  AJAX的技术 7

1.4.1  JavaScript Library和AJAX 7

1.4.2  Initiator组件 8

1.4.3  JavaScript组件 8

1.4.4  Web服务组件 11

1.4.5  动态HTML组件 11

1.5  其他AJAX库 12

1.6  用AJAX创建一个简单的

  Web页面 13

1.7  AJAX的功能 16

1.8  本章小结 17

第2章  ASP.NET 3.5和AJAX 19

2.1  ASP.NET 3.5带来的许多特性 19

2.1.1  客户端技术 20

2.1.2  服务器端技术 21

2.1.3  用ASP.NET AJAX进行开发 22

2.2  ASP.NET AJAX应用程序 22

2.2.1  建立未使用AJAX的ASP

   .NET简单页面 25

2.2.2  建立使用AJAX的ASP

       .NET页面 27

2.3  ASP.NET AJAX的服务器端

  控件 33

2.3.1  ScriptManager控件 33

2.3.2  ScriptManagerProxy控件 36

2.3.3  UpdatePanel控件 37

2.3.4  Timer控件 48

2.3.5  UpdateProgress控件 50

2.4  使用多个UpdatePanel控件 54

2.5  客户端页面请求的生命周期 57

2.6  取消请求 60

2.7  检测错误 61

2.8  使用更新 62

2.9  本章小结 65

第3章  ASP.NET开发人员的

    JavaScript 67

3.1  客户端的JavaScript 67

3.1.1  把JavaScript部署到浏览器 68

3.1.2  使用.NET包含客户端脚本 69

3.1.3  感知性能 72

3.1.4  脚本资源 74

3.2  JavaScript变量类型 75

3.3  语言不规则性 79

3.3.1  什么是相等性 80

3.3.2  Null、Undefined或其他类型 82

3.4  变量作用域 83

3.5  使用原型 87

3.6  关闭闭包 91

3.6.1  垃圾收集 94

3.6.2  DOM元素 94

3.6.3  避免内存泄漏 95

3.7  使用eval求值 96

3.8  处理异常 97

3.9  获取字符串的一部分 99

3.10  更好的JavaScript 100

 3.10.1  减少脚本 100

 3.10.2  使用缓存变量 100

3.11  本章小结 101

第4章  ASP.NET AJAX 

    Client Library 103

4.1  浏览器页面生命周期 103

4.2  使用类型系统 105

4.2.1  声明命名空间 105

4.2.2  创建类 108

4.2.3  使用接口 114

4.2.4  定义枚举和标记 118

4.3  基类库 122

4.3.1  String类 122

4.3.2  日期和数字 123

4.3.3  数组 125

4.3.4  布尔值 129

4.4  Intellisense支持 129

4.5  侦错和调试 135

4.5.1  调试跟踪控制台 136

4.5.2  生成错误 137

4.5.3  验证参数 139

4.6  浏览器对象 140

4.7  Sys 命名空间 142

4.8  本章小结 143

第5章  使用ScriptManager 145

5.1  无处不在的ScriptManager 145

5.1.1  添加脚本引用 147

5.1.2  通知回调 148

5.1.3  设置ScriptMode 149

5.1.4  嵌入脚本资源 149

5.1.5  脚本本地化 153

5.1.6  脚本全球化 156

5.1.7  服务引用 158

5.2  ASP.NET应用程序服务 161

5.2.1  窗体身份验证 161

5.2.2  角色服务 164

5.2.3  配置服务 166

5.3  错误处理 170

5.3.1  定制错误处理 170

5.3.2  处理异步回送错误 171

5.3.3  异步超时 172

5.4  定制脚本位置 172

5.4.1  设置脚本路径 172

5.4.2  解析脚本引用 173

5.4.3  ScriptManager代理 173

5.4.4  脚本压缩 173

5.4.5  移动脚本引用 173

5.5  脚本合并 174

5.5.1  确定要合并的脚本 175

5.5.2  手工合并脚本 176

5.5.3  脚本引用配置器 176

5.5.4  兼容性 177

5.6  本章小结 177

第6章  控制“后退”按钮 179

6.1  文档片段指示器 179

6.2  示例应用程序 179

6.3  启用部分更新功能 183

6.4  添加历史支持功能 185

6.5  状态编码 189

6.6  在客户端管理历史 190

6.7  客户端更新 190

6.8  添加历史支持功能 192

6.9  深度链接 195

6.10  本章小结 196

第7章  ASP.NET AJAX Toolkit 197

7.1  下载和安装 198

7.1.1  新的Visual Studio模板 199

7.1.2  给VS2008工具箱添加

   新控件 200

7.2  ASP.NET AJAX控件 201

7.2.1  ASP.NET AJAX Control 

   Toolkit中的扩展器 203

7.2.2  AlwaysVisible

   ControlExtender 203

7.2.3  AnimationExtender 205

7.2.4  AutoCompleteExtender 207

7.2.5  CalendarExtender 210

7.2.6  CollapsiblePanelExtender 211

 

7.2.7  ConfirmButtonExtender和

   ModalPopupExtender 213

7.2.8  DragPanelExtender 216

7.2.9  DropDownExtender 217

7.2.10  DropShadowExtender 219

7.2.11  DynamicPopulateExtender 221

7.2.12  FilteredTextBoxExtender 224

7.2.13  HoverMenuExtender 226

7.2.14  ListSearchExtender 227

7.2.15  MaskedEditExtender和

       MaskedEditValidator 228

7.2.16  MutuallyExclusive

       CheckBoxExtender 231

7.2.17  NumericUpDownExtender 232

7.2.18  PagingBulletedListExtender 233

7.2.19  PopupControlExtender 234

7.2.20  ResizableControlExtender 236

7.2.21  RoundedCornersExtender 238

7.2.22  SliderExtender 239

7.2.23  SlideShowExtender 241

7.2.24  TextBoxWatermarkExtender 243

7.2.25  ToggleButtonExtender 245

7.2.26  UpdatePanel

       AnimationExtender 246

7.2.27  ValidatorCalloutExtender 248

7.3  ASP.NET AJAX Control Toolkit

  服务器控件 249

7.3.1  Accordion控件 249

7.3.2  CascadingDropDown 252

7.3.3  NoBot控件 254

7.3.4  PasswordStrength控件 255

7.3.5  Rating控件 256

7.3.6  TabContainer控件 257

7.4  本章小结 259

第8章  ASP.NET AJAX应用程序

    服务 261

8.1  用户身份验证 261

8.1.1  验证Windows用户 262

8.1.2  使用窗体验证模式 263

8.1.3  配置窗体验证模式 264

8.1.4  定制身份验证 267

8.1.5  使用JavaScript进行

   身份验证 268

8.1.6  访问用户状态 270

8.1.7  注销 271

8.1.8  用户Profile数据 272

8.1.9  定义Profile数据 273

8.1.10  访问Profile属性 275

8.1.11  在浏览器中访问Profile

       数据 277

8.1.12  重载Profile属性 278

8.1.13  加载Profile属性 280

8.1.14  存储Profile数据 282

8.2  管理用户角色 285

8.2.1  配置角色管理 285

8.2.2  客户端的角色检查 287

8.3  本章小结 288

第9章  ASP.NET AJAX联网功能 291

9.1  XMLHttpRequest对象 291

 9.1.1  XMLHttpRequest安全性 292

 9.1.2  对象属性和方法 292

9.2  WebRequest调用 294

 9.2.1  设置HTTP动词 295

 9.2.2  设置超时限制 297

 9.2.3  添加定制头 298

 9.2.4  传递额外的数据 300

9.3  管理Web请求 302

 9.3.1  默认超时设置 302

 9.3.2  全局Web请求处理 305

 9.3.3  WebRequestExecutor 306

9.4  传递数据 308

 9.4.1  串行化 308

 9.4.2  JSON格式 309

 9.4.3  JSON串行化 312

 9.4.4  PageMethods 317

 9.4.5  使用日期 318

 9.4.6  避免串行化 318

 9.4.7  配置JSON串行化功能 319

 9.4.8  定制串行化 320

9.5  本章小结 320

第10章  使用动画 323

10.1  使用动画控件 323

 10.1.1  给单个控件制作动画 324

 10.1.2  动画事件 326

 10.1.3  动画动作 327

 10.1.4  动画方法 327

10.2  动画动作的示例 328

 10.2.1  在序列中使用<FadeOut>

         动作 328

 10.2.2  使用<FadeIn>和

    <FadeOut> 330

 10.2.3  移动和处理面板 332

10.3  本章小结 334

第11章  构建定制控件 335

11.1  构建客户端ASP.NET AJAX

     控件 335

 11.1.1  扩展JavaScript 336

 11.1.2  注册控件命名空间 338

 11.1.3  创建控件构造函数 338

 11.1.4  使用原型设计模式和

         JSON 340

 11.1.5  定义控件属性 342

 11.1.6  初始化控件和处理事件 345

 11.1.7  定义控件方法 348

 11.1.8  释放控件资源 358

 11.1.9  注册定制控件类 359

 11.1.10  创建客户端控件实例 360

11.2  构建服务器端ASP.NET AJAX

     控件 363

 11.2.1  在服务器端控件中

         嵌入脚本 363

 11.2.2  创建控件类 364

 11.2.3  在ASP.NET页面中使用

    定制ASP.NET AJAX

    控件 369

 11.2.4  用ASP.NET AJAX Control

         Toolkit创建控件扩展器 370

11.3  本章小结 376

第12章  Web Part 377

12.1  Web Part简介 377

12.2  建立没有AJAX的Web Parts

     页面 379

 12.2.1  WebPartManager服务器

    控件 380

 12.2.2  WebPartZone 服务器控件 381

 12.2.3  理解WebPartZone控件 382

 12.2.4  允许用户改变页面模式 383

12.3  理解回送与Web Part 384

12.4  在Web Part页面上

     添加AJAX 386

12.5  用AJAX建立定制的

     Web Part 389

12.6  本章小结 395

第13章  本地化 397

13.1  什么是本地化 397

13.2  文化和区域 398

 13.2.1  理解文化类型 398

 13.2.2  理解ASP.NET文化 399

13.3  服务器端和客户端的本地化 402

 13.3.1  服务器端的文化声明 402

 13.3.2  终端用户如何在客户

    机上选择文化 403

13.4  客户端的文化细节 404

13.5  ASP.NET 3.5资源文件 408

 13.5.1  使用本地资源 408

 13.5.2  添加另一个语言

    资源文件 411

 13.5.3  完成Default.aspx

    页面的建立 412

 13.5.4  使用全局资源 415

13.6  资源编辑器 417

13.7  本地化带静态文件的脚本 417

13.8  嵌入JavaScript文件 420

13.9  本章小结 424

第14章  状态管理 425

14.1  理解.NET中的状态 425

14.2  理解会话 426

 14.2.1  在进程中运行会话 427

 14.2.2  在进程外运行会话 428

 14.2.3  在SQL Server上

         维护会话 430

 14.2.4  确定会话的状态 431

 14.2.5  无Cookie的会话状态 431

14.3  使用Application对象 432

14.4  使用Cookie 435

 14.4.1  使用Cookie的优点 435

 14.4.2  使用Cookie的缺点 435

14.5  使用ViewState 437

 14.5.1  开关ViewState功能 437

 14.5.2  扩展ViewState 438

14.6  状态管理和ASP.NET AJAX 438

14.7  本章小结 441

第15章  测试和调试ASP.NET AJAX

     应用程序 443

15.1  调试和发布脚本 443

15.2  使用Error类 446

15.3  使用Sys.Debug类 449

 15.3.1  执行跟踪操作 450

 15.3.2  执行断言操作 453

15.4  启用Internet Explorer的

     调试功能 454

15.5  使用Firefox和Firebug调试 459

15.6  浏览ASP.NET AJAX请求

     和响应消息 461

 15.6.1  使用Fiddler检测消息 462

 15.6.2  使用Web Development

         Helper检测消息 464

15.7  本章小结 465

第16章  部署ASP.NET AJAX

         应用程序 467

16.1  安装Bits 467

 16.1.1  ASP.NET AJAX 468

 

 16.1.2  ASP.NET AJAX Control 

    Toolkit 468

 16.1.3  ASP.NET Futures CTP 469

16.2  Web场部署的准备 470

 16.2.1  设置MachineKey 470

 16.2.2  操作会话状态 470

16.3  使用不同平台 471

16.4  避免常见的配置问题 472

 16.4.1  禁用调试 472

 16.4.2  启用定制错误 473

 16.4.3  禁用跟踪 474

 16.4.4  设置部署模式 476

16.5  创建Web部署项目 476

16.6  部署之后 479

 16.6.1  性能监控 479

 16.6.2  控制AJAX特征 480

 16.6.3  配置IIS7 482

16.7  使用脚本压缩 483

 16.7.1  压缩动态脚本 483

 16.7.2  压缩静态脚本 483

 16.7.3  考虑使用共享脚本 484

 16.7.4  不要改变版本路径 485

16.8  本章小结 485

附录  ASP.NET AJAX资源 487

  

  

  

  

  

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个