- 用VB構(gòu)鍵Internet的應(yīng)用 推薦度:
- 相關(guān)推薦
用VB構(gòu)鍵Internet的應(yīng)用-
Internet技術(shù)的發(fā)展為編程人員提供了更廣泛的施展身手的空間。早先"Internet應(yīng)用程序"這個詞僅僅只是指一些用FTP協(xié)議下載文件或?yàn)g覽HTML頁面的工具,而如今使用Visual Basic,不僅可以為Internet開發(fā)應(yīng)用程序,而且還可以把Internet技術(shù)作為一部分融入大型的解決方案中。
今天我們所要討論的問題是利用Visual Basic創(chuàng)建在面向Internet的應(yīng)用中起重要作用的ActiveX組件。例如,你所創(chuàng)建的ActiveX控件可以用于HTML頁面;你開發(fā)的ActiveX文檔可以在Internet瀏覽器中使用并于其他的組件一起和HTML頁面集成起來;另外ActiveX代碼組件(以前被稱為OLE服務(wù)器), 可以被部署在客戶端或服務(wù)器端的計(jì)算機(jī)上用于后臺的處理。
[Internet的開發(fā)環(huán)境]
Internet是一個使用TCP/IP協(xié)議、全球性的非集中管理的計(jì)算機(jī)網(wǎng)絡(luò)。如果去掉全球性這一點(diǎn), 所謂"Internet技術(shù)"完全可以和本地局域網(wǎng)中所使用的技術(shù)一樣。
從一方面來看, Internet技術(shù)只是簡單地為開發(fā)人員提供了另一個施展身手的空間。如果你在和Web連接時使用了ActiveX組件,盡管你具體實(shí)現(xiàn)的方法有可能不同,如采用了HTML和VBScript代碼以實(shí)現(xiàn)安全性或是其他,但是你仍然在調(diào)用方法,設(shè)置屬性,處理事件等等。這樣,作為一個VB開發(fā)人員所有的知識和技能都被用于了Internet的環(huán)境下。
從另外一個方面來看,應(yīng)用Internet的技術(shù)可以使你向一些吸引人的方向延伸你的開發(fā)工作。例如將ActiveX組件和Internet技術(shù)綜合有以下的益處:
更簡單的維護(hù)---作為Web一部分的組件可以根據(jù)需要下載,無須用戶運(yùn)行一個setup程序進(jìn)行升級;
將功能延伸至Internet---通過通用協(xié)議,用戶將看不見在Internet和Intranet之間的切換。
Internet客戶/服務(wù)器
可以借用客戶機(jī)/服務(wù)器的關(guān)系來考查Internet的開發(fā)環(huán)境,客戶端和服務(wù)器端都可以有"靜態(tài)的"和"活動的"兩種狀態(tài)。活動的客戶機(jī)或服務(wù)器可以根據(jù)其內(nèi)部狀態(tài)的改變而動態(tài)地運(yùn)行一個腳本或是改變其行為;而靜態(tài)的客戶機(jī)或服務(wù)器僅僅只是對外界激勵作出反應(yīng)。
Internet開發(fā)包括以下四種情形:
靜態(tài)的客戶機(jī)和靜態(tài)的服務(wù)器
靜態(tài)的客戶機(jī)和活動的服務(wù)器
活動的客戶機(jī)和靜態(tài)的服務(wù)器
活動的客戶機(jī)和活動的服務(wù)器
靜態(tài)的客戶機(jī)和靜態(tài)的服務(wù)器
靜態(tài)的客戶向靜態(tài)的服務(wù)器發(fā)送請求,服務(wù)器響應(yīng)該請求并返回一個文件。一旦HTML頁面被下載到客戶端, 客戶機(jī)和服務(wù)器的連接就終止,直到服務(wù)器接受到下一個請求。在使用FTP下載文件或是Usernet閱讀新聞時也會發(fā)生同樣的情形。
結(jié)合靜態(tài)客戶機(jī)的功能即為用Visual Basic中和Internet技術(shù)相關(guān)的ActiveX控件創(chuàng)建一個FTP工具,一個Web瀏覽器或是一個新聞讀者等等。這些性能也可以被集成到一個大的應(yīng)用程序中。
靜態(tài)的客戶機(jī)和活動的服務(wù)器
假如你正在使用一個靜態(tài)的客戶端, 例如和一個當(dāng)前應(yīng)用程序相連接的Web瀏覽器窗體, 以下載一個HTML頁面,上面有文本框以輸入查詢內(nèi)容,還有按鈕以把用戶輸入的條目作為一個字符串發(fā)送給服務(wù)器。當(dāng)你發(fā)送完文本之后,服務(wù)器返回一個已定制過的HTML頁面-往往是通過調(diào)用一個DLL中的函數(shù), 上面有你查詢的結(jié)果。這就是一個"活動的"服務(wù)器的例子, 它自動處理數(shù)據(jù)并根據(jù)條件返回一個定制的結(jié)果。
創(chuàng)建活動服務(wù)器的途徑之一就是通過使用Visual Basic開發(fā)的DLL并用Oleisapi2.dll實(shí)現(xiàn)訪問。Oleisapi2.dll包含在Windows NT Server 4.0之中,是Internet Information Server (IIS)的一種功能,它包括了ISAPI的函數(shù)功能集。通過IIS和Oleisapi2.dll, 你可以在Web服務(wù)器上部署DLL, 并從客戶端使用HTML頁面上的信息或調(diào)用其方法。
活動的客戶機(jī)和靜態(tài)的服務(wù)器
當(dāng)客戶機(jī)擁有處理能力時稱之為活動的客戶機(jī);顒拥目蛻魴C(jī)擁有本地處理任務(wù)的能力,而不是請求服務(wù)器幫助處理。在客戶機(jī)/服務(wù)器應(yīng)用中,本地處理的能力不僅提高了任務(wù)完成的速度,而且減輕了服務(wù)器的負(fù)擔(dān)。
活動客戶機(jī)的情形有很多種。例如,用Visual Basic構(gòu)建的ActiveX文檔幾乎可以包括所有傳統(tǒng)應(yīng)用的功能。當(dāng)你把它放到一個容器中時, 例如Internet Explorer, 你的客戶端就完全擁有了傳統(tǒng)Visual Basic中所有的動態(tài)功能?蛻舳艘部梢酝ㄟ^在一個HTML頁面中使用VBScript調(diào)用ActiveX控件或DLL實(shí)現(xiàn)。
活動的客戶機(jī)和活動的服務(wù)器
如果采用活動客戶機(jī)和活動服務(wù)器的模式可以充分發(fā)揮優(yōu)勢: 分布式的功能便于擴(kuò)展,靈活的解決方案可以充分利用系統(tǒng)和網(wǎng)絡(luò)資源。
在三層結(jié)構(gòu)的客戶機(jī)/服務(wù)器環(huán)境中開發(fā)部署的應(yīng)用中,其組件分布于整個網(wǎng)絡(luò)上, 總起來完成提供用戶界面, 實(shí)現(xiàn)業(yè)務(wù)準(zhǔn)則和數(shù)據(jù)訪問的功能,而且由于可以充分利用客戶端和服務(wù)器端的處理能力,可以實(shí)現(xiàn)更復(fù)雜的數(shù)據(jù)訪問功能。
一個活動的服務(wù)器可以負(fù)責(zé)跟蹤客戶提交的查詢表格,提交查詢并返回結(jié)果。一個活動的客戶機(jī)則負(fù)責(zé)將返回的結(jié)果展現(xiàn)給用戶, 然后將改變的內(nèi)容返回給服務(wù)器。另外通過Internet組件的下載,當(dāng)用戶訪問Web站點(diǎn)時, 可以自動更新客戶端提交查詢和處理結(jié)果的準(zhǔn)則。
[在Web上使用ActiveX組件]
ActiveX組件為Internet技術(shù)帶來了新的功能。通過Internet組件的下載,超連接,菜單協(xié)商等各種功能,將ActiveX組件和Internet集成起來,內(nèi)容和應(yīng)用程序之間的界線也越來越模糊。另外由于在站點(diǎn)上(在客戶機(jī)和服務(wù)器之間)分布功能函數(shù),我們可以創(chuàng)建更具擴(kuò)展性和靈活性的站點(diǎn)。
在Internet應(yīng)用程序中使用ActiveX文檔
使用ActiveX文檔, 我們可以開發(fā)和Internet/Intranet站點(diǎn)的其他元素緊密集成的Visual Basic的應(yīng)用程序。利用這些組件開發(fā)出來的應(yīng)用程序,用戶可以透明地在HTML頁面和ActiveX文檔之間遷移。
可以把ActiveX文檔作為Visual Basic為Internet提供的應(yīng)用。幾乎所有現(xiàn)在用標(biāo)準(zhǔn)應(yīng)用程序完成的工作都可以用ActiveX文檔實(shí)現(xiàn)。
作為HTML頁面中的一個元素,如果在用戶的客戶機(jī)上沒有安裝ActiveX文檔, 當(dāng)用到它們時, 可以自動地從網(wǎng)上下載;如果客戶機(jī)上的版本比較舊, 也可以可以自動升級。ActiveX文檔的許多特性提供了很好的安裝,導(dǎo)航性能,并可以保證很好的持續(xù)一致性:
Internet組件的下載---你可以創(chuàng)建一個到你的ActiveX文檔的連接,使瀏覽器可以自動找到并下載所有需要的組件。
超連接對象---在一個超連接感知的包容器中,你可以使用Visual Basic的超連接對象的屬性和方法以跳轉(zhuǎn)到一個給定的URL或是通過歷史的記錄清單進(jìn)行導(dǎo)航。
菜單和協(xié)商---由于可以從Word或Excel中獲得文檔,Visual Basic的ActiveX文檔提供了將其菜單嵌入瀏覽器中的菜單的功能。例如當(dāng)文檔被裝載入Internet Explorer中后,瀏覽器的菜單將和你為該ActiveX文檔創(chuàng)建的菜單混合。
PropertyBag---當(dāng)你在Internet Explorer中部署一個ActiveX文檔時, 你可以通過PropertyBag對象保持?jǐn)?shù)據(jù)的一致性。
下面我們來看一看如何在Internet Explorer中部署一個ActiveX文檔。假設(shè)我們要通過一個HTML頁面中的超連接連接到這個ActiveX文檔上:
1. 用HTML創(chuàng)建引用這個ActiveX文檔的連接。
由于ActiveX文檔將在Internet Explorer中取代HTML頁面,所以有必要將組件的OBJECT標(biāo)簽放在另一個HTML頁面中。當(dāng)跳轉(zhuǎn)到該頁面后,一旦ActiveX文檔被裝載,它就會立刻消失。
2. 用HTML為瀏覽器提供下載、注冊以及導(dǎo)航到這個ActiveX文檔的途徑。
在OBJECT標(biāo)簽中應(yīng)該說明ActiveX文檔的類ID和CODEBASE屬性。
3. 在同一頁面上, 使用VBScript指示Internet Explorer立刻通過相應(yīng)的.vbd文件導(dǎo)航到該ActiveX文檔上。
在Internet應(yīng)用程序中使用ActiveX控件
ActiveX控件為你的HTML頁面帶來了活力。通過HTML和VBScript, 你可以在一個HTML頁面上使用ActiveX控件, 設(shè)置它們的屬性,調(diào)用它們的方法并處理它們的事件。一個包含控件的的HTML頁面仿佛一個Visual Basic的設(shè)計(jì)窗口。ActiveX控件可以提供更多的交互式的,生動的用戶界面特性,使HTML頁面變得更加有活力。
一般需要通過HTML和VBScript的綜合手段引用并控制ActiveX控件的行為。使用HTML為瀏覽器提供下載,注冊并引用ActiveX控件引用的途徑。在HTML代碼的OBJECT標(biāo)簽中需要包括:
控件的類別ID, 以使程序能在Windows的注冊表中找到它們;
ID的屬性,以便在VBScript中引用該控件(類似于Visual Basic中的Name屬性);
CODEBASE屬性,告訴瀏覽器如果組件不在客戶機(jī)上該去哪兒找;
PARAM NAME標(biāo)簽,設(shè)置控件的屬性參數(shù)。
然后用VBScript編寫處理單擊事件的代碼,使每一個控件被單擊后,程序可以作相應(yīng)的動作。
Visual Basic專業(yè)版中還包括了三個已預(yù)先設(shè)計(jì)好的用于包裹Internet相關(guān)技術(shù)的控件, 使你能夠擴(kuò)展已有的應(yīng)用程序,它們是:
Internet Transfer Control---包裹了三種通用的Internet協(xié)議:HTTP, FTP和Gopher;
WebBrowser Control---包含了許多通過Internet Explorer可以獲得的功能;
WinSock Control---使你可以連接到一臺遠(yuǎn)程的機(jī)器, 然后通過UDP或TCP交換數(shù)據(jù)。
通過使用這些控件, 你可以添加從FTP站點(diǎn)自動下載文件的功能,還可以為Visual Basic IDE提供Web瀏覽器的Add-in。
在Internet應(yīng)用程序中使用ActiveX代碼組件
無論是在客戶端或是在服務(wù)器端, 都可以使用ActiveX代碼組件(.dll或.exe文件), 從而為HTML頁面添加功能。
在客戶端部署代碼組件, 由于用戶的命令無須通過網(wǎng)絡(luò)傳輸回服務(wù)器,可以大大提高運(yùn)行速度。服務(wù)器端的組件同樣也可以有顯示用戶界面可視化元素的功能。通過下載一個DLL, 我們可以在HTML頁面上添加用戶界面的元素,如一個登錄對話框; 還可以提供幕后的客戶端處理能力,例如一個伴隨VBScript的函數(shù)庫。
客戶端的部署工作類似于對ActiveX控件的使用,你同樣需要使用HTML和VBScript代碼引用并編寫代碼組件。下面給出了一個用HTML和VBScript代碼編寫調(diào)用DLL以顯示登錄對話框的實(shí)例:
1. 使用HTML創(chuàng)建一個窗體,其中包含一個按鈕以調(diào)用登錄對話框:
2. 用HTML為瀏覽器提供下載,注冊及引用ActiveX組件的途徑:
Classid="clsid:2F390484-1C7D-11D0-8908-00A0C90395F4"
id="Login"
codebase="Login.cab#version=1,0,0,0">
3. 用VBScript調(diào)用組件中的方法以顯示登錄對話框:
組件自身中將包含用于形成登錄字符串的代碼,并將它發(fā)送給服務(wù)器用于驗(yàn)證。
另一種將DLL和Internet技術(shù)結(jié)合的方法是將它部署在服務(wù)器端。如果你有Internet Information Server (IIS)-包含在Windows NT Server 4.0中, 你可以通過Visual Basic關(guān)盤中的Tools目錄下的Oleisapi2.dll調(diào)用Visual Basic中內(nèi)置的DLL函數(shù)。
Oleisapi2.dll中包含了ISAPI中的所有函數(shù)。你可以把DLL部署在HTTP服務(wù)器上, 并通過HTML頁面上發(fā)送的信息調(diào)用其方法。Oleisapi2.dll作為客戶請求到DLL之間的中介。由于代碼是基于HTML的,這些請求僅僅是簡單的URL。
通過服務(wù)器端的DLL可以由客戶提供的參數(shù)定制返回給客戶的HTML頁面,還可以管
理數(shù)據(jù)庫的連接,對接受到的請求和返回的結(jié)果進(jìn)行整理和編組
【用VB構(gòu)鍵Internet的應(yīng)用-】相關(guān)文章:
用VB構(gòu)鍵Internet的應(yīng)用08-06
皖能集團(tuán)Internet/Intranet應(yīng)用系統(tǒng)08-06
用VB制作網(wǎng)址鏈接器08-06
用VB實(shí)現(xiàn)對庫文件的分割備份08-06
On the Internet08-09
On the Internet08-09
MCU應(yīng)用系統(tǒng)與Internet連接的一種新技術(shù)08-06
Internet/Intranet技術(shù)在辦公自動化中的應(yīng)用08-06
Internet In china08-09