CH11
Web Services 的應用
Web Services的應用 何謂Web Services 究竟,什麼是Web Services?你可以想像一下,就技術面而言, 對於程式設計師來說,你可以把Web Services想成是一組架在某個網站上的服務(重點是架設在遠端、也就是在網際網路或是區域網路中),開發人員可以將其視為一組元件、用起來像是使用My類別或是SqlAdapter類別所產生的物件一樣。在撰寫程式的時候,使用方式可以像是使用Local端元件一般。 我們只需要在VS2005當中引用它,然後就可以宣告出一個物件,並且使用該物件(Web Services)提供的功能(Method, Event, Property)來完成你的程式。但是請注意,這時候,這個物件根本不在你的電腦上,在哪裡?依舊在遠端的網際網路之中的某網站上! 你不需要下載任何的.dll元件,或是在本機上登錄該物件,同樣的,程式開發完成之後,你的使用者在使用你所寫好的程式時,也不需要再安裝或註冊任何物件,唯一需要的,只是連上網際網路(因為提供該Web Services的是一個位於遠端網際網路上的網站)。
Web Services的應用 Web Services的優點 Web Services的優點包含底下: 也不需要安裝在使用者的機器上就可以使用。 遠端的Web Services如果升級,你的程式會立即升級,不需要請使用者重新安裝什麼升級元件,或是下載任何東西。 達成真正的分散式運算,特定的某些功能,交給特定的主機來做(運算或處理),並且是跨網際網路的合作。
Web Services的應用 如何讓程式使用Web Services 在.NET平台上,使用某個遠端的Web Services就像是使用.NET元件一樣簡單,只有幾個簡單的三步驟: 從提供這個Web Services服務的網址引用該服務網址定義(例如:HTTP://WebServices.StudyHost.Com/ZipCodeWebService.asmx) 在程式裡面宣告一個代表該服務的物件 像使用一般.NET元件的方式一樣去使用它!
Web Services的應用 在VB.NET中引用Web Services 請先完成上方的表單,在VS2005當中點選主選單上的…
Web Services的應用 在VB.NET中引用Web Services 出現下圖中的視窗之後,請在網址列填入: 『HTTP://WebServices.StudyHost.Com/ZipCodeWebService.asmx』
Web Services的應用 在VB.NET中引用Web Services 完成後,您會發現到專案視窗中多出了底下這些東西:
Web Services的應用 在VB.NET中使用Web Services 叫用Web Services的程式碼 EX:CH11-01\Form1.vb 0000: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 0001: '建立 Web Services 0002: Dim ZipCode As New com.studyhost.webservices.WebService '建立 Web Services 物件實體 0003: Dim Cities As Array '儲存城市名稱用的陣列 0004: 0005: Cities = ZipCode.GetAllCity '從遠端取得所有的城市名稱 0006: 0007: Me.ComboBox1.Items.Clear() '清空 ComboBox1 0008: For i As Integer = LBound(Cities) To UBound(Cities) '填入 ComboBox1 0009: Me.ComboBox1.Items.Add(Cities(i)) 0010: Next 0011: End Sub
Web Services的應用 在VB.NET中宣告Web Services 宣告Web Services的程式碼
Web Services的應用 在VB.NET中宣告Web Services 使用Web Services的程式碼 0005: Cities = ZipCode.GetAllCity ‘從遠端取得台灣所有的城市名稱 物件的方法(Method),由提供Web Services的單位提供 Web Services物件名稱 完成之後,您在程式中使用了遠在不知名(HTTP://www.studyhost.com)地方的網站提供的Web Services,就好像是在使用Local端使用.NET類別庫一樣便利,這就是Web Services 威力。 您的程式再也不需要準備一份郵遞區號資料庫,或是對照表,也不需要將這些資料安裝在用戶端,就可以直接透過程式來使用。倘若資料有更新,您的城市也完全不需要調整,更新的只是遠端伺服器上的那份資料庫,由於您的程式是呼叫遠端所提供的Web Services,因此完全不需要更新或修改。
Web Services的應用 Web Services的服務描述 您可以開啟底下的網址,看這個Web Services所提供的所有Method :『HTTP://WebServices.StudyHost.Com/ZipCodeWebService.asmx』 您點選這邊,則可以看到更完整的服務定義(以XML表達),VS2005就是透過這份定義幫我們建立對應的物件提供我們進行遠端呼叫
Web Services 的開發
Web Services的應用 利用VB.NET開發Web Services 請注意,如果您使用的是Visual Basic 2005 Express版本,則無法建立Web Services,請先下載安裝Visual Web Developer,或使用Visual Studio 2005。 Visual Web Developer下載網址為: 『http://www.microsoft.com/taiwan/vstudio/express/vwd』
Web Services的應用 利用VB.NET開發Web Services 請先在Visual Studio 2005中建立一個新的『網站』(注意,並非新的專案,而是網站):
Web Services的應用 利用VB.NET開發Web Services 完成後,接著在這個網站中加入一個新項目,並選擇『Web服務』: 建議您若尚未熟悉類別的開發,可先把此核選項目取消。 這裡初步指定了Web Services的名稱
Web Services的應用 利用VB.NET開發Web Services 完成之後,您會看到一個最簡單的Web Services範本:
Web Services的應用 利用VB.NET開發Web Services 假設您直接儲存,並且在方案總管中,選擇該.asmx檔案,並且在瀏覽器中檢視: 非常輕鬆容易,WebServices的開發已經完成,您可以從遠端引用呼叫
Web Services的應用 Web Services的佈署 由於Web Services本質上是網站的一部分,因此在佈署時,您必須將其安裝在IIS伺服器上(亦可佈署在虛擬主機上)。 同時您必須為該Web Services申請Domain Name,指向其主機IP位置,在遠端的VB程式才可以呼叫引用。