ASP.NET 网页概述

更新:2007 年 11 月

可以使用 ASP.NET 网页作为 Web 应用程序的可编程用户接口。ASP.NET 网页在任何浏览器或客户端设备中向用户提供信息,并使用服务器端代码来实现应用程序逻辑。ASP.NET 网页有下列特点:

  • 基于 Microsoft ASP.NET 技术。在该技术中,在服务器上运行的代码动态地生成到浏览器或客户端设备的网页输出。

  • 兼容所有浏览器或移动设备。ASP.NET 网页自动为样式、布局等功能呈现正确的、符合浏览器的 HTML。此外,您还可以将 ASP.NET 网页设计为在特定浏览器(如 Microsoft Internet Explorer 6)上运行并利用浏览器特定的功能。

  • 兼容 .NET 公共语言运行时所支持的任何语言,其中包括 Microsoft Visual Basic、Microsoft Visual C#、Microsoft J# 和 Microsoft JScript .NET。

  • 基于 Microsoft .NET Framework 生成。它提供了 Framework 的所有优点,包括托管环境、类型安全性和继承。

  • 具有灵活性,因为您可以向它们添加用户创建的控件和第三方控件。

ASP.NET 网页的组件

在 ASP.NET 网页中,用户界面编程分为两个部分:可视组件和逻辑。如果您以前使用过类似于 Visual Basic 和 Visual C++ 的工具,您将认同在页的可视部分和页后与之交互的代码之间存在这样一种划分。

可视元素由一个包含静态标记(例如 HTML 或 ASP.NET 服务器控件或两者)的文件组成。ASP.NET 网页用作要显示的静态文本和控件的容器。

ASP.NET 网页的逻辑由代码组成,这些代码由您创建以与页进行交互。代码可以驻留在页的 script 块中或者单独的类中。如果代码在单独的类文件中,则该文件称为“代码隐藏”文件。代码隐藏文件中的代码可以使用 Visual Basic、 Visual C#、Visual J# 或 JScript .NET 编写。有关如何构建 ASP.NET 网页的更多信息,请参见 ASP.NET 网页代码模型

ASP.NET 网页编译为动态链接库 (.dll) 文件。用户第一次浏览到 .aspx 页时,ASP.NET 自动生成表示该页的 .NET 类文件,然后编译此文件。.dll 文件在服务器上运行,并动态生成页的 HTML 输出。有关如何编译 ASP.NET 应用程序的更多信息,请参见 ASP.NET 编译概述

ASP.NET 网页帮助您完成哪些任务

Web 应用程序编程带来了一些特殊的难题,在对传统的基于客户端的应用程序进行编程时,通常不会遇到这些难题。这些难题包括:

  • 实现多样式的 Web 用户界面   使用基本的 HTML 功能来设计和实现用户接口既困难又费事,特别是在页具有复杂布局且包含大量动态内容和功能齐全的用户交互对象时。

  • 客户端与服务器的分离   在 Web 应用程序中,客户端(浏览器)和服务器是不同的程序,它们通常在不同的计算机(甚至不同的操作系统)上运行。因此,共同组成应用程序的这两个部分仅共享很少的信息;它们可以进行通信,但通常只交换很小块的简单信息。

  • 无状态执行   当 Web 服务器接收到对某页的请求时,会找到该页,对其进行处理,将其发送到浏览器,然后丢弃所有页信息。如果用户再次请求同一页,服务器则会重复整个过程:从头开始对该页进行重新处理。换言之,服务器不会记忆它已处理的页 - 页是无状态的。因此,如果应用程序需要维护有关某页的信息,其无状态的性质就成为了一个问题。

  • 未知的客户端功能    在许多情况下,Web 应用程序可供许多使用不同浏览器的用户进行访问。浏览器具有不同的功能,因此很难创建将在所有浏览器上都同样正常运行的应用程序。

  • 数据访问方面的复杂性   对位于传统 Web 应用程序中的数据源进行读取和写入非常复杂,并且会消耗大量资源。

  • 可缩放性方面的复杂性   在许多情况下,由于应用程序的不同组件之间缺乏兼容性,导致用现有方法设计的 Web 应用程序未能实现可伸缩性的目标。对于发展周期较短的应用程序,这往往是一个常见的导致失败的方面。

若要解决这些 Web 应用程序的难题,可能需要大量的时间和精力。ASP.NET 网页和 ASP.NET 页框架通过以下几个方面来处理这些难题:

  • 直观、一致的对象模型   ASP.NET 页框架提供了一种对象模型,它使您能够将窗体当作一个整体,而不是分离的客户端和服务器模块。在此模型中,您可以通过比在传统 Web 应用程序中更为直观的方式来对页进行编程,其中包括能够设置页元素的属性和响应事件。此外,ASP.NET 服务器控件是基于 HTML 页的物理内容以及浏览器与服务器之间的直接交互的一种抽象模型。通常,您可以按照在客户端应用程序中使用控件的方式使用服务器控件,而不必考虑如何创建 HTML 来显示和处理控件及其内容。

  • 事件驱动的编程模型   ASP.NET 网页为 Web 应用程序带来了一种您熟悉的模型,该模型用于为客户端或服务器上发生的事件编写事件处理程序。ASP.NET 页框架对此模型进行了抽象,使捕获客户端上的事件、将其传输到服务器并调用适当方法等操作的基础机制都是自动的,并对于您都是不可见的。这样就得到了一个清晰的、易于编写的、支持事件驱动开发的代码结构。

  • 直观的状态管理   ASP.NET 页框架会自动处理页及其控件的状态维护任务,它使您能够以显式方式维护应用程序特定信息的状态。这种状态管理无需使用大量服务器资源即可实现,而且可以通过向浏览器发送 Cookie 来实现,也可以不通过向浏览器发送 Cookie 来实现。

  • 独立于浏览器的应用程序   ASP.NET 页框架允许您在服务器上创建所有应用程序逻辑,而无需针对浏览器之间的差异进行显式编码。但是,它仍允许您利用浏览器特定的功能,方法是通过编写客户端代码来提供增强的性能和更丰富的客户端体验。

  • .NET Framework 公共语言运行时支持   ASP.NET 页框架是在 .NET Framework 的基础上生成的,因此整个框架可用于任何 ASP.NET 应用程序。您的应用程序可以用与运行时兼容的任何语言编写。此外,数据访问通过 .NET Framework 提供的数据访问基础结构(包括 ADO.NET)得到了简化。

  • .NET Framework 可缩放服务器性能   ASP.NET 页框架使您能够将 Web 应用程序从一台只装有一个处理器的计算机有效地缩放到多计算机“网络场”,并且无需对应用程序的逻辑进行复杂的更改。

请参见

其他资源

创建 ASP.NET 网页

创建 ASP.NET 网站