ASP.NET 和 Web 开发新增功能

更新:2007 年 11 月

.NET Framework 3.5 版 Service Pack 1 针对 ASP.NET 的几个方面提供了增强功能。Visual Studio 2008 和 Microsoft Visual Web Developer 速成版 还提供了一些增强功能和新增功能,用于改进 Web 开发。

最重要的改进在于,改进了对支持 AJAX 的网站的开发支持,改进了对语言集成查询 (LINQ) 的支持。这些改进包括提供了新的服务器控件和类型、新的面向对象的客户端类型库,另外 Visual Studio 2008 和 Microsoft Visual Web Developer 速成版还提供完全的 IntelliSense 支持,可用于 ECMAScript(JavaScript 或 JScript)。

本主题以下各节介绍 ASP.NET 和 Visual Web Developer 中的一些变化。

  • SP1 中的 ASP.NET 增强功能

  • 3.5 版本中的 ASP.NET 增强功能

  • Visual Web Developer 增强功能

SP1 中的 ASP.NET 增强功能

以下各节提供有关 Visual Studio 2008 和 Visual Web Developer 速成版中的增强功能和新增功能的信息。

动态数据

ASP.NET Dynamic Data 框架可使您轻松创建数据驱动的 ASP.NET Web 应用程序。它通过自动发现运行时的数据模型并确定该模型的 UI 行为来实现此目的。支架框架可立即提供功能网站以供查看和编辑数据。然后可以使用元数据、模板或通过创建标准 ASP.NET 页来重写默认行为,从而轻松自定义此基架。同时,现有应用程序可以轻松将支架逻辑的各部分与其现有页面集成。

URL 路由

ASP.NET 中的 URL 路由使您可以使用不必映射到网站中的特定文件的 URL。由于 URL 不必映射到文件,所以可以在 Web 应用程序中使用 URL,这些 URL 是描述性的用户操作,因此更易于被用户理解。在 URL 路由中,您可以定义包含处理 URL 请求时使用的值的占位符的 URL 模式。在运行时,应用程序名称后面的 URL 部分根据您所定义的 URL 模式解析为离散值。

EntityDataSource 控件

EntityDataSource 控件支持基于实体数据模型 (EDM) 的数据绑定方案。EDM 规范将数据表示为实体和关系集。EDM 由 Entity Framework 在对象关系映射和其他方案(如 ADO.NET 数据服务)中使用。习惯使用 ASP.NET 数据绑定控件的设计时模型的用户将会发现,EntityDataSource 控件的编程图面与其他数据源控件的编程图面类似。

EntityDataSource 控件代表页上的数据绑定控件管理对数据源的创建、读取、更新和删除操作。EntityDataSource 可用于可编辑的网格、具有用户控制的排序和筛选功能的窗体、双重绑定的下拉列表控件以及主-详细信息页。EntityDataSource 控件能够获取页控件的查询参数值、追加到页 URI 的查询参数、Cookie 以及其他 ASP.NET 参数对象。

新的 ASP.NET AJAX Extensions

ASP.NET AJAX 在 SP1 中的新扩展使您在使用“后退”按钮时可以在更大程度上控制浏览器历史记录。它们还可以使多个客户端脚本自动合并到一个复合脚本中。这样可以大大减少到达服务器所需的往返行程数,从而加快脚本加载速度。

JScript 格式设置

设置代码格式功能已进行了扩展,可以在 Visual Studio 和 Visual Web Developer 速成版 中支持 JScript。可以选择手动设置文档或选定内容的代码格式,也可以在键入内容时自动设置其格式。

3.5 版本中的 ASP.NET 增强功能

.NET Framework 3.5 版 在以下几个方面提供了 ASP.NET 增强功能:

  • 提供了新的服务器控件、类型和客户端脚本库,通过这些新增功能,可以开发 AJAX 样式的 Web 应用程序

  • 扩展了基于服务器的 Forms 身份验证、角色管理和配置文件服务,作为 Web 服务供基于 Web 的应用程序使用。

  • 提供了一个新的 EntityDataSource 控件,该控件通过 ASP.NET 数据源控件结构公开实体数据模型。

  • 提供了一个新的 ListView 数据控件,该控件可用于显示数据,还可提供具有高度可自定义性的用户界面。

  • 提供了一个新的 LinqDataSource 控件,该控件通过 ASP.NET 数据源控件结构公开语言集成查询 (LINQ)。

  • 提供了一个新的合并工具 (Aspnet_merge.exe),可用于合并预编译程序集,以灵活的方式实现部署和发布管理。此功能在 Visual Web Developer 速成版 中不可用。

