专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Asp教程 » asp.net编译.dll:将ASP文件编译成DLL »正文

asp.net编译.dll:将ASP文件编译成DLL

来源: 发布时间:星期四, 2009年2月12日 浏览:112次 评论:0


这篇文章主要是把ASP代码变成组件,开发者不仅是加快了ASP速度,而且也能保护自己代码.

下面,我们会来编写个非常简单组件,重点是知道怎样开发DLL组件,而不是其复杂代码!这些都要靠你们自己以后努力了.

服务器端组件

首先,服务器端组件要有别于客户端组件.客户端组件是通过网络传输,依靠HTML来起作用.而且只能在IE上有用.但是服务器端组件是运行在服务器端,它在服务器上执行各种操作.因此,所有浏览器都能享用,它依靠是服务器而不是浏览器.

当IIS被请求执行个ASP,它首先会在ASP文件中找到 〈% %>标签的间代码,并且执行它(也可以是〈script runat=server>〈/script>的间代码).如果这个ASP在先前被过,那么它就会用内存中编译过来向用户返回HTML代码,如果没有,那么它就重新编译.这里ASP就比CGI多点速度优势,CGI是每个请求都使用个线程.这样就大大消耗了服务器资源.

想不想你写自己就能在IIS运行!?!现在你就行了!使用VB5(当然现在是VB6了),你就能建立Dynamic Linked Libraries (DLL 文件),它能在IIS上直接运行(如果有asp文件来请求话).

系统和软件Software要求

你需要个32位操作系统来运行ASP.当然你也得安装IIS或PWS.我们下面是在windows95+PWS+VB5环境下开发.

我们开始吧

启动你VB,选择ActiveX图标.这个图标可以在新建工程找到!VB会提供个默认工程名(project1)和类名(1).我们会将这两个名字都改掉.在改名的前,请首先确认我们拥有Microsoft Active Server Pages Object Library,它在我们非常有用.从菜单中选择\"工程\",然后在其中选择\"引用\",就会出现\"引用\"窗口

从中选择Microsoft Active Server Pages Object Library.

给工程和类命名

现在我们来根据自己爱好来为project1和1来命名吧!给它们命名也是很重要,我们以后会用这个工程名和类名来创建这个组件例子!后面详细介绍.

如何改名,我就不想多说了!

我们工程名改为Exmaple,类名为Helloword

怎样使用工程和类

现在我们有了我们自己工程(Example1)和类名(HelloWorld).以后我们就会在ASP代码中使用它们名字来引用这个组件.在ASP中我们就这样引用,如下:

Set ObjReference = Server.CreateObject(\"ProjectName.ClassName\")

对于我们工程引用就是:

Set ObjReference = Server.CreateObject(\"Example1.HelloWorld\")

现在我们就能用ObjReference来我们在组件中所创建,子.下面我们会来写个SayHello, 我们执行它代码如下:

〈%

Set ObjReference = Server.CreateObject(\"Example1.HelloWorld\")

ObjReference.SayHello

%>

为了在Helloword类中使用ASP思路方法,你必须在此类中写个OnStartPage

.如下:

Public Sub _disibledevent=>End Sub

现在,无论什么时候用户访问个带有本组件ASP文件,IIS就会把ScriptingContext传送给我们对象请我们使用.这个ScriptingContext包括了全部ASP思路方法和属性.实现上,这使得我们有能力访问所有ASP对象.看下面代码:

Public Sub _disibledevent=>Set MyApplication = MyScriptingContext.Application

Set MyRequest = MyScriptingContext.Request

Set MyResponse = MyScriptingContext.Response

Set MyServer = MyScriptingContext.Server

Set MySession = MyScriptingContext.Session

End Sub

以后我们就能用在VB中用MyApplication 来代替ASP中Application,同理可以代替Request,Server.....,不过我们来是要在 _disibledevent=>Response.Write (\"you entered \"& MyTempVariable & \"as your user name\")

%>

在VB中实现:

MyTempVariable = MyRequest.Form(\"userName\")

MyResponse.Write (\"you entered \"& MyTempVariable & \"as your user name\")

通过使用MyResponse来代替Response,我们能够使用所有Response思路方法,当然,MyResponse这个名字可以随便来取,你甚至可以就取Response.

件我们得注意是,我们得在我们建立类中,写上OnEndPage子,这个OnStartPage是相反!OnStartPage是创建对象,OnEndPage是消毁对象.

Public Sub _disibledevent=>Set MyApplication = Nothing

Set MyRequest = Nothing

Set MyResponse = Nothing

Set MyServer = Nothing

Set MySession = Nothing

End Sub

SayHello思路方法

我们来建立个子,用于显示\"Holle World\".这个SayHello思路方法只是HelloWorld这个类中个子,我们以后会在ASP中用以下显示这个思路方法

〈%

Set ObjReference = Server.CreateObject(\"Example1.HelloWorld\")

ObjReference.SayHello

%>

SayHello,很简单!

Public Sub SayHello

MyResponse.Write (\"Hello World\")

End Sub

现在个小型组件编写完成,剩下工作就是编译这个组件,在\"工程\"菜单中保存它,取什么名字都可以,我们用Exmaple1.vbp吧! 然后就用在菜单中选择\"make exmaple1.dll\",将其编译成DLL文件.个组件就真正完成了!



注意,编译了此组件那么你就得先把你PWS关掉,然后再编译此组件.否则VB就会告诉你些组件在使用中.

在ASP中使用我们自己组件.

当你更正了在编译中,成功地编译了example1这个工程,现在你就得拿出你最喜欢HTML编辑器来写下下面语句,保存为ASP文件.

〈HTML>

〈HEAD>

〈TITLE>Example 1〈/TITLE>

〈/HEAD>

〈BODY>

〈%

Set ObjReference = Server.CreateObject(\"Example1.HelloWorld\")

ObjReference.SayHello

%>

〈/BODY>

〈/HTML>

运行后即可看到结果:

Hello World

注册组件

如果你想和你朋友,邻居分享你组件,那么你就得在你系统上注册你组件.我们般使用Regsvr32.exe来注册组件.注册后你组件会出现在Win95/Win98windows/system目录中.下面是个注册例子:

Regsvr32.exe C:/wwwroot/Example1/Example1.dll

在你系统中,VB会自动给你注册,所以你很少用到Regsvr32.exe

我们这里只是写了个非常小组件,你们可以写好自己更大组件,而且还可以用VB中很多Control控件.

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: