Web Forms

编辑

可以使用 Web 窗体页来创建可编程的 Web 页,这些 Web 页用作 Web 应用程序的用户界面。Web 窗体页在任何浏览器或客户端设备中向用户提供信息,并使用服务器端代码来实现应用程序逻辑。Web 窗体页输出几乎可以包含任何支持 HTTP 的语言(包括标准通用标记语言的子集HTML与XML、WML 和ECMAScript (JScript, JavaScript))

PHP中文网词条详解简介

Web Forms 是三种创建 ASP.NET 网站和 Web 应用程序的编程模式中的一种。

其他两种编程模式是 Web PagesMVC(Model View Controller 模型-视图-控制器)。

Web Forms 是最古老的 ASP.NET 编程模式,是整合了 HTML、服务器控件和服务器代码的事件驱动网页。

Web Forms 是在服务器上编译和执行的,再由服务器生成 HTML 显示为网页。

Web Forms 有数以百计的 Web 控件和 Web 组件用来创建带有数据访问的用户驱动网站。

PHP中文网词条详解特点

基于 Microsoft ASP.NET 技术。在该技术中,在服务器上运行的代码动态地生成到浏览器或客户端设备的 Web 页输出。有关 ASP.NET 的详细信息,请参见 ASP.NET 技术背景介绍  。

  • 兼容所有浏览器或移动设备。Web 窗体页自动为样式、布局等功能呈现正确的、符合浏览器的 HTML。此外,您还可以选择将 Web 窗体页设计为在特定浏览器(如 Microsoft Internet Explorer 5)上运行并利用多样式浏览器客户端的功能。

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

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

  • 在 Visual Studio 中通过强大的快速应用程序开发 (RAD) 工具受到支持,该工具用于对窗体进行设计和编程

  • 可使用为 Web 开发提供 RAD 功能的控件进行扩展,从而使您能够快速地创建多样式的用户界面。

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

PHP中文网词条详解组件

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

视觉元素称作 Web 窗体“页”(page)。这种页由一个包含静态 HTML 和/或 ASP.NET 服务器控件的文件组成。

Web 窗体页用作要显示的静态文本和控件的容器。利用 Visual Studio Web 窗体设计器和 ASP.NET 服务器控件,您可以按照在任何 Visual Studio 应用程序中的方式来设计窗体。有关更多信息,请参见可在 Web 窗体页上使用的控件。

Web 窗体页的逻辑由代码组成,这些代码由您创建以与窗体进行交互。编程逻辑位于与用户界面文件不同的文件中。该文件称作“代码隐藏”文件,并具有“.aspx.vb”或“.aspx.cs”扩展名。在代码隐藏文件中编写的逻辑可以使用 Visual Basic 或 Visual C# 来编写。

PHP中文网词条详解文件结构

项目中所有 Web 窗体页的代码隐藏文件都被编译成项目动态链接库 (.dll) 文件。.aspx 页文件也会被编译,但编译方式稍有不同。当用户第一次浏览到 .aspx 页时,ASP.NET 自动生成表示该页的 .NET 文件,并将其编译成另一个 .dll 文件。为 .aspx 页生成的从被编译成项目 .dll 文件的代码隐藏继承。当用户请求 Web 页 URL 时,.dll 文件将在服务器上运行并动态地为您的页生成 HTML 输出。有关更多信息,请参见 Web 窗体页处理。

有关如何构造 Web 窗体页的更多信息,请参见 Web 窗体代码模型。

PHP中文网词条详解Web 窗体页帮助您完成哪些任务

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

  • 实现多样式的 Web 用户界面。对于布局复杂且包含大量动态内容和功能齐全的用户交互对象的用户界面而言,使用基本的 HTML 功能来进行设计和实现将会既困难又费事。其中尤为困难的是为可能在多个不同的浏览器和客户端设备平台上运行的应用程序创建多样式的用户界面。

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

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

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

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

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

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

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

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

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

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

  • .NET Framework 公共语言运行库支持。ASP.NET 页框架是 ASP.NET 的一项技术。ASP.NET 是基于 .NET Framework 生成的,因此整个框架都可用于任何 ASP.NET 应用程序。您可以使用任何与运行库兼容的语言(包括 Microsoft Visual Basic、Visual C#JScript .NET)来创作应用程序。此外,数据访问通过 .NET Framework 提供的数据访问基础结构(包括 ADO.NET)得到了简化。

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

参考资料
    词条标签:
    Web   forms