面向对象的ASP技术

历史

如今的Web应用程序越来越流行,基于B/S结构的软件也日渐增多。这也不难想象,正如Sun公司总裁Scott所说,“计算机就是网络”,随着互联网技术的发展,知识在世界范围内得到充分的传播。从90年代很原始静态HTML页面(现在还能在旧书摊看到讲解HTML3.2的书,配上16位的Internet Explorer或者Netscape Navigator插图,那时候的网页美观水平跟现在已经不能相提并论了),到复杂而缺乏定制性的CGI,然后是WindowNT的兴起,出现一种叫IDC,IDA, IDQ的东西(当然,现在那些东西已经不存在了,只是作者当年还兴致勃勃的研究过他们,但是现在什么也记不住了),然后就是基于VBScript的ASP2.0。这是后,Java逐渐侵入Internet编程领域,Servlet、JSP也出现了。其他的,如PHP, Perl, 等,到现在微软大行其道的以ASP.NET为核心的.Net技术,如今的Web开发领域可谓百花齐放,各有千秋。

技术出现了这么多,无论是ASP、JSP还是PHP等,在出现的早期,他们的编程模型不外乎是下面的模式:客户机向服务器提交一个HTTP/GET或者HTTP/POST请求,服务器得到这个请求后,要么请求数据库,将结果响应给客户端,要么直接响应一个结果给客户端。也就是简单的“请求-响应”模型。这种模型的唯一的一个优点就是简单。随着大型的Web应用的出现,这种模型很快出现不足。例如,无法实现代码的重用(在Web开发中,出现冗余代码似乎是难以避免的事),很多页面具有相似的功能与相似的代码,在需求改变的时候,代码的更改显得如此的不便,以至于让人很恼火。无法实现复杂的业务逻辑,简单的结构决定了这种模型无法胜任复杂的逻辑。等等,诸如此类的问题,使得Web开发的前辈们开始考虑更为有效的模式。

这时候值得一提的是JSP Model2, 也就是SmallTalk语言中一种很常见的模式:Model-View-Controller。有关这种模式的有相关的专业文章介绍,这里就不再赘述。总而言之,这种模式的出现改变了大多数Web开发人员的观念,使他们以一种软件结构的高度上来考虑B/S软件,而不是原来的“流式开发”。实现了MVC模式的Apache Struts,一时成为开发人员了与学习和接受的一种新的技术。(有关JSP与Servlet,请看我翻译的另外一篇文章:《Servlet与JSP, 最佳实践》)

ASP.NET的推出可以说是又是一个进步。Code-Behind技术与页面回调等,姑且不论其效率如何,单单从这些技术本身而言,又将我们的Web开发观念提高了一个层次。服务器HTML组件可以直接与C#代码交互,而且如此的自然,不得不佩服微软的结构设计了。

现在我们来谈一谈这篇文章的主题:ASP。

先进的技术与好用的技术

目前在Web开发领域,几乎没有人看好ASP。CSDN上总有人在抱怨ASP开发者的薪水太少。而且ASP确实存在这样和那样的问题,最大的问题莫过于它是非编译的脚本,所有的脚本都是通过解释执行,这让他的效率大打折扣。另外,它的弱类型变量定义降低学习的难度与他的效率。种种的问题显示,放弃ASP吧,不要在追寻一个落魄的技术了。

然而,我想没有一个有经验的Web开发者会说,ASP不好用,ASP不好学。现在的ASP高手很多,然而JSP,ASP.NET的高手却很难培养。在CSDN的JSP版上,问“怎么配置JSP运行环境”一类的问题不在少数,另外一些例如“字符编码”、“数据库连接”等在ASP种基本不用考虑问题在JSP中确实屡见不鲜。这里我无意比较ASP与JSP,我也不敢攻击JSP或者说JSP的坏话。从纯粹的技术的角度,我认为,在易用性上,ASP要稍胜一筹,而且在中小型项目的把握上,抛开个人或者技术界的虚荣心,ASP要比JSP把握大。如果读者是一位有多年经验并且熟知ASP与JSP的话,应该不至于反对我的观点。

然而,JSP的优点比比皆是。从软件结构的高度来看,它太优秀了。拥有JavaBean技术与扩展标记库技术,使得JSP的概念已经远远超过了它本身。组件化容易,高效率,扩展方便,容易实现多层结构,等等。

