監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關閉

創(chuàng)建.NET Web服務

申請免費試用、咨詢電話:400-8352-114

AMTeam.org

創(chuàng)建.NET Web服務

Web服務是構造分布式、模塊化應用程序的最新技術發(fā)展趨勢。Web服務可以把業(yè)務邏輯劃分一個一個的組件,然后在整個因特網的范圍上執(zhí)行其功能。本文就是向讀者展示一個簡單的.NET Web服務創(chuàng)建過程。

假如你過去曾經構造過微軟世界的COM組件,那么你對創(chuàng)造可重用對象中間層的概念應該是比較熟悉了,正是可重用對象可以讓開發(fā)者重用代碼、利用由此帶來的軟件開發(fā)靈活性。這些組件能作為客戶應用程序放在同一計算機上執(zhí)行,或者以DCOM的形式在分離的機器上執(zhí)行。

現(xiàn)在的.NET體系則把以上的概念大大推進了一步,.NET允許你把組件放在遠程計算機上,而且你同這些遠程計算機之間僅存在HTTP連接;換句話說,這些遠程機器可能并不在企業(yè)網絡內。由于SOAP協(xié)議的出現(xiàn),DCOM的二進制標準也被基于文本和XML的調用語法代替了,新的技術標準允許客戶采用任何操作系統(tǒng)調用Web服務,而這些Web服務則運行在任何操作系統(tǒng)上。

用.NET打造Web服務

微軟早在大約兩年前就發(fā)布了針對Visual Basic 6的SOAP工具包,但是,.NET出現(xiàn)后則進一步把構造Web服務的任務變得更方便了。對Web服務的支持已經內置在了.NET基礎框架之內,這意味著任何.NET語言都能創(chuàng)建Web服務。Web服務甚至成為了Visual Studio.NET中的一種工程類型。就象大多數(shù).NET工程類型一樣,你甚至能采用記事本這樣的文本編輯程序創(chuàng)建全部應用程序。

為了創(chuàng)建Web服務,你的開發(fā)計算機上至少需要安裝了ASP.NET引擎。這種引擎屬于.NET框架和Visual Studio.NET的一部分。如果你手頭沒有ASP.NET引擎,那么你不妨從asp.net網站下載ASP.NET。下載軟件只能在Windows 2000和Windows XP上使用。安裝了ASP.NET之后,你要不創(chuàng)建一個虛擬目錄要不直接在inetpubwwwroot目錄下創(chuàng)建自己的文件,我舉的例子就用后面的方法。

最近看過倫敦一家公司的網站,他們網頁上的價格單位是英磅。頁面上有一個轉換工具允許你把英鎊換算為美元。這個轉換工具就是一個絕佳的Web服務實例。現(xiàn)在就請打開記事本程序準備創(chuàng)建XML Web服務吧。

創(chuàng)建Web服務的第一步是標識Web服務、說明服務使用的語言同時創(chuàng)建的類的名字。在這個例子中,采用的Web服務編程語言是Visual Basic.NET,類的名字是ConvertMoney。你的第一行代碼如下所示:

<%@ WebService Language=”VB” Class=”ConvertMoney” %>


接著,采用Imports聲明導入System.Web.Services名稱空間。這樣做才能讓你按照名字索引WebService等類而無須索引整個名稱空間。該行代碼如下所示:

Imports System.Web.Services

然后創(chuàng)建Web服務自身的shell。WebService類在你自己的類的名字前加上前綴,代碼如下:

<WebService()>Public Class ConvertMoney
‘ code will go here
End Class

到這一步幾乎就可以增加類的功能了,但是你還得先增加一行關鍵代碼。你必須繼承WebService基類,這是.NET框架的一部分。這樣做所實現(xiàn)的功能令你的服務類可以被任何Internet客戶調用。增加Inherits聲明之后,所有的代碼如下所示。


<%@ WebService Language=”VB” Class=”ConvertMoney” %>
Imports System.Web.Services
<WebService()>Public Class ConvertMoney
Inherits WebService
‘ code will go here
End Class

現(xiàn)在就可以給你的類添加功能了。在這里,你創(chuàng)建了一個簡單函數(shù)接受英鎊的貨幣量然后返回美元值。通常,你還應該在數(shù)據(jù)庫內找到兩種貨幣之間的交換匯率。在上面的例子里,你在代碼中直接把匯率設定為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:inetpubwwwroot)即可。把文件保存為Converter.asmx。ASMX文件擴展名是.NET Web服務的標記。保存文件之后,你的Web服務就準備露臉了。

測試服務

現(xiàn)在準備好測試Web服務。期間你不必通過顯式的編譯全過程,只需要地在目錄下保存文件然后調用它即可。ASP.NET會即時編譯代碼,就象ASP的處理一樣。不過你得清楚地知道:編譯的結果是本機代碼,而傳統(tǒng)ASP文件處理采用的是解釋方式,兩者之間有重大差別。

為了調用最新創(chuàng)建的服務,請打開你的瀏覽器并輸入服務路徑,包括ASMX文件的名字。如果你把服務放了在c:inetpubwwwroot目錄下,那么你要在瀏覽器地址欄上鍵入http://localhost/converter.asmx。

在調用服務時會顯示一幅包含大量信息的網頁。一開始這可能會令你覺得有點糊涂:不管怎么說,你還沒有為這種服務創(chuàng)造過HTML網頁。其實,你根本不必創(chuàng)建測試網頁,因為.NET框架已經幫你這個忙了。當你直接通過瀏覽器調用Web服務時,框架就會為你產生一個網頁并通過它向你顯示Web服務的信息,同時列出所有可用的方法。圖A即是Web服務的網頁。

圖A

 

調用最新創(chuàng)建的Web服務


在這個例子中列出的方法沒什么特別之處,因為僅有一個方法(PoundsToDollars)。鼠標點擊這個方法會顯示另一個網頁,如圖B所示。這一頁就是該特定方法的測試頁,其中包括對應方法接受的每個參數(shù)的文本框。現(xiàn)在請在文本框中輸入“50”并按下Invoke按鈕。

圖B


 

選中PoundsToDollars方法

單擊Invoke按鈕會打開一個新的瀏覽器窗口,其中顯示了一些XML代碼。這些XML代碼是由Web服務返回的其中包括了服務結果。返回的XML代碼如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<double xmlns="72http://tempuri.org/">72</double>

返回結果確實不一定非要采取對用戶友好的格式,因為你通常不會從瀏覽器直接調用Web服務。相反,你往往從應用程序調用Web服務同時適當?shù)靥幚矸祷氐腦ML代碼。不過,也很容易從上面的代碼看出Web服務已經把50英鎊轉換成了72美元。

小結

上面舉的這個例子很簡單,它完成的任務是:創(chuàng)建一個組件,如果組件放在Web服務器上就可以被世界上任何地方的任何人訪問。客戶不必裝載COM 或DCOM;甚至也不必擁有Windows客戶程序。任何能創(chuàng)建HTTP連接的客戶程序都能調用Web服務并且收到結果。這種功能開辟了創(chuàng)建分布式應用程序、實現(xiàn)平臺之間互操作的全新領域。

發(fā)布:2007-03-25 10:25    編輯:泛普軟件 · xiaona    [打印此頁]    [關閉]
相關文章: