VB構(gòu)鍵Internet應(yīng)用論文

時(shí)間:2022-03-18 03:45:00

導(dǎo)語(yǔ):VB構(gòu)鍵Internet應(yīng)用論文一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

VB構(gòu)鍵Internet應(yīng)用論文

Internet技術(shù)的發(fā)展為編程人員提供了更廣泛的施展身手的空間。早先"Internet應(yīng)用程序"這個(gè)詞僅僅只是指一些用FTP協(xié)議下載文件或?yàn)g覽HTML頁(yè)面的工具,而如今使用VisualBasic,不僅可以為Internet開(kāi)發(fā)應(yīng)用程序,而且還可以把Internet技術(shù)作為一部分融入大型的解決方案中。

今天我們所要討論的問(wèn)題是利用VisualBasic創(chuàng)建在面向Internet的應(yīng)用中起重要作用的ActiveX組件。例如,你所創(chuàng)建的ActiveX控件可以用于HTML頁(yè)面;你開(kāi)發(fā)的ActiveX文檔可以在Internet瀏覽器中使用并于其他的組件一起和HTML頁(yè)面集成起來(lái);另外ActiveX代碼組件(以前被稱為OLE服務(wù)器),可以被部署在客戶端或服務(wù)器端的計(jì)算機(jī)上用于后臺(tái)的處理。

[Internet的開(kāi)發(fā)環(huán)境]

Internet是一個(gè)使用TCP/IP協(xié)議、全球性的非集中管理的計(jì)算機(jī)網(wǎng)絡(luò)。如果去掉全球性這一點(diǎn),所謂"Internet技術(shù)"完全可以和本地局域網(wǎng)中所使用的技術(shù)一樣。

從一方面來(lái)看,Internet技術(shù)只是簡(jiǎn)單地為開(kāi)發(fā)人員提供了另一個(gè)施展身手的空間。如果你在和Web連接時(shí)使用了ActiveX組件,盡管你具體實(shí)現(xiàn)的方法有可能不同,如采用了HTML和vbScript代碼以實(shí)現(xiàn)安全性或是其他,但是你仍然在調(diào)用方法,設(shè)置屬性,處理事件等等。這樣,作為一個(gè)VB開(kāi)發(fā)人員所有的知識(shí)和技能都被用于了internet的環(huán)境下。

從另外一個(gè)方面來(lái)看,應(yīng)用Internet的技術(shù)可以使你向一些吸引人的方向延伸你的開(kāi)發(fā)工作。例如將ActiveX組件和Internet技術(shù)綜合有以下的益處:

更簡(jiǎn)單的維護(hù)---作為Web一部分的組件可以根據(jù)需要下載,無(wú)須用戶運(yùn)行一個(gè)setup程序進(jìn)行升級(jí);

將功能延伸至Internet---通過(guò)通用協(xié)議,用戶將看不見(jiàn)在Internet和Intranet之間的切換。

Internet客戶/服務(wù)器

可以借用客戶機(jī)/服務(wù)器的關(guān)系來(lái)考查Internet的開(kāi)發(fā)環(huán)境,客戶端和服務(wù)器端都可以有"靜態(tài)的"和"活動(dòng)的"兩種狀態(tài)?;顒?dòng)的客戶機(jī)或服務(wù)器可以根據(jù)其內(nèi)部狀態(tài)的改變而動(dòng)態(tài)地運(yùn)行一個(gè)腳本或是改變其行為;而靜態(tài)的客戶機(jī)或服務(wù)器僅僅只是對(duì)外界激勵(lì)作出反應(yīng)。

Internet開(kāi)發(fā)包括以下四種情形:

靜態(tài)的客戶機(jī)和靜態(tài)的服務(wù)器

靜態(tài)的客戶機(jī)和活動(dòng)的服務(wù)器

活動(dòng)的客戶機(jī)和靜態(tài)的服務(wù)器

活動(dòng)的客戶機(jī)和活動(dòng)的服務(wù)器

靜態(tài)的客戶機(jī)和靜態(tài)的服務(wù)器

靜態(tài)的客戶向靜態(tài)的服務(wù)器發(fā)送請(qǐng)求,服務(wù)器響應(yīng)該請(qǐng)求并返回一個(gè)文件。一旦HTML頁(yè)面被下載到客戶端,客戶機(jī)和服務(wù)器的連接就終止,直到服務(wù)器接受到下一個(gè)請(qǐng)求。在使用FTP下載文件或是Usernet閱讀新聞時(shí)也會(huì)發(fā)生同樣的情形。