.NET Framework 3.5 版 还与 IIS 7.0 集成。这样,ASP.NET 服务(例如 Forms 身份验证和缓存)可用于所有内容类型,而不仅仅用于 ASP.NET 网页(.aspx 文件)。这是因为 ASP.NET 和 IIS 7.0 使用相同的请求管线。统一的请求处理管线意味着,可以使用托管代码来开发用于处理 IIS 中所有请求的 HTTP 管线模块。此外,IIS 和 ASP.NET 模块以及处理程序现在还支持统一配置。有关更多信息,请参见 IIS 7.0 的 ASP.NET 应用程序生命周期概述

AJAX 开发

使用 .NET Framework 3.5 版,可以创建具有下一代用户界面的 Web 应用程序,这种用户界面中,使用的是可重用客户端组件。您可以根据需要使用基于服务器的方法、基于客户端的方法或结合这两种方法来开发网页。基于 AJAX 服务器和基于客户端的编程模型具有以下功能:

  • 支持基于服务器的 AJAX 开发的服务器控件。这些控件包括 ScriptManagerUpdatePanelUpdateProgressTimer 控件。通过这些控件,使用很少客户端脚本,甚至不使用客户端脚本,就可以创建丰富的客户端行为(例如,部分页呈现和在异步回发过程中显示更新进度)。

  • Microsoft AJAX Library,它支持基于客户端、面向对象且独立于浏览器的开发。除了支持启用 AJAX 的新服务器控件之外,客户端库还使您能够开发自定义客户端组件,这些组件可扩展 DOM 元素或表示 DOM 元素。

  • 某些服务器类,通过使用这些类,可以开发映射到自定义客户端组件(通过声明方式设置了其事件和属性)的服务器控件。支持此功能的服务器类型包括派生自 ExtenderControlScriptControl 基类的控件或实现 IExtenderControlIScriptControl 接口的控件。

  • 通过使用客户端脚本,支持脚本全球化和本地化。通过进行全球化,可以根据区域性值(区域设置)来显示日期和数字。通过本地化,可以指定客户端组件中的用户界面元素或异常消息的本地化内容(文本、图像等)。

  • 访问 Web 服务和 ASP.NET 身份验证、角色管理以及配置文件应用程序服务。

通过使用 .NET Framework 3.5 版,可以在页中方便地启用异步部分页更新,这样可以避免整页回发的系统开销。可以只将现有的控件和标记放在 UpdatePanel 控件内。UpdatePanel 控件内部的回发成为异步回发,只刷新该面板内的部分页面,从而使用户体验更为流畅。通过使用 UpdateProgress 控件,可以显示部分页的更新进度。

了解 ASP.NET 中的 AJAX 开发

本文档提供了大量信息,可以帮助您了解如何在 ASP.NET 中开发 AJAX 样式的 Web 应用程序。请按照添加 AJAX 和客户端功能中介绍的主题的顺序,开始了解相关知识。

Web 服务和应用程序服务

使用 .NET Framework 3.5 版,可以创建基于 ASP.NET (.asmx) 和 WCF 的 Web 服务,通过 Microsoft AJAX Library 可以在客户端脚本中从网页调用这些服务。此外,还可以调用公开为 Web 服务的基于服务器的应用程序服务,包括 Forms 身份验证、角色管理和配置文件。这些应用程序服务可在 WCF 兼容应用程序(包括支持 AJAX 的网页和 Window 窗体客户端)中使用。因此,使用这些 ASP.NET 或 WCF 技术生成的应用程序可以共享应用程序服务所提供的信息。有关更多信息,请参见 ASP.NET AJAX 中的 Web 服务使用 ASP.NET Web 服务

ListView 数据控件

