沒有人會在沒有必要的情況下采用更加麻煩的方法來工作,除非是沒有選擇的余地。所以如果我要告訴你有一種簡單的技術(shù)可以使你的asp開發(fā)更加快速,并且更加高效率,你一定對此特別感興趣。這一方法將從你的asp頁中的絕大部分business logic轉(zhuǎn)移到一個visual basic activex .dll以達到提高整個網(wǎng)頁的性能。
使用activex .dll的原因
在visual basic中建立一個.dll文件實際上是一個activex對象。這種對象可以采用微軟的組件對象模型(com)技術(shù)來實現(xiàn),你也可以使用它們來建立與.dll相關(guān)的類。
開發(fā)人員利用.dll有很多原因,而且每一個工程也不會包含所有的優(yōu)點。然而,一旦你采用這種方法,你就發(fā)覺你使用的是activex .dll技術(shù)?,F(xiàn)在讓我們看看使用activex .dll技術(shù)的優(yōu)越性。
更好的性能
沒有任何疑問,一個開發(fā)人員關(guān)注的主要問題是完整的性能。與一個普通的asp頁相比,一個activex .dll運行速度更快。讓我們看一看一個簡單的范例。一個asp頁計算一個從0到10000000的變量,然后顯示一個“done”字符串需要26,087毫秒。然而vb.dll文件只需要100毫秒就可以完成這一過程。所以vb.dll比asp頁快了260倍。
在這樣的測試中,速度的差別是顯而易見的,因為asp運行26秒,.dll只需要運行少于1秒。請記住,速度的差別主要是與代碼所要處理的工作量有關(guān),也就是說,代碼執(zhí)行的工作量越大,速度的差別就會越明顯。如果將以上測試的文件擴大一倍,速度差別就會更明顯。asp頁需要25,156毫秒,然而.dll只需要70毫秒──后者以359倍的速度運行。
.dll相比于asp頁運行更快的原因有兩個:
.dll被編譯。這就意味著文件在機器語言中運行,這就達到它能夠達到的速度。asp頁運行的是被一個腳本引擎處理的代碼,這樣,每一部分必須被編譯然后才被處理。
.dll使用的是一個被聲明為長整型數(shù)據(jù)類型的變量,這就不需要32位處理器的解釋。而腳本頁使用的是一個variant變量,這一變量類型必須被轉(zhuǎn)換成一個數(shù)字,然后才能夠在計算中使用,這樣就不可避免地增加了處理時間。
變量聲明方法更好
變量聲明的方法可以使運行更加迅速,除此之外,還可以更容易地進行程序開發(fā),因為變量類型不需要轉(zhuǎn)換。變量可以在最初狀態(tài)下就被聲明,從而避免了編寫額外的轉(zhuǎn)換代碼行。
源代碼被隱藏
一個.dll文件可以使你的源代碼隱藏而防止被一些黑客攻擊。一個asp頁將腳本程序以純文本存儲到你的網(wǎng)絡(luò)服務(wù)器。一旦有人獲得你的網(wǎng)絡(luò)站點文件的訪問權(quán),網(wǎng)頁就很容易地被訪問,所以你的源代碼就被公開和受到損害。使用一個普通的activex .dll文件來處理你站點的business logic,從而可以防止不懷好意的人訪問你的源代碼。
從開發(fā)環(huán)境更加豐富
你還可以使用微軟的腳本編輯器來開發(fā)asp腳本。雖然這也是比較功能完整的工具,但它只提供了基本的腳本特性。相反,visual basic是一個豐富的開發(fā)環(huán)境。總之,這兩種工具沒有可比性──其中一個是腳本工具,另一個是功能完全的開發(fā)軟件包。
更高效率的交叉開發(fā)
以vb建立的.dll很容易地適用于其他的開發(fā)環(huán)境,比如微軟的access。另一方面,當(dāng)與其他環(huán)境進行交叉開發(fā)的時候,開發(fā)人員必須重新建立一個asp頁的任務(wù)。
更高效率的asp頁
一個包含所有的business logic可以變得很冗長。.dll文件是一種很高效地解決方法,因為它包含的所有的邏輯。這種管理結(jié)果是:更加簡單而又高效的代碼。
一些缺點
對于大部分而言,使用activex .dll的優(yōu)點要勝過其缺點,但你應(yīng)該記住還是存在一些缺點。首先,activex .dll在某些情況下會導(dǎo)致
更多信息請查看IT技術(shù)專欄