从现在Web开发领域的走势(或者说整个软件的走势)来说,组件化的思想越来越重要了。现在的问题是,基本的ASP功能很明显是无法满足现在日益复杂的需求,如何在ASP中实现组件思想呢?

关于组件我们能够想到最直接的办法就是使用VisualBasic或者VisualC++或者任何一种其他的Windows环境下的编程工具。然后,几乎所有人都会说:VC开发组件是效率最高的,但是很慢;VB开发式最快的,效率也不错。的确,VB具备简单通用,支持COM, COM+,等优点,而且开发速度快,调试方便。这样,VB就成为开发ASP组件的首选。另外一个不得不提的东西就是XML。使用XML的好处多多,这里也不多说了。

我的基本思想是:用VB来写组件,用XML来配置应用程序。这里的组件的概念已经不是过去的那种功能性组件(例如,SAFileUpload, Jmail等等,只是为了实现某一个功能而实现的组件。目前这类组件占据了大多数的ASP服务器端组件市场。),更多的是实现某一个实体(Entity)。也就是说,在面向对象的ASP技术中,提倡两种组件的存在:功能组件与实体组件。

功能组件主要用于实现某一个或者一组功能。当然,这些功能也应当是按照面向对象的思想组织在一起。例如,一个名为LoginControl的功能组件包含以下方法:CheckLogin, UpdateLogin, LoginOut等,更为常见的例子就是数据库操作。您可以将数据库操作写成组件的方法,在ASP页面中进行调用。而实体组件仅仅实现基本的对象及其属性和方法。最普通的应用的例子莫过于User 组件,它可能有Name, Account, Password等等属性。使用用户组件最显著的好处是:充分利用廉价资源――内存来存储逻辑上独立的一个复杂对象,从而减少昂贵资源(例如数据库链接)的使用。

而XML的作用是提供应用的简单配置,在ASP页面与组件之间建立一种松散联系。有了这种联系,应用程序就可以以一种非常随意而轻松的方式进行分工、拆卸和组装。这种想法来自于现在的MVC Struts中的struts-config.xml和ASP.NET中的web.config。

关于VB组件的注册一直是一个大问题。现在的Web应用已经远远超过了过去的概念。原来只是做做网站,现在却可以做复杂的应用系统,而且不仅禁止运行在ISP的虚拟主机上,越来越多的应用被部署到企业的内部网络。既然如此,VB中组件的注册已经不成为问题,一般来说,除非必要,否则在一个项目中使用一个dll足够了。当然,在开发过程中的调试也许是非常枯燥的。在本文的最后,有一些组件调试的小技巧,如果你真的打算用这种方式来开发Web应用的话,你可以参考一下。

下面是一个实际的例子。由于时间、环境的原因,作者仅仅在自己的机器上对代码进行了运行和测试,由于篇幅所限,作者也不提供整个样例的代码(如果读者熟知ASP与VB的话,实际上代码是非常简单的),下面的例子仅仅是一个简单的开发原型。在实际的系统使用中需要考虑更多的因素。

时间: 2024-09-14 04:21:28

面向对象的ASP技术的相关文章

面向对象的ASP技术:思考与实践

对象 目录:概述历史先进的技术与好用的技术:ASP到了尽头吗?组件化的Web程序一个实例小技巧结束语 概述本文简要描述了Web开发的历史,并主要对JSP, ASP, 以及ASP.NET进行了比较.最后,较为详细的提出了一种概念模型并做出了简单的实现.这种模型将使得ASP这种简单易用的技术上升一个高度,成为中小企业或者中小项目开发的较好选择.本文适合ASP的中高级开发者. 历史如今的Web应用程序越来越流行,基于B/S结构的软件也日渐增多.这也不难想象,正如Sun公司总裁Scott所说,"计算机就

ASP技术在交互式网页设计中的运用

交互|设计|网页|网页设计 一.ASP技术简介 ASP技术 ASP(Active Server Pages动态网页)是微软公司推出的一种用以取代CGI(Common Gateway Interface通用网关接口)的技术.目前,Internet上的许多基于Windows平台的Web站点已开始应用ASP来替换CGI. 简单地讲,ASP是一个位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式Web服务器应用程序,如交互式动态网页,包括使用HTML表单收集和处理信息,上传与下载等

