ASP是目前一种广为应用的用来快速构建动态WEB站点的编程语言,默认的内置开发语言是VBScript,由于ASP和微软Windows系列操作系统的结合非常的好,使得ASP已经成为了NT开发平台上面进行WEB开发的首选语言和环境。他有着简单易学,方便快速开发的种种优点,但是他也有着致命的弱点,就是他是脚本语言解释执行的,速度会受到一定的影响,更为关键的是,使用ASP来开发完成一个项目之后,整个项目在交付客户使用的时候,是会连带所有的ASP脚本源代码的,也就无法将商业程序保密了,源代码泄漏会给自己造成很大的损失,虽然微软也相应的推出了用来加密ASP程序的软件,但是有着诸多的限制,以及会降低程序运行的速度和二次开发调试的难度,难道ASP做出来的项目就真的要暴露所有的源代码吗?
当然了,答案当然是否定的,因为世界上没有绝对不可能的事情,接下来就跟随我来看看如何利用VB的ActiveX DLL来实现将ASP程序封装起来吧,也就是我们可以使用ActiveX DLL来完成所有ASP能完成的事情,而ActiveX DLL是编译好的DLL文件,别人是无法得知你的源代码的,也就保证的自己的商业机密和核心技术,并且达到同样的效果,使用完全封装的ActiveX DLL会比完全适用ASP脚本语言的执行速度要快很多,尤其是大运算量的时候跟为明显!经过我们的具体测试,在操纵10000条数据库记录的时候,封装成为ActiveX DLL的WEB应用程序比纯ASP代码的应用程序,速度上面要快大约21%左右,在目前国内过于缓慢的网络来讲,速度就是一个WEB站点的很关键的一部分。并且采用了ActiveX DLL来开发WEB程序,要比单纯使用ASP好得多,毕竟ASP只能使用VBScript来开发,无法享用VB大量的优点,而ActiveX DLL则可以充分利用VB里面所有的特性。
下面我们先来看看什么是ActiveX DLL吧。ActiveX是微软提出的广泛应用于Windows系列的一种代码封装技术,提高了程序代码的可重用性,加快了程序项目的开发速度,一般被称为“组件”。在VB6的集成开发环境当中,我们可以看到一下几种ActiveX项目:
1、ActiveX EXE
这是在“过程外”运行的ActiveX/COM服务器组件,也就是说他们运行的过程和初始化组件的客户机代码不同。尽管可以用ASP访问ActiveX EXE,但是不推荐改动IIS元库,该库允许所有的可执行文件由服务器上运行的脚本代码启动。
2、ActiveX OCXs
这些特殊的组件把主机应用程序显示和操作组件所需的附加支持包含在GUI环境中。还可以把OCX组件放在网页当中。但是,OCX是应用程序界面,不可以使用ASP来创建的。
3、ActiveX文档DLL和ActiveX文档EXE
Active文档可以在OLE文件箱应用程序中,例如IE或者Office Binder,显示VB表单。但他们在ASP不能应用。
4、ActiveX DLLs
这些ActiveX/COM组件和初始化组件的客户机在同一个进程中运行。而我们要讨论的ActiveX DLL正是整个组件。一般微软的附加组件和其他的一些第三方厂家提供的各种组件都是这种类型的ActiveX DLL,但是并不全是使用VB编写的,同样可以使用VC/JAVA等等语言来开发。
探讨完了什么是ActiveX DLL,我们开始正式编写我们自己的ActiveX DLL,以便来实现ASP中的同样功能,众所周知,ASP内置了Response、Request、Server、Session、Application五个对象,其实这五个内置对象正是IIS控制台初始化的五个ActiveX DLL组件,既然IIS可以初始化这五个组件用于ASP中,我们当然也可以直接在我们的ActiveX DLL中引用这些组件来实现我们的编程,也就是说我们可以在VB应用程序中通过引用这些组件来实现访问ASP内置对象的功能。
只要你安装了PWS4或者IIS4以上的WEB服务器,你就拥有了一个名称叫做“Microsoft Active Server Pages Object”的对象库,我们可以在VB的ActiveX DLL应用中引用这个对象库,通过引用这个对象库,我们就获得了一个对象(类):ScriptingContext,这个对象也正是我们整个文章探讨的核心对象。对象库内的关系如下:
2008-2-6 23:31 回复
影★天魅
0位粉丝
2楼
对象库 类 类成员
ASPTypeLibrary ScriptingContext Application
Request
Response
Session
Server
通过上面的关系图,我们就可以很容易理解类ScriptingContent。下面我们来看一个具体的例子吧:
1、 使用VB6创建一个新的ActiveX DLL项目
2、 引用“Microsoft Active Server Pages Object”对象库。
3、 创建两个组件事件:OnStartPage以及OnEndPage
4、 在事件OnStartPage中创建类ScriptingContent的一个引用。
5、 实例化类ScriptingContent。
Test.cls (类实现)
'对象的声明
Dim rp as Response
Dim rq as Request
Dim ap as Application
Dim sr as Server
Dim sn as Session
'当组件被创建的时候会触发这个事件
Public Sub OnStartPage(mysc as ScriptingContent)
'进行对象的实例化
set rp=mysc.Response
set rq=mysc.Request
set sr=mysc.Server
set ap=mysc.Application
set sn=mysc.Session
rp.write "<br>ActiveX DLL组件已经被创建了!<br>"
End Sub
'当组件被销毁的时候触发这个事件
Public Sub OnEndPage()
Rp.write "<br>ActiveX DLL组件已经被销毁!<br>"
'销毁对象
Set rp=nothing
Set rq=nothing
Set sr=nothing
Set ap=nothing
Set sn=nothing
End Sub
'定义我们自己的一个组件方法
Public Sub HelloWorld()
Rp.write "<H1>Hello,World!</H1>"
End Sub
这样,我们就创建可以访问ASP内置对象的ActiveX DLL了。我们命名这个组件项目为first,在VB中间编译这项目成为一个DLL文件first.dll,并且我们在系统中注册这个DLL文件。接下来,我们需要一个简单的几乎没有什么代码的ASP程序来调用这个组件:
test.asp
<html>
<head>
<title>测试ActiveX DLL</title>
</head>
<body>
<%
Dim testme
'创建我们刚才编译成功的组件,一旦创建这个组件,同时会在叶面输出文字“ActiveX DLL组件已经被
'创建了!”
set testme=server.createobject("first.test")
'调用组件的方法
testme.HelloWorld
'注销组件,在注销的同时,会自动在叶面显示“ActiveX DLL组件已经被销毁!”
set testme=nothing
%>
</body>
</html>
通过上面简单的例子,我们可以看到使用ActiveX DLL同样可以实现和ASP同样的功能,并且带来的代码保密和程序运行更加高效的优点。ActiveX DLL和纯ASP有着各自的优点和缺点,只要我们合理的运用这两种技术,比如适当的将商业逻辑封装在ActiveX DLL中,或者在需要保密的地方使用DLL封装技术,一定可以编写出高效快速的WEB应用程序。
(以上程序在VB6企业版、Windows2000 Server中文版测试通过)
分享到:
相关推荐
在IT行业中,ActiveX DLL(动态链接库)是一种在Windows平台上广泛使用的组件技术,它可以为应用程序提供可重用的功能模块。ASP(Active Server Pages)则是微软的一种服务器端脚本环境,用于创建动态交互式Web应用...
在IT行业中,ActiveX DLL(动态链接库)是一种在ASP(Active Server Pages)环境中使用的组件技术,用于封装和重用代码。将ASPWeb应用程序封装成ActiveX DLL可以帮助提高应用程序的性能,减少服务器资源的占用,并...
### ASP与ActiveX DLL 关键知识点解析 #### 1. MTS (Microsoft Transaction Server) MTS,即**Microsoft Transaction Server**,是微软提供的一种分布式事务处理系统,它为应用程序提供了强大的事务支持。MTS 主要...
本示例探讨了如何在VC++/MFC(Microsoft Foundation Classes)客户端应用程序中调用VB(Visual Basic)编写的ActiveX DLL。ActiveX DLL是一种可重用的组件,它提供了在不同程序之间共享代码的功能。本文将详细讲解这...
### ASP-DLL:使用VB将ASP代码封装成DLL 在早期的Web开发中,ASP(Active Server Pages)是一种广泛使用的服务器端脚本环境,它允许开发者创建动态网页内容。随着项目复杂度的增加,开发者们逐渐意识到需要一种更加...
在IIS(Internet Information Services,互联网信息服务)中,asp.dll文件扮演着至关重要的角色,它是ASP技术的核心组件。 asp.dll文件的主要功能是解析和执行ASP页面中的脚本代码。当客户端请求一个扩展名为.asp的...
标题中的"JPEG.zip_activex_activex asp_asp activex _jpeg 切割"表明这是一个关于使用ActiveX组件处理JPEG图像,特别是涉及到图像切割功能的资料包。ActiveX是Microsoft开发的一种技术,它允许在Web页面中嵌入各种...
在ASP编程中,为了提高代码的安全性和重用性,我们可以使用VB来创建DLL动态链接库进行数据连接的封装。在本例中,我们将探讨如何使用VB生成DLL来封装ASP代码,以便更安全地连接和操作Access数据库。 首先,让我们...
需要对用户的名字进行模糊查找,涉及汉字转拼音,搜了一下网上的组件,要嘛收费,要嘛asp调用不方便,倒是有一个asp的代码,遗憾的是很不准确,自己找了个字库,调整以后打包成ActiveX,这个组件不支持多音字,取音...
regsvr32 e:\vbdll\aspdll.dll ,为了安装方便,你同时可以写个批处理 文件,这里不一一举例了...好,注册成功! 9.注册完dll组件后,我们针对刚才的组件,按照上面介绍过的方法编写一 个asp文件来调试.代码如下: set ...
1. 打开Visual Basic 6 IDE,创建一个新的ActiveX DLL项目。 2. 在DLL项目中编写函数,例如`ReadINI`,该函数接收INI文件路径和键值作为参数,返回对应键值的数据。 3. 使用VB6的`InputSection`或`...
ASP 封装成 DLL 服务器端组件 本文档主要讲述了如何将 ASP 封装成 DLL 服务器端组件,从而实现 ASP 程序在 IIS 上的运行。首先,服务器端的组件要有别于客户端的组件,客户端的组件是通过网络传输,依靠 HTML 来起...
因此,文章介绍了两种解决方案:使用 VB6 建立 ActiveX DLL 和使用 WSC(Windows Script Component)。 使用 VB6 建立 ActiveX DLL 使用 VB6 建立 ActiveX DLL,可以避免安全性及使用权限上的问题。首先,建立一个...
在ASP中调用客户端的可执行文件或DLL(动态链接库)是一种技术手段,允许服务器与客户端进行更深入的数据交互。这篇内容将详细介绍如何通过ASP调用客户端的dll以及涉及的技术要点。 首先,我们要理解ASP的工作原理...
当我们编写ActiveX DLL以实现ASP功能时,需要注意ASP的内置对象,如Response、Request、Server、Session和Application,这些实际上是由IIS控制台初始化的ActiveX DLL组件。因此,我们可以在VB的ActiveX DLL中引用...
在ASP.NET中,连接到数据库是常见的操作,而Microsoft提供的.dll文件则扮演着关键角色。 在.NET开发环境中,与数据库交互通常依赖于ADO.NET(ActiveX Data Objects .NET)技术。ADO.NET提供了一组类库,用于连接、...
在本实例中,首先通过VB6(Visual Basic 6.0)创建了一个ActiveX DLL项目,该类型的DLL通常用于封装可重用的代码,让其他应用程序能够访问这些代码。在创建DLL时,首先需要在工程引用中加入Microsoft Active Server ...
在这个教程中,作者将引导开发者使用Visual Basic 6(VB6)来创建一个ActiveX DLL工程,将ASP代码转换为DLL组件,并提供了相应的代码示例和注册卸载组件的方法。 首先,VB6是一种较为老旧的开发工具,但它支持创建...
3. Microsoft ActiveX 控件:如comctl32.dll,是Windows上实现ActiveX控件的库,支持GUI元素的创建和交互。 4. Microsoft Visual Basic 运行库:如vbe6ext.olb、msvbvm60.dll,为VB6及更早版本的VB应用程序提供运行...
在ASP中,可以通过ADODB(ActiveX Data Objects)连接并操作Access数据库,如查询用户信息进行登录验证。 总的来说,通过VB封装ASP的登录模块和分页组件成DLL,可以实现代码的高效复用,简化调用过程,同时利于团队...