ActiveX技術(shù)揭示 - www.rising.com.cn
1. ActiveX概要 1.1. ActiveX的定義 ActiveX是Microsoft提出的一組使用COM(Component Object Model,部件對象模型)使得軟件部件在網(wǎng)絡(luò )環(huán)境中進(jìn)行交互的技術(shù)集。它與具體的編程語(yǔ)言無(wú)關(guān)。作為針對Internet應用開(kāi)發(fā)的技術(shù),ActiveX被廣泛應用于WEB服務(wù)器以及客戶(hù)端的各個(gè)方面。同時(shí),ActiveX技術(shù)也被用于方便地創(chuàng )建普通的桌面應用程序。 1.2. ActiveX的內容 ActiveX 既包含服務(wù)器端技術(shù),也包含客戶(hù)端技術(shù)。其主要內容是: ActiveX 控制(ActiveX Control);用于向WEB頁(yè)面、Microsoft Word等支持ActiveX的容器(Container)中插入COM對象。 ActiveX 文檔(ActiveX Document);用于在WEB Browser或者其它支持ActiveX的容器中瀏覽復合文檔(非HTML文檔),例如Microsoft Word文檔,Microsoft Excel文檔或者用戶(hù)自定義的文檔等。 ActiveX 腳本描述(ActiveX Scripting);用于從客戶(hù)端或者服務(wù)器端操縱ActiveX控制和Java程序,傳遞數據,協(xié)調它們之間的操作。 ActiveX 服務(wù)器框架(ActiveX Server Framework);提供了一系列針對WEB服務(wù)器應用程序設計各個(gè)方面的函數及其封裝類(lèi),諸如服務(wù)器過(guò)濾器、HTML數據流控制等。 在Internet Explorer中內置Java虛擬機(Java Virtual Machine),從而使Java Applet能夠在Internet Explorer上運行,并可以與ActiveX控制通過(guò)腳本描述語(yǔ)言進(jìn)行通信。 1.3. ActiveX與Java的比較 ActiveX提供了一種擴展包括Java在內的任何編程語(yǔ)言的機制,Java的開(kāi)發(fā)人員可以在A(yíng)pplet中使用ActiveX技術(shù),直接嵌入ActiveX控制,或者以ActiveX技術(shù)為橋梁,將其它開(kāi)發(fā)商提供的多種語(yǔ)言的程序對象集成到Java中。與Java的字節碼技術(shù)相比,ActiveX提供了“代碼簽名”(Code Signing)技術(shù)保證其安全性。2. ActiveX控制和Internet ActiveX控制是OLE控制的更新版本??刂剖墙⒖删幊滩考闹饕?。ActiveX控制可以用于所有支持COM規范的容器中,或者作為Internet控制嵌入到WEB頁(yè)面中。用戶(hù)訪(fǎng)問(wèn)該頁(yè)面時(shí)將下載該控制并自動(dòng)在本地注冊。利用腳本描述語(yǔ)言(Script)可以在控制之間以及客戶(hù)與服務(wù)器之間通過(guò)設置屬性(Property)、調用方法(Method)和激活事件(Event)進(jìn)行通信。 ActiveX控制與以前的OLE控制相比,具有更少的接口,并且可以沒(méi)有窗口。所有的ActiveX控制都支持IUnknown接口。 目前,很多第三方開(kāi)發(fā)商編制了各式各樣的ActiveX控制。在Internet上,有超過(guò)1000個(gè)ActiveX控制供用戶(hù)下載使用。在WINDOWS的SYSTEM目錄下,保存有很多Windows提供的ActiveX控制。Microsoft Visual C++(以下簡(jiǎn)稱(chēng)VC)提供的MFC(Microsoft Foundation Classes)控制都是ActiveX控制。 考慮到當前Internet相對較低的傳輸速率,設計運行于Internet的ActiveX控制時(shí),必須考慮以下幾個(gè)問(wèn)題: 控制盡可能??; 持續存儲數據(Persist Data)如何保存; 如何在Internet上下載和安裝; 控制如何在客戶(hù)端注冊; 3. ActiveX文檔和Internet ActiveX文檔提供了傳統的嵌入對象的擴展方法。ActiveX文檔對象可以包含多個(gè)頁(yè),顯示在整個(gè)客戶(hù)區中,并支持原有的菜單功能。與以往的嵌入對象不同的是,ActiveX文檔對象不再以一個(gè)陰影方框包圍來(lái)顯示,而是全框架(Full Frame),并總處于激活狀態(tài)。 Microsoft Office97提供了Microsoft Office Binder,用來(lái)生成并瀏覽由Microsoft Word、Microsoft Excel或者用戶(hù)定義的ActiveX文檔等構成的復合文檔,每一種文檔類(lèi)型都可以直接進(jìn)行編輯修改。 ActiveX文檔可以作為對象嵌入到WEB網(wǎng)頁(yè)中,在WEB上發(fā)布。4. ActiveX腳本描述語(yǔ)言 利用VBScript或者M(jìn)icrosoft JScript,可以向Web頁(yè)面中加入可用于交互的ActiveX控制,將數據預處理或者檢驗過(guò)程放在客戶(hù)端進(jìn)行,然后將結果傳往WEB服務(wù)器。5. ActiveX服務(wù)器框架 在WEB服務(wù)器上創(chuàng )建擴展應用程序,動(dòng)態(tài)生成WEB頁(yè)面。使用MFC提供的ISAPI類(lèi)可以方便地建立WEB服務(wù)器端的擴展應用程序。6. Visual C++ 5.0對ActiveX的支持 VC++ 5.0(企業(yè)版)為Internet開(kāi)發(fā)提供了完整的解決發(fā)案,其內容是: 使用MFC或者ATL開(kāi)發(fā)ActiveX控制和ActiveX文檔; 使用ISAPI設計WEB服務(wù)器端的部件; 使用WinInet開(kāi)發(fā)通過(guò)Internet存取文件的應用程序; 使用Asynchronous Monikers生成從Internet下載數據的應用程序; 使用ActiveX SDK開(kāi)發(fā)其它類(lèi)型的基于Internet的Win32應用程序,包括ActiveX Scripting Host,Microsoft WebConferencing等。 6.1. 用VC5.0開(kāi)發(fā)ActiveX控制 VC++5.0提供兩個(gè)途徑開(kāi)發(fā)ActiveX控制:MFC和ATL(Active Template Library)。使用MFC,可以不必理會(huì )控制接口的細節,把注意力集中在控制本身的功用上,但是生成的控制比較大。而且,客戶(hù)端如果要運行此ActiveX控制,必須擁有相應版本的MFC類(lèi)庫的DLL,否則,必須同時(shí)下載這些巨大的類(lèi)庫;使用ATL,由于不涉及MFC的標準類(lèi)庫,生成的控制相對較小,但開(kāi)發(fā)者必須了解COM、OLE技術(shù)的細節。大多數情況下,可以使用MFC開(kāi)發(fā)ActiveX控制,這樣比較容易。而且,由于Internet Explorer 3.0提供了MFC 4.1的類(lèi)庫,而Internet Explorer 3.0是Windows95提供的組件,所以,只要ActiveX控制使用的是MFC 4.1或者更早的版本,多數情況下不需要下載MFC的類(lèi)庫。 使用MFC開(kāi)發(fā)ActiveX控制,可以用MFC ActiveX Control Wizard生成工程框架。VC會(huì )自動(dòng)產(chǎn)生三個(gè)類(lèi):(假設MyName是控制的名字。) CMyNameApp:從類(lèi)COleControlModule派生,而類(lèi)COleControlModule則派生自CWinApp; CMyNameCtrl:從類(lèi)COleControl派生,而類(lèi)COleControl則派生自CWnd; CMyNamePropPage:從類(lèi)COlePropertyPage派生,而類(lèi)COlePropPage則派生自CDialog; 可以看出,這個(gè)框架與一般的MFC應用程序有些類(lèi)似。開(kāi)發(fā)人員的大部分工作在CMyNameCtrl中,例如用Class Wizard添加屬性、方法和事件,處理顯示等。 編譯生成OCX文件后,用VC提供的ActiveX Test Container測試這個(gè)控制,也可以用OLE/COM Object Viewer瀏覽此控制的接口信息及類(lèi)型庫。 6.2. ActiveX控制在WEB上的應用 考慮到WEB的安全性,為了在服務(wù)器與客戶(hù)端建立良好的信任關(guān)系,必須為每個(gè)在WEB上使用ActiveX控制設置一個(gè)“代碼簽名”(Code Signing)。 在WEB頁(yè)面中使用ActiveX控制,還要對之進(jìn)行包裝,將有關(guān)的動(dòng)態(tài)連接庫及信息文件壓縮到一個(gè)擴展名為CAB(Cabinet)文件中??梢允褂肰C5.0提供的工具包裝ActiveX控制。在HTML文件中,使用OBJECT標簽插入ActiveX控制,并利用VBScript或者JScript訪(fǎng)問(wèn)該ActiveX控制??蛻?hù)端用Internet Explorer瀏覽此頁(yè)面時(shí),可以自動(dòng)解包該文件。出于安全性的考慮,Internet Explorer為ActiveX 部件的下載、初始化、是否擁有合法的代碼簽名以及是否允許Scripting等設置了不同的安全級別,用戶(hù)可根據需要進(jìn)行設置。下面這個(gè)例子中,使用了ActiveX控制“MSChart.OCX",當用鼠標單擊此控制時(shí),控制的標題將改變。 ID=chart1 WIDTH=400 HEIGHT=200 ALIGN=center> 其中,Object ID是這個(gè)ActiveX DLL中某個(gè)類(lèi)的名字。當此WEB頁(yè)面被下載并顯示時(shí),MyClass類(lèi)的方法LogIn將被調用,并在客戶(hù)端顯示LogIn對話(huà)框。 6.3. Visual Basic 6.0 Microsoft計劃于1998年9月推出Visual Basic 6.0。VB 6.0與VB5.0相比,除繼續支持Internet Explorer Document Object Model(DOM)開(kāi)發(fā)之外,將提供兩個(gè)令人興奮的新功能: (1)Dynamic HTML編輯器 開(kāi)發(fā)人員可以象編制普通VB程序一樣,制作DHTML文件或模板。 (2)WebClasses; 開(kāi)發(fā)人員可以在WEB服務(wù)器端建立與ASP文件一一對應的WebClass類(lèi),每個(gè)類(lèi)都可以訪(fǎng)問(wèn)ASP對象,在Visual Basic IDE中跟蹤調試,并生成 ISAPI 動(dòng)態(tài)鏈接庫。7. 小結 正如Internet和WEB技術(shù)一樣,ActiveX技術(shù)的發(fā)展日新月異,新的更強大的開(kāi)發(fā)工具使得服務(wù)器及客戶(hù)端的應用開(kāi)發(fā)、網(wǎng)站建設變得更簡(jiǎn)單,并容易擴展和重用。隨著(zhù)Microsoft的包括Windows NT、Internet Information Server、Active Server Pages以及Microsoft FrontPage、Internet Explorer等組件在內完整的Internet解決方案被廣泛使用,ActiveX技術(shù)將會(huì )有更大的發(fā)展。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報 。