当前位置: 首页 > 图文教程 > 网络编程 > ASP > 将ASP代码移植为VB COM组件-3

ASP
asp实现取得数组中的最大值的代码
asp 将日期格式化为需要的格式
asp 下产生任意位数随机密码的代码
asp下返回以千分位显示数字格式化的数值
asp重定向页面的方法总结
asp下去除数组中重复的项的方法
asp下实现 重新排序数字数组的代码
asp 验证输入网址是否有效并可以访问 与正则验证输入网址
asp验证Ip格式的函数
asp实现生成由数字,大写字母,小写字母指定位数的随机数
asp 格式化sql中的like字符串
asp 实现显示所有的服务器变量值的函数
asp 取得用户真实IP,对代理地址仍然有效的函数
asp 通用数据库连接过程函数
asp 字符串截取函数
asp下实现格式化文件大小以MB显示的函数
asp 下用正则表达式检测邮箱格式的函数
asp 实现检测字符串是否为纯字母和数字组合的函数
asp代码实现检测组件是否安装的函数
asp通过JMAIL实现通用发送函数

将ASP代码移植为VB COM组件-3


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 217 ::
收藏到网摘: n/a

  一个快速回答的问题:为什么关于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。