結(jié)合靜態(tài)客戶機(jī)的功能即為用VisualBasic中和Internet技術(shù)相關(guān)的ActiveX控件創(chuàng)建一個(gè)FTP工具,一個(gè)Web瀏覽器或是一個(gè)新聞讀者等等。這些性能也可以被集成到一個(gè)大的應(yīng)用程序中。

靜態(tài)的客戶機(jī)和活動(dòng)的服務(wù)器

假如你正在使用一個(gè)靜態(tài)的客戶端,例如和一個(gè)當(dāng)前應(yīng)用程序相連接的Web瀏覽器窗體,以下載一個(gè)HTML頁(yè)面,上面有文本框以輸入查詢內(nèi)容,還有按鈕以把用戶輸入的條目作為一個(gè)字符串發(fā)送給服務(wù)器。當(dāng)你發(fā)送完文本之后,服務(wù)器返回一個(gè)已定制過(guò)的HTML頁(yè)面-往往是通過(guò)調(diào)用一個(gè)DLL中的函數(shù),上面有你查詢的結(jié)果。這就是一個(gè)"活動(dòng)的"服務(wù)器的例子,它自動(dòng)處理數(shù)據(jù)并根據(jù)條件返回一個(gè)定制的結(jié)果。

創(chuàng)建活動(dòng)服務(wù)器的途徑之一就是通過(guò)使用VisualBasic開(kāi)發(fā)的DLL并用Oleisapi2.dll實(shí)現(xiàn)訪問(wèn)。Oleisapi2.dll包含在WindowsNTServer4.0之中,是InternetInformationServer(IIS)的一種功能,它包括了ISAPI的函數(shù)功能集。通過(guò)IIS和Oleisapi2.dll,你可以在Web服務(wù)器上部署DLL,并從客戶端使用HTML頁(yè)面上的信息或調(diào)用其方法。

活動(dòng)的客戶機(jī)和靜態(tài)的服務(wù)器

當(dāng)客戶機(jī)擁有處理能力時(shí)稱之為活動(dòng)的客戶機(jī)?;顒?dòng)的客戶機(jī)擁有本地處理任務(wù)的能力,而不是請(qǐng)求服務(wù)器幫助處理。在客戶機(jī)/服務(wù)器應(yīng)用中,本地處理的能力不僅提高了任務(wù)完成的速度,而且減輕了服務(wù)器的負(fù)擔(dān)。

活動(dòng)客戶機(jī)的情形有很多種。例如,用VisualBasic構(gòu)建的ActiveX文檔幾乎可以包括所有傳統(tǒng)應(yīng)用的功能。當(dāng)你把它放到一個(gè)容器中時(shí),例如InternetExplorer,你的客戶端就完全擁有了傳統(tǒng)VisualBasic中所有的動(dòng)態(tài)功能??蛻舳艘部梢酝ㄟ^(guò)在一個(gè)HTML頁(yè)面中使用VBScript調(diào)用ActiveX控件或DLL實(shí)現(xiàn)。

活動(dòng)的客戶機(jī)和活動(dòng)的服務(wù)器

如果采用活動(dòng)客戶機(jī)和活動(dòng)服務(wù)器的模式可以充分發(fā)揮優(yōu)勢(shì):分布式的功能便于擴(kuò)展,靈活的解決方案可以充分利用系統(tǒng)和網(wǎng)絡(luò)資源。

在三層結(jié)構(gòu)的客戶機(jī)/服務(wù)器環(huán)境中開(kāi)發(fā)部署的應(yīng)用中,其組件分布于整個(gè)網(wǎng)絡(luò)上,總起來(lái)完成提供用戶界面,實(shí)現(xiàn)業(yè)務(wù)準(zhǔn)則和數(shù)據(jù)訪問(wèn)的功能,而且由于可以充分利用客戶端和服務(wù)器端的處理能力,可以實(shí)現(xiàn)更復(fù)雜的數(shù)據(jù)訪問(wèn)功能。

一個(gè)活動(dòng)的服務(wù)器可以負(fù)責(zé)跟蹤客戶提交的查詢表格,提交查詢并返回結(jié)果。一個(gè)活動(dòng)的客戶機(jī)則負(fù)責(zé)將返回的結(jié)果展現(xiàn)給用戶,然后將改變的內(nèi)容返回給服務(wù)器。另外通過(guò)Internet組件的下載,當(dāng)用戶訪問(wèn)Web站點(diǎn)時(shí),可以自動(dòng)更新客戶端提交查詢和處理結(jié)果的準(zhǔn)則。

