asp封装dll经验小结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
asp封装dll经验小结
1、在封装asp代码的过程中应该根据需要来封装,不要所有的程序都封装起来,这样很容易造成一些无法预知的错误
2、在封装过程中一定要注意变量的声明,否则编译后的dll很可能会出现一些问题。比如在asp中使用的变量如rs、conn这样的变量很容易被我们忽视去声明她,所以在编写asp代码时要养成一个良好的习惯。
3、在封装代码的过程中一定要将包含文件里面的所有代码全部写到dll文件中,这在感开始学习编译dll 时很容易被我们所忽略。因为vb的编写和asp的编写思路时不一样的。
4、在封装过程中尽量不要封装和fso相关的代码。比如上传、自动生成html等等,我在封装的过程中上传功能始终不能正常运行。或许这时个人问题,希望又成功经验的人能就这个问题进行讨论。
以上四点时我在封装asp代码时的一些心得,很少,希望大家不要介意,欢迎有这方面经验的网友一起讨论。
我来说一下编写asp组件的大致过程吧: 1、启动VB的废话就不说了; 2、引用:把你平时写ASP用到的东东都要引用到当前工程里来,常用的如: com+ services type library microsoft active server pages object library(ASP内建对象就在里边) microsoft activeX data objects library(你的RS,CONN,CMD就在里边)其他的东东你根据自己的需要来引用了,引用之后只要new一个实例,就可以调用其中的方法了 3、写代码:就是你的FUNCTION/SUB 了,不过这里面可都要用response.write 输出HTML的(不用担心width=100%>;的错误了)
ASP封装成DLL一些注意事项
虽然代码封装方案很好,完全可以取代ASP,但是用惯了ASP,而且对一些小项目也不想动用到.NET这个傍然大物,因为电脑性能跟不上,所以还是存在ASP封装的种种问题,经过多次试验,对转换成DLL的过程写下一些心得:
1、代码和DLL的区别
DLL代码前要加上以下一段,目的是引用ASP五大对象:
Private Context As ScriptingContext
Private Application As Application
Private Response As Response
Private Request As Request
Private Session As Session
Private Server As Server
Public Sub OnStartPage(PassedScriptContext As ScriptingContext)
Set Context = PassedScriptContext 'Asp运行环境对象
Set Application = Context.Application 'Asp 五大对象
Set Request = Context.Request
Set Response = Context.Response
Set Server = Context.Server
Set Session = Context.Session
End Sub
要引用MicroSoft Active Server Pages Objects Library
如果DLL里也封装了数据库连接(Connections)和数据集(RecordSet),DLL工程可以使用原来ASP里的数据库写法,也可以通过以下引用部件的方法实现:
MicroSoft ActiveX Data Objects 2.7 Library
同时把原ASP程序里的Server.CreateObject("ADODB.CONNECTION")改成下面样子,加在代码头部
Public conn As New ADODB.connection
Public rs As New ADODB.Recordset
另外:程序结束时要记得关闭连接,免得占用系统资源,影响服务器运行.
Set rs = Nothing
rs.Close
Set conn = Nothing '将连接设为空,释放它所占用的资源。
conn Close '将连接关闭(无释放连接所占用的资源)
3、DLL调试
按常规办法,经常要操作重启IIS,很烦,最简单的办法,写一个BAT命令保存成sss.bat,放在桌面上,每次修改完DLL之前运行一次,然后在VB6里生成DLL,就可以运行程序了,不需要再注册一次DLL,为什么?我也不清楚:
regsvr32 E:\VB\vbdll\my.dll -u
net stop "world wide web publishing service"
net Start "world wide web publishing service"
4、改变ASP脚本编写习惯
一般我会先写一个普通的ASP程序,运行成功需交付客户时才转换成DLL,这时,要注意ASP代码编写时把程序代码和HTML分成明显的两部分,不要混在一起乱糟糟的转换时要花很多精力去修改和整理。