【IT168技术分析评论】
【摘要】ASP.NET推出的Web窗体模型在极大地提高Web应用开发速度的同时,也诞生了大量不懂得JavaScript,HTML,CSS等技术的程序员;而另一方面,大量的企业项目所应用到的Web开发技术绝不会仅是通过拖动窗体控件就能应对的,原因之一就是Web窗体在交互方面尚存在诸多限制。本文中,让我们就基于webform进行Web开发的利与弊展开进一步的探讨。
一、Webform的诞生及运行机制,web开发带来的革命性变化
在九十年代中期,Internet开始崭露头角。为了进军Web应用程序行业,微软开发了Active Server Pages(ASP)。ASP是开发Web页面的一种快速、简便的方式。ASP页面由一个页面组成,其中包含了标记和语言的混合。ASP的强大之处在于,在页面发送给终端用户的Web浏览器之前,可以在页面上包含在Web服务器上执行的VBScript或JScript代码指令。这是创建动态Web页面的一种简单方式,动态Web页面可以根据开发人员规定的参数进行定制。
随着时间的推移,ASP页面上需要放置越来越多的HTML、VBScript、JScript、层叠样式表、T-SQL等内容。在这种情况下,页面很难管理。于是,ASP进一步深化推出了新版本的ASP 2.0和ASP 3.0。在2000年夏,微软发布了其测试版本的ASP+,其主要目的是以面向对象的方式创建Web应用程序。后来重新命名为ASP.NET(与.NET框架1.0的最终版本一起发布)。
在引入.NET之前,传统ASP提供的模型和Visual Basic中开发的模型大相径庭,很少有VB开发人员能开发Web应用程序,Web应用程序开发人员也不能开发VB的胖客户应用程序。ASP.NET为此鸿沟之间搭起了一架桥梁。从此,ASP.NET把Visual Basic样式的事件模型带入Web应用程序开发领域,为无状态的HTTP提供了迫切需要的状态管理技术。其模型非常类似于早期的Visual Basic模型,因为开发人员可以把控件拖放到设计界面或窗体上,处理控件的属性,甚至处理控件的代码,操作在控件的生存周期内发生的一些事件。ASP.NET真正综合了这两个模型的优点。
ASP.NET是一个Web开发平台,它提供了构建企业级应用所需要的服务、编程模型和软件基础结构。ASP.NET应用是一些已编译的代码部件,由一些可重用且可扩展的组件组成,可以用第一类语言(包括C#、Visual Basic.NET、JScript.NET和J#)创建,并且可以访问.NET框架中整个类的层次结构。虽然ASP.NET的语法基本上与其前辈ASP兼容,但是ASP.NET是一个全新的编程框架,旨在用于快速开发Web应用程序。作为微软.NET平台的一个基础组成部分,ASP.NET提供了一种基于组件的、可扩展的且易于使用的方法,用以构建、部署和运行供所有在浏览器或移动设备中使用的Web应用。
同ASP和其它Web开发环境一样,ASP.NET也是建立在HTTP协议之上的,它利用HTTP命令和策略建立双向的、浏览器到服务器的通信和协作。真正使ASP.NET有别于其它Web开发技术的是它提出的抽象编程模型,即“Web窗体结构”。下图1展示了传统Windows窗体模型与.NET框架中Web窗体模型的简单比较。

图1—传统Windows窗体模型与.NET框架中Web窗体模型的简单比较。
Windows窗体模型起源于典型的事件驱动的桌面编程风格。不管客户和服务器组件之间存在什么样的连接,服务器的工作总是响 应客户的输入。服务器知道总的应用程序状态,并以一种两层的、连接的方式进行运行。Web窗体模型则需要某种机构来支持这种事件驱动的编程模型。在上图中,请求页面时发生的状态反序列化和生成HTML响应时执行的状态序列化代表了这种需求的机制。
ASP.NET HTTP运行库负责这种筛选工作。HTTP运行库中一段代码,扩展了托管Web服务器的总体功能并使它们专门化。可重入窗体和隐藏字段是用来实现这种特征的低级工具。如果没有一个跨越服务器页面全部内容的有效的后端对象模型,那么这种模型的效果很难成功。因此,组件模型对整个ASP.NET开发平台的构建及其有效的工作很重要。
总之,ASP.NET是过去十年内先后发展起来的Web开发技术的巅峰—一种在目前构建通过HTTP协议传输的分布式应用的技术中,Web开发技术建立在另一种技术的基础之上,并且每一种技术都弥补了其前辈的缺陷。因此,ASP.NET是目前非常先进、特征最丰富而且功能最强大的平台。