[在Web上使用ActiveX組件]

ActiveX組件為Internet技術(shù)帶來(lái)了新的功能。通過(guò)Internet組件的下載,超連接,菜單協(xié)商等各種功能,將ActiveX組件和Internet集成起來(lái),內(nèi)容和應(yīng)用程序之間的界線也越來(lái)越模糊。另外由于在站點(diǎn)上(在客戶機(jī)和服務(wù)器之間)分布功能函數(shù),我們可以創(chuàng)建更具擴(kuò)展性和靈活性的站點(diǎn)。

在Internet應(yīng)用程序中使用ActiveX文檔

使用ActiveX文檔,我們可以開(kāi)發(fā)和Internet/Intranet站點(diǎn)的其他元素緊密集成的VisualBasic的應(yīng)用程序。利用這些組件開(kāi)發(fā)出來(lái)的應(yīng)用程序,用戶可以透明地在HTML頁(yè)面和ActiveX文檔之間遷移。

可以把ActiveX文檔作為VisualBasic為Internet提供的應(yīng)用。幾乎所有現(xiàn)在用標(biāo)準(zhǔn)應(yīng)用程序完成的工作都可以用ActiveX文檔實(shí)現(xiàn)。

作為HTML頁(yè)面中的一個(gè)元素,如果在用戶的客戶機(jī)上沒(méi)有安裝ActiveX文檔,當(dāng)用到它們時(shí),可以自動(dòng)地從網(wǎng)上下載;如果客戶機(jī)上的版本比較舊,也可以可以自動(dòng)升級(jí)。ActiveX文檔的許多特性提供了很好的安裝,導(dǎo)航性能,并可以保證很好的持續(xù)一致性:

Internet組件的下載---你可以創(chuàng)建一個(gè)到你的ActiveX文檔的連接,使瀏覽器可以自動(dòng)找到并下載所有需要的組件。

超連接對(duì)象---在一個(gè)超連接感知的包容器中,你可以使用VisualBasic的超連接對(duì)象的屬性和方法以跳轉(zhuǎn)到一個(gè)給定的URL或是通過(guò)歷史的記錄清單進(jìn)行導(dǎo)航。

菜單和協(xié)商---由于可以從Word或Excel中獲得文檔,VisualBasic的ActiveX文檔提供了將其菜單嵌入瀏覽器中的菜單的功能。例如當(dāng)文檔被裝載入InternetExplorer中后,瀏覽器的菜單將和你為該ActiveX文檔創(chuàng)建的菜單混合。

PropertyBag---當(dāng)你在InternetExplorer中部署一個(gè)ActiveX文檔時(shí),你可以通過(guò)PropertyBag對(duì)象保持?jǐn)?shù)據(jù)的一致性。

下面我們來(lái)看一看如何在InternetExplorer中部署一個(gè)ActiveX文檔。假設(shè)我們要通過(guò)一個(gè)HTML頁(yè)面中的超連接連接到這個(gè)ActiveX文檔上:

1.用HTML創(chuàng)建引用這個(gè)ActiveX文檔的連接。

由于ActiveX文檔將在InternetExplorer中取代HTML頁(yè)面,所以有必要將組件的OBJECT標(biāo)簽放在另一個(gè)HTML頁(yè)面中。當(dāng)跳轉(zhuǎn)到該頁(yè)面后,一旦ActiveX文檔被裝載,它就會(huì)立刻消失。

2.用HTML為瀏覽器提供下載、注冊(cè)以及導(dǎo)航到這個(gè)ActiveX文檔的途徑。

在OBJECT標(biāo)簽中應(yīng)該說(shuō)明ActiveX文檔的類ID和CODEBASE屬性。

3.在同一頁(yè)面上,使用VBScript指示InternetExplorer立刻通過(guò)相應(yīng)的.vbd文件導(dǎo)航到該ActiveX文檔上。

在Internet應(yīng)用程序中使用ActiveX控件

ActiveX控件為你的HTML頁(yè)面帶來(lái)了活力。通過(guò)HTML和VBScript,你可以在一個(gè)HTML頁(yè)面上使用ActiveX控件,設(shè)置它們的屬性,調(diào)用它們的方法并處理它們的事件。一個(gè)包含控件的的HTML頁(yè)面仿佛一個(gè)VisualBasic的設(shè)計(jì)窗口。ActiveX控件可以提供更多的交互式的,生動(dòng)的用戶界面特性,使HTML頁(yè)面變得更加有活力。

