詳細(xì)描述VB.NET Web服務(wù)
在向大家詳細(xì)介紹VB.NET Web服務(wù)之前,首先讓大家了解下Windows Forms,然后全面介紹VB.NET Web服務(wù)。
面向Web 的支持除了Windows Forms 新引擎之外,.NET 還包含了一個(gè)專門為構(gòu)造Web 窗體設(shè)計(jì)的窗體引擎,稱為Web Forms.這個(gè)引擎的目標(biāo)在于讓用戶能夠象創(chuàng)建傳統(tǒng)Windows 桌面應(yīng)用的窗體一樣方便地創(chuàng)建Web 窗體。Web Forms是一種ASP.NET 技術(shù),通過它我們可以使用熟悉的RAD (快速程序開發(fā))工具構(gòu)造出帶有執(zhí)行代碼的窗體。不過,窗體中的ASP.NET 代碼以編譯方式在服務(wù)器端運(yùn)行,經(jīng)過處理后把結(jié)果HTML發(fā)送給支持HTML 3.2的瀏覽器。
客戶端事件數(shù)據(jù)由底層框架截獲并發(fā)送到服務(wù)器。這意味著應(yīng)用界面不再受瀏覽器類型的約束,意味著有大量UI工具可供使用,意味著用戶可以充分發(fā)揮現(xiàn)有的窗體制作技巧。如果應(yīng)用沒有必要做到瀏覽器中立,那么它就可以利用IE瀏覽器的各種特色。有了Web Forms ,我們將能夠更輕松地為那些具有Web 功能的應(yīng)用構(gòu)造出更好、更豐富的用戶界面。
VB.NET中另外一個(gè)面向Web 的重要特色是Web服務(wù)。在Microsoft 的宣傳中,Web服務(wù)被推崇為之所以要采用.NET 技術(shù)的重要理由之一。事實(shí)上,從根本上來說Web服務(wù)是一種類似COM 的、通過Web服務(wù)器和標(biāo)準(zhǔn)協(xié)議發(fā)布的對(duì)象。當(dāng)然,VB.NET Web服務(wù)并不是嚴(yán)格意義上的COM 對(duì)象,但兩者作用方式類似。Microsoft 期待著各類公司都以Web服務(wù)方式提供服務(wù),期待著未來創(chuàng)建應(yīng)用時(shí)只需簡(jiǎn)單地“粘合”各種服務(wù),就象今天借助Office和支持VBA 的應(yīng)用通過VBA 構(gòu)造新應(yīng)用一樣簡(jiǎn)單快捷。
從Microsoft PDC (Professional Developers Conference,專業(yè)開發(fā)者大會(huì))的一個(gè)演示中,我們可以看出Microsoft 希望開發(fā)者如何粘合各種Web服務(wù)。
在這個(gè)演示中,一個(gè)假想的醫(yī)生以Web服務(wù)形式發(fā)布其時(shí)間表,示范如何通過Web 用智能電話和醫(yī)生訂立約會(huì)。VB.NET還允許查詢服務(wù)器,提取服務(wù)器支持的所有服務(wù)的元數(shù)據(jù)。Web服務(wù)描繪了Microsoft 野心勃勃的戰(zhàn)略,然而,唯有時(shí)間才能告訴我們Microsoft 是否在大范圍推廣VB.NET Web服務(wù)上取得了成功。但不管如何,這個(gè)想法本身看來有著美好的前途。
為了減少與封裝和分發(fā)應(yīng)用有關(guān)的問題,如令人畏懼的DLL Hell問題(在共享DLL 的應(yīng)用之間,由于一個(gè)應(yīng)用的升級(jí)而導(dǎo)致另一個(gè)應(yīng)用無法正常運(yùn)行的情況),Microsoft 作出了種種努力,它同樣也帶來了美好的希望。所有.NET 應(yīng)用都封裝為程序集(Assembly)。程序集包含了描述各種運(yùn)行需求的元數(shù)據(jù)。這種元數(shù)據(jù)稱為manifest,其中包括:程序集的標(biāo)識(shí)信息(名稱,版本等),列出了所有文件依賴關(guān)系以及文件位置和文件版本的文件清單,外部依賴信息(帶有描述程序集必須用到、但開發(fā)者沒有自己創(chuàng)建的DLL 以及其他資源的數(shù)據(jù))。程序集是通過manifest自我描述的,因此.NET 應(yīng)用的運(yùn)行并不需要修改注冊(cè)表。換句話說,.NET 應(yīng)用不再要求注冊(cè)組件。在最理想的情況下,客戶機(jī)器上已經(jīng)有了。
NET 運(yùn)行環(huán)境,部署一個(gè)復(fù)雜的應(yīng)用簡(jiǎn)單到只需復(fù)制一個(gè)文件夾到目標(biāo)機(jī)器。使用程序集的另外一個(gè)優(yōu)點(diǎn)是:不同的應(yīng)用可以擁有同一DLL 的不同版本,所有這些應(yīng)用都互不干涉地在同一臺(tái)機(jī)器上運(yùn)行。如果它能夠按照預(yù)期那樣獲得成功,DLL Hell和可怕的版本問題都將成為歷史。
VB.NET代表著VB的一次重大飛躍。盡管如此,把VB.NET看成是一種有著熟悉語法的新語言而不是對(duì)舊語言的簡(jiǎn)單升級(jí)或許是對(duì)待VB.NET較為正確的心態(tài)。
【編輯推薦】