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