ListView 控件结合了现有数据控件的很多方面。ListView 控件对于显示重复结构中的数据很有用,它类似于 DataListRepeater 控件。与这两种控件不同的是,ListView 控件支持编辑、插入和删除操作,还支持排序和分页操作。分页功能是由新的 DataPager 控件为 ListView 提供的。

ListView 控件是一种具有高度可自定义性的控件,通过这种控件,可以使用模板和样式来定义控件的用户界面。与 RepeaterDataListFormView 控件一样,ListView 控件中的模板没有进行预定义,不能在浏览器中呈现特定用户界面。有关更多信息,请参见ListView Web 服务器控件概述

DataPager 控件

DataPager 控件用于对实现 IPageableItemContainer 接口的控件(如 ListView 控件)所显示的数据进行分页。DataPager 控件支持内置的分页用户界面。可以通过使用 NumericPagerField 对象指定分页用户界面,该对象让用户可以按照页码来选择页面。另外,也可以使用 NextPreviousPagerField 对象,该对象让用户可以在不同页面之间导航(一次显示一个页面,或者跳到第一页或最后一页)。或者,可以使用 TemplatePagerField 对象创建自定义的分页用户界面。

LinqDataSource 控件

LinqDataSource 控件通过 ASP.NET 数据源控件结构公开语言集成查询 (LINQ)。如果要创建用于检索或修改数据的网页,并且希望使用 LINQ 所提供的编程模型,则应使用 LinqDataSource 控件。通过使 LinqDataSource 控件能够自动创建与数据进行交互的命令,可以简化网页中的代码。与使用 SqlDataSourceObjectDataSource 控件相比,通过使用 LinqDataSource 控件,只需编写较少的代码即可执行相同的数据操作。使用 LinqDataSource 控件时,只需掌握一种编程模型就可以与不同类型的数据源进行交互,这也是该控件的优势。

可以使用声明性标记来创建一个 LinqDataSource 控件,用于连接到数据库或数据集合(如集合)中的数据。在标记中,可以指定对数据进行显示、筛选、排序和分组的条件。如果数据源是 SQL 数据库表,也可以配置 LinqDataSource 控件对数据进行更新、插入和删除操作。您无需编写 SQL 命令来执行这些任务。LinqDataSource 类提供一个事件模型,可用于自定义显示行为和更新行为。有关更多信息,请参见 LinqDataSource Web 服务器控件概述

ASP.NET 合并工具

ASP.NET 合并工具 (Aspnet_merge.exe) 可用于合并和管理由 ASP.NET 预编译工具 (Aspnet_compiler.exe) 创建的程序集。(该合并工具以前是作为 Visual Studio 2005 的附加工具发布的)该合并工具可为站点创建单个程序集。可以为整个网站、每个网站文件夹或仅为组成网站用户界面(页和控件)的文件创建程序集。

说明:

此功能在 Visual Web Developer 速成版 中不可用。

有关更多信息,请参见 ASP.NET 合并工具 (Aspnet_merge.exe)。有关 ASP.NET 编译器工具的更多信息,请参见 ASP.NET 编译工具 (Aspnet_compiler.exe)

Visual Web Developer 增强功能

以下各节提供有关 Visual Studio 2008 和 Visual Web Developer 速成版中的增强功能和新增功能的信息。

新设计视图和 CSS 设计工具

使用网页设计器,可以在“设计”视图、“源”视图或“拆分”视图(同时显示“设计”视图和“源”视图)中工作。

Visual Studio 现在提供了一些工具,可以方便地使用级联样式表 (CSS)。在“设计”视图中,通过使用新的用户界面工具(例如“CSS 属性”窗口),可以设计布局和样式内容。此外,在“设计”视图中,通过使用 WYSIWYG 可视布局工具,还可以直接更改定位、填充和边距。

有关更多信息,请参见下列主题:

针对 Jscript 和 ASP.NET AJAX 的 IntelliSense

Visual Studio 2008 和 Visual Web Developer 速成版现在提供的 IntelliSense 经过了显著改进,用于在 ECMAScript(JScript 或 JavaScript)中编写代码,也用于为使用 Microsoft AJAX Library 的 AJAX 样式 Web 应用程序编写客户端脚本。在 script 元素中的客户端脚本和引用的 .js 脚本文件中,都可以使用 IntelliSense。 

