将ASP代码移植为VB COM组件(转3)
2024-05-04 11:06:19
供稿:网友
使用子程序和函数
作 者 : 青苹果电脑工作室 本文点击次数:351
一个快速回答的问题:为什么关于asp的书中,讨论使用子程序和函数的代码的那么少?
虽然一行一行地写asp代码要更加简单,但是以程序的形式来编码却有许多益处。
首先,非程序化的代码不容易移植到visual basic。也许目前你没有这个计划,但是总有一天你会为了
其性能或可扩展性而将一些代码移植到组件中。
其次是程序是运行得更快。对asp性能的最大消耗是上下文转换,每次从asp代码区< % % > 移到无格式的
html时都会发生。因为你不会在程序内部编码一个上下文转换,就不讳感觉到这种消耗。另外,asp的
缓冲器也显示当子程序用程序化代码点击页面时会有很大的不同。这里是使用程序化代码的asp应用程序
"hello world" 的必须部分:
private sub main()
response.write "hello world!"
end sub
call main
为了完整起见,我在程序中包含了一个上下文转换的小例子。如果你试验这个代码,它会运行,但是请
不要在你自己的应用程序内部这样做。
< %@ language=vbscript % >
< %
private sub dostuff()
% >
this is < b > html text! < /b >
< %
end sub
% >
< html >
< head >
< meta name="generator" content="microsoft visual studio 6.0" >
< /head >
< body >
< p >< % call dostuff % >< /p >
< /body >
< /html >
程序化的代码还有一些其它益处。首先你会发现再利用包含在程序中的代码部分更加容易。其次,要
实现同样的目的所需要的代码行更少。第三,你将要开始开发一个大的可再利用代码库。开始时它的
形式是.inc 文件,最后你自己的普通com组件看起来就像jeff gordon(著名赛车选手)一样棒。
移植你的代码
有几件事与从vbscript向visual basic移植代码一样简单。一般来说,你需要移走代码并增加数据类型。
有时,也可以在visual basic中应用一些更有效的算法,但是必须先保证代码可以正常工作。
在我们这个应用程序举例中,将要移植一些简单的代码到两个visual basic com 组件中。将一些html
表格格式拖到表述类中,将ado 对象代码拖到包裹了ado 的数据存取类中。通过将这两个类都放入
activex dll 工程文件中可以使工程文件稍稍简单化。在实际工作中,可以为每一层创建单独的工程
文件,但是这个工程文件要在一个dll中表明思路。如果你想纠正这种情况,就将数据存取类移到另一个
工程文件中并作为一个dll编译。必须在表述要应用它的dll工程文件中增加对这个新dll的引用。
在这个样本工程文件中使用的数据库是一个northwind 数据库,它与visual basic包含在一起。在这个
样本工程文件的zip 文件中,我为那些没有安装visual basic的人做了这个文件的一个表格的版本。样本
工程文件中还包含一个与asp代码一起使用的编译过的dll。