ASP技术在电子商务中的应用

电子商务 作者:潘镭 内容提要:本文阐述了ASP技术的作用与特点及其在电子商务中的应用. 关键词:ASP :电子商务. 一.ASP技术 ASP(Active Server Pages动态网页)是微软公司推出的一种用以取代CGI(Common Gateway Interface通用网关接口)的技术.目前,Internet上的许多基于Windows平台的Web站点已开始应用ASP来替换CGI. 简单地讲,ASP是一个位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式Web服务器

突破性的ASP+技术

asp+ 自1996年微软推出ASP1.0以来,ASP+IIS的组合在与CGI+PHP+Apache的网络大战中,并没有取得"微软式"的优势,反而因为安全性,执行效率,程序语法和跨平台等问题屡受指责和批评. 随着微软近期宣布.NET战略,ASP也即将升级到"下一个版本",称之为ASP+.请注意这一引号,因为ASP+并不是目前ASP3.0版本的自然过渡,而是提供了一种全新的服务器端Web脚本编程,编写ASP+页面与生成ASP页面有着根本上的不同!首先ASP+是一种编译

利用ASP技术实现文件直接上传功能

上传|上传 摘要: 本文首先比较了几种常见的文件上传技术,然后通过实例介绍了利用ASP技术直接实现文件上传的具体方法. 关键词:ASP:文件上传:二进制数据 引言 采用WEB技术实现B/S(浏览器/服务器)结构的管理系统是办公自动化的发展趋势.基于WEB技术的管理系统,由于开发周期短:与用户平台无关:易于实现交互式应用:能对信息进行快速.高效的收集.处理和发布,近几年来得到了迅速发展.而ASP技术由于其开发效率高.交互性好,安全性强等特点,逐渐成为开发管理系统的首选工具. 许多基于WEB的应用都

用ASP技术编制隐藏用户密码程序

程序 用ASP技术编制隐藏用户密码程序 摘自:软件世界 作者:阿干 Internet(或Intranet)上带权限的查询,只有"合法用户"才能进入.这种机制是通过Web程序实现的.在访问过程中,如果程序设计得不好,就会将用户口令暴露在地址栏里(举一个例子:http://www.mmm.nnn/default.asp ?superusername=john&passwd=john123,用户名john和密码john123全露出来了),这样系统就无保密和安全性可言了.怎样避免这种现

强烈推荐ASP初学者观看:常用ASP技术

初学 对于用ASP技术编程的初学者来说,无从下手是第一感觉,笔者曾经有这么一段经历.经过一番"磨难"以后,你就会找到灵感.现将本人编程中积累的一些经验,拟成本文,奉献给读者. 1 首先要学习一些例子程序. 接到任务后,不要盲目地急于编写代码,而是先看一下别人成功的例子,然后在其上修改或模仿调试,这样会加快你熟悉的速度.例如,关于ASP编程的教科书上经常有这么一个例子出现,即显示系统当前时间的语句:<%=now()%> ,别看这么简单的一条语句,里边却包含了ASP的编程思想和

用Agent+ASP技术制作语音聊天室

聊天室 用Agent+ASP技术制作语音聊天室--------------------以下为程序内容,按文章中出现的顺序分块排序 <!--定义"AgentControl"--><OBJECT classid=clsid:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F codeBase=#VERSION=2,0,0,0 id=Agent></OBJECT> <!--定义L&H TruVoice Text-To-S

巧用ASP技术保护DHTML源代码(转)

dhtml|源代码 巧用ASP技术保护DHTML源代码2001-8-18  动网先锋   DHTML使得我们能够开发出功能强大的Web应用客户端,它具有跨浏览器兼容.可交互和可移植等特点.它的缺点是用户能够直接查看JavaScript代码.本文介绍如何运用ASP技术保护DHTML代码,防止有人窃取你的DHTML代码. 传统保护技术 众所周知,Web本质上是一种不安全的媒介.当用户访问Web应用或者打开Web页面时,所有客户端的代码(HTML,JavaScript源文件以及CSS样式)一般都要下载