Web服務是構造分布式、模塊化應用程序的最新技術發展趨勢。Web服務可以把業務邏輯劃分一個一個的組件,然后在整個因特網的范圍上執行其功能。本文就是向讀者展示一個簡單的.NET Web服務創建過程。
假如你過去曾經構造過微軟世界的COM組件,那么你對創造可重用對象中間層的概念應該是比較熟悉了,正是可重用對象可以讓開發者重用代碼、利用由此帶來的軟件開發靈活性。這些組件能作為客戶應用程序放在同一計算機上執行,或者以DCOM的形式在分離的機器上執行。
現在的.NET體系則把以上的概念大大推進了一步,.NET允許你把組件放在遠程計算機上,而且你同這些遠程計算機之間僅存在HTTP連接;換句話說,這些遠程機器可能并不在企業網絡內。由于SOAP協議的出現,DCOM的二進制標準也被基于文本和XML的調用語法代替了,新的技術標準允許客戶采用任何操作系統調用Web服務,而這些Web服務則運行在任何操作系統上。
用.NET打造Web服務 微軟早在大約兩年前就發布了針對Visual Basic 6的SOAP工具包,但是,.NET出現后則進一步把構造Web服務的任務變得更方便了。對Web服務的支持已經內置在了.NET基礎框架之內,這意味著任何.NET語言都能創建Web服務。Web服務甚至成為了Visual Studio.NET中的一種工程類型。就象大多數.NET工程類型一樣,你甚至能采用記事本這樣的文本編輯程序創建全部應用程序。
為了創建Web服務,你的開發計算機上至少需要安裝了ASP.NET引擎。這種引擎屬于.NET框架和Visual Studio.NET的一部分。如果你手頭沒有ASP.NET引擎,那么你不妨從asp.net網站下載ASP.NET。下載軟件只能在Windows 2000和Windows XP上使用。安裝了ASP.NET之后,你要不創建一個虛擬目錄要不直接在inetpub\wwwroot目錄下創建自己的文件,我舉的例子就用后面的方法。
最近看過倫敦一家公司的網站,他們網頁上的價格單位是英磅。頁面上有一個轉換工具允許你把英鎊換算為美元。這個轉換工具就是一個絕佳的Web服務實例。現在就請打開記事本程序準備創建XML Web服務吧。
創建Web服務的第一步是標識Web服務、說明服務使用的語言同時創建的類的名字。在這個例子中,采用的Web服務編程語言是Visual Basic.NET,類的名字是ConvertMoney。你的第一行代碼如下所示:
<%@ WebService Language=”VB” Class=”ConvertMoney” %>
接著,采用Imports聲明導入System.Web.Services名稱空間。這樣做才能讓你按照名字索引WebService等類而無須索引整個名稱空間。該行代碼如下所示: Imports System.Web.Services
然后創建Web服務自身的shell。WebService類在你自己的類的名字前加上前綴,代碼如下:
<WebService()>Public Class ConvertMoney ‘ code will go here End Class
到這一步幾乎就可以增加類的功能了,但是你還得先增加一行關鍵代碼。你必須繼承WebService基類,這是.NET框架的一部分。這樣做所實現的功能令你的服務類可以被任何Internet客戶調用。增加Inherits聲明之后,所有的代碼如下所示。
<%@ WebService Language=”VB” Class=”ConvertMoney” %> Imports System.Web.Services <WebService()>Public Class ConvertMoney Inherits WebService ‘ code will go here End Class 現在就可以給你的類添加功能了。在這里,你創建了一個簡單函數接受英鎊的貨幣量然后返回美元值。通常,你還應該在數據庫內找到兩種貨幣之間的交換匯率。在上面的例子里,你在代碼中直接把匯率設定為1英鎊可兌換1.44美元。在以上代碼塊中增加代碼之后全部Web服務代碼如下所示。 <%@ WebService Language=”VB” Class=”ConvertMoney” %> Imports System.Web.Services <WebService()>Public Class ConvertMoney Inherits WebService <WebMethod()>Public Function _ PoundsToDollars(BritishPounds As Double) As Double Return BritishPounds * 1.44 End Function End Class
代碼編寫完畢,你把代碼文件存放在某個虛擬目錄下(通常是c:\inetpub\wwwroot)即可。把文件保存為Converter.asmx。ASMX文件擴展名是.NET Web服務的標記。保存文件之后,你的Web服務就準備露臉了。
|