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