一般需要通過(guò)HTML和VBScript的綜合手段引用并控制ActiveX控件的行為。使用HTML為瀏覽器提供下載,注冊(cè)并引用ActiveX控件引用的途徑。在HTML代碼的OBJECT標(biāo)簽中需要包括:控件的類別ID,以使程序能在Windows的注冊(cè)表中找到它們;

ID的屬性,以便在VBScript中引用該控件(類似于VisualBasic中的Name屬性);

CODEBASE屬性,告訴瀏覽器如果組件不在客戶機(jī)上該去哪兒找;

PARAMNAME標(biāo)簽,設(shè)置控件的屬性參數(shù)。

然后用VBScript編寫(xiě)處理單擊事件的代碼,使每一個(gè)控件被單擊后,程序可以作相應(yīng)的動(dòng)作。

VisualBasic專業(yè)版中還包括了三個(gè)已預(yù)先設(shè)計(jì)好的用于包裹Internet相關(guān)技術(shù)的控件,使你能夠擴(kuò)展已有的應(yīng)用程序,它們是:

InternetTransferControl---包裹了三種通用的Internet協(xié)議:HTTP,FTP和Gopher;

WebBrowserControl---包含了許多通過(guò)InternetExplorer可以獲得的功能;

WinSockControl---使你可以連接到一臺(tái)遠(yuǎn)程的機(jī)器,然后通過(guò)UDP或TCP交換數(shù)據(jù)。

通過(guò)使用這些控件,你可以添加從FTP站點(diǎn)自動(dòng)下載文件的功能,還可以為VisualBasicIDE提供Web瀏覽器的Add-in。

在Internet應(yīng)用程序中使用ActiveX代碼組件

無(wú)論是在客戶端或是在服務(wù)器端,都可以使用ActiveX代碼組件(.dll或.exe文件),從而為HTML頁(yè)面添加功能。

在客戶端部署代碼組件,由于用戶的命令無(wú)須通過(guò)網(wǎng)絡(luò)傳輸回服務(wù)器,可以大大提高運(yùn)行速度。服務(wù)器端的組件同樣也可以有顯示用戶界面可視化元素的功能。通過(guò)下載一個(gè)DLL,我們可以在HTML頁(yè)面上添加用戶界面的元素,如一個(gè)登錄對(duì)話框;還可以提供幕后的客戶端處理能力,例如一個(gè)伴隨VBScript的函數(shù)庫(kù)。

客戶端的部署工作類似于對(duì)ActiveX控件的使用,你同樣需要使用HTML和VBScript代碼引用并編寫(xiě)代碼組件。下面給出了一個(gè)用HTML和VBScript代碼編寫(xiě)調(diào)用DLL以顯示登錄對(duì)話框的實(shí)例:

1.使用HTML創(chuàng)建一個(gè)窗體,其中包含一個(gè)按鈕以調(diào)用登錄對(duì)話框:

Clickheretologinin:

2.用HTML為瀏覽器提供下載,注冊(cè)及引用ActiveX組件的途徑:

Classid="clsid:2F390484-1C7D-11D0-8908-00A0C90395F4"

id="Login"

codebase="Login.cab#version=1,0,0,0">

3.用VBScript調(diào)用組件中的方法以顯示登錄對(duì)話框:

組件自身中將包含用于形成登錄字符串的代碼,并將它發(fā)送給服務(wù)器用于驗(yàn)證。

另一種將DLL和Internet技術(shù)結(jié)合的方法是將它部署在服務(wù)器端。如果你有InternetInformationServer(IIS)-包含在WindowsNTServer4.0中,你可以通過(guò)VisualBasic關(guān)盤(pán)中的Tools目錄下的Oleisapi2.dll調(diào)用VisualBasic中內(nèi)置的DLL函數(shù)。

Oleisapi2.dll中包含了ISAPI中的所有函數(shù)。你可以把DLL部署在HTTP服務(wù)器上,并通過(guò)HTML頁(yè)面上發(fā)送的信息調(diào)用其方法。Oleisapi2.dll作為客戶請(qǐng)求到DLL之間的中介。由于代碼是基于HTML的,這些請(qǐng)求僅僅是簡(jiǎn)單的URL。

通過(guò)服務(wù)器端的DLL可以由客戶提供的參數(shù)定制返回給客戶的HTML頁(yè)面,還可以管理數(shù)據(jù)庫(kù)的連接,對(duì)接受到的請(qǐng)求和返回的結(jié)果進(jìn)行整理和編組。