此外,IntelliSense 还显示 XML 代码注释。XML 代码注释用于描述客户端脚本的摘要、参数和返回值的详细信息。ASP.NET AJAX 还使用 XML 代码注释为 ASP.NET AJAX 类型和成员提供 IntelliSense 功能。使用 XML 代码注释的外部脚本文件引用也支持 IntelliSense。

有关更多信息,请参见下列主题:

Web 应用程序项目

Web 应用程序项目以前是作为 Visual Studio 2005 的加载项发布的,现在已集成到 Visual Studio 和 Visual Web Developer 速成版 中。使用 Web 应用程序项目模型,可以将网站编译为 Bin 文件夹中的单个程序集,还可以显式定义项目资源。

现在的 Web 应用程序项目模型与 Visual Studio .NET 2003 中的 Web 项目使用相同的项目、生成和编译语义。这样,可以方便地将 Visual Studio .NET 2003 网站迁移到 Visual Studio 或 Visual Web Developer 速成版 的当前版本。

Web 应用程序项目不会取代 Visual Studio 2005 中引入的网站项目类型。相反,它们提供了另一种项目模式,为部署和维护 Web 应用程序的方式提供了更多选择。

有关更多信息,请参见下列主题:

多目标 Web 应用程序

现在,使用 Visual Studio 可以针对特定版本的 .NET Framework 开发 Web 应用程序。使用 Visual Studio 的实例可以针对 .NET Framework 2.0、3.0 (Windows Vista) 和 3.5 版开发 Web 应用程序。在 Visual Web Developer 速成版 中,您只能创建面向 .NET Framework 3.5 版的应用程序。但可以在以后通过更改相关的项目属性来更改 .NET Framework 以面向 2.0、3.0 和 3.5 版。

有关更多信息,请参见下列主题:

设计器和 IntelliSense 对 LINQ 的支持

Visual Studio 2008 中的一组新功能支持语言集成查询 (LINQ),并将强大的查询功能扩展到 C# 和 Visual Basic 的语言语法中。LINQ 引入了易于学习的标准数据查询和转换模式,并且可以进行扩展以支持任何类型的数据源。设计器提供数据类的可视化表示形式,可用于快速地创建和编辑映射到数据库中的对象的类。IntelliSense 支持功能可以提供 LINQ 语言语法的信息,也可以提供在“源”视图中使用 LinqDataSource 控件的信息。有关更多信息,请参见 LinqDataSource Web 服务器控件概述

支持在 Web 项目中创建和使用 WCF 服务

在 Visual Studio 中,可以向项目添加 ASP.NET Web 服务(.asmx 文件)和 WCF Web 服务(.svc 文件)。用托管代码编写的客户端应用程序通常可以通过代理类访问这些 Web 服务。例如,在使用“添加 Web 引用”对话框时,这些应用程序会使用 Visual Studio 生成的代理类。通过使用在客户端脚本中自动生成的代理类,AJAX 应用程序可以从浏览器访问 Web 服务。有关更多信息,请参见 ASP.NET 应用程序服务概述

支持 ASP.NET AJAX 扩展程序控件

ASP.NET AJAX 扩展程序控件增强了 ASP.NET Web 应用程序中的标准 Web 服务器控件的客户端功能。通过将一个或多个扩展程序绑定到 Web 服务器控件(如 TextBox 控件、Button 控件和 Panel 控件),可以提供更丰富的基于 Web 的用户体验。

Visual Studio 支持所有 ASP.NET AJAX 扩展程序控件。这些控件包括您自己创建的控件,以及从各种来源(如 ASP.NET AJAX 控件工具包)添加的控件,该工具包可从 ASP.NET Web site(ASP.NET 网站)获得。

说明:

ASP.NET AJAX 控件工具包是一个由社区支持的库,Microsoft 并不支持。

有关更多信息,请参见下列主题:

请参见

概念

ASP.NET 演练精选

Visual Studio 2008 中的新增功能

Web 应用程序项目概述

添加 AJAX 和客户端功能

向 ASP.NET 控件添加 AJAX 功能

比较 Visual Studio 和 Visual Web Developer 速成版

其他资源

AJAX 服务器控件