將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。