當前位置:工程項目OA系統(tǒng) > 泛普各地 > 重慶OA系統(tǒng) > 重慶OA行業(yè)資訊
創(chuàng)建.NET Web服務(wù)
創(chuàng)建.NET Web服務(wù)
Web服務(wù)是構(gòu)造分布式、模塊化應(yīng)用程序的最新技術(shù)發(fā)展趨勢。Web服務(wù)可以把業(yè)務(wù)邏輯劃分一個一個的組件,然后在整個因特網(wǎng)的范圍上執(zhí)行其功能。本文就是向讀者展示一個簡單的.NET Web服務(wù)創(chuàng)建過程。
假如你過去曾經(jīng)構(gòu)造過微軟世界的COM組件,那么你對創(chuàng)造可重用對象中間層的概念應(yīng)該是比較熟悉了,正是可重用對象可以讓開發(fā)者重用代碼、利用由此帶來的軟件開發(fā)靈活性。這些組件能作為客戶應(yīng)用程序放在同一計算機上執(zhí)行,或者以DCOM的形式在分離的機器上執(zhí)行。
現(xiàn)在的.NET體系則把以上的概念大大推進了一步,.NET允許你把組件放在遠程計算機上,而且你同這些遠程計算機之間僅存在HTTP連接;換句話說,這些遠程機器可能并不在企業(yè)網(wǎng)絡(luò)內(nèi)。由于SOAP協(xié)議的出現(xiàn),DCOM的二進制標準也被基于文本和XML的調(diào)用語法代替了,新的技術(shù)標準允許客戶采用任何操作系統(tǒng)調(diào)用Web服務(wù),而這些Web服務(wù)則運行在任何操作系統(tǒng)上。
用.NET打造Web服務(wù)
微軟早在大約兩年前就發(fā)布了針對Visual Basic
6的SOAP工具包,但是,.NET出現(xiàn)后則進一步把構(gòu)造Web服務(wù)的任務(wù)變得更方便了。對Web服務(wù)的支持已經(jīng)內(nèi)置在了.NET基礎(chǔ)框架之內(nèi),這意味著任何.NET語言都能創(chuàng)建Web服務(wù)。Web服務(wù)甚至成為了Visual
Studio.NET中的一種工程類型。就象大多數(shù).NET工程類型一樣,你甚至能采用記事本這樣的文本編輯程序創(chuàng)建全部應(yīng)用程序。
為了創(chuàng)建Web服務(wù),你的開發(fā)計算機上至少需要安裝了ASP.NET引擎。這種引擎屬于.NET框架和Visual Studio.NET的一部分。如果你手頭沒有ASP.NET引擎,那么你不妨從asp.net網(wǎng)站下載ASP.NET。下載軟件只能在Windows 2000和Windows XP上使用。安裝了ASP.NET之后,你要不創(chuàng)建一個虛擬目錄要不直接在inetpubwwwroot目錄下創(chuàng)建自己的文件,我舉的例子就用后面的方法。
最近看過倫敦一家公司的網(wǎng)站,他們網(wǎng)頁上的價格單位是英磅。頁面上有一個轉(zhuǎn)換工具允許你把英鎊換算為美元。這個轉(zhuǎn)換工具就是一個絕佳的Web服務(wù)實例?,F(xiàn)在就請打開記事本程序準備創(chuàng)建XML Web服務(wù)吧。
創(chuàng)建Web服務(wù)的第一步是標識Web服務(wù)、說明服務(wù)使用的語言同時創(chuàng)建的類的名字。在這個例子中,采用的Web服務(wù)編程語言是Visual Basic.NET,類的名字是ConvertMoney。你的第一行代碼如下所示:
<%@ WebService Language=”VB” Class=”ConvertMoney” %>
接著,采用Imports聲明導(dǎo)入System.Web.Services名稱空間。這樣做才能讓你按照名字索引WebService等類而無須索引整個名稱空間。該行代碼如下所示:
Imports System.Web.Services
然后創(chuàng)建Web服務(wù)自身的shell。WebService類在你自己的類的名字前加上前綴,代碼如下:
<WebService()>Public Class ConvertMoney
‘ code will go here
End
Class
到這一步幾乎就可以增加類的功能了,但是你還得先增加一行關(guān)鍵代碼。你必須繼承WebService基類,這是.NET框架的一部分。這樣做所實現(xiàn)的功能令你的服務(wù)類可以被任何Internet客戶調(diào)用。增加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ù)接受英鎊的貨幣量然后返回美元值。通常,你還應(yīng)該在數(shù)據(jù)庫內(nèi)找到兩種貨幣之間的交換匯率。在上面的例子里,你在代碼中直接把匯率設(shè)定為1英鎊可兌換1.44美元。在以上代碼塊中增加代碼之后全部Web服務(wù)代碼如下所示。
<%@
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服務(wù)的標記。保存文件之后,你的Web服務(wù)就準備露臉了。
測試服務(wù)
現(xiàn)在準備好測試Web服務(wù)。期間你不必通過顯式的編譯全過程,只需要地在目錄下保存文件然后調(diào)用它即可。ASP.NET會即時編譯代碼,就象ASP的處理一樣。不過你得清楚地知道:編譯的結(jié)果是本機代碼,而傳統(tǒng)ASP文件處理采用的是解釋方式,兩者之間有重大差別。
為了調(diào)用最新創(chuàng)建的服務(wù),請打開你的瀏覽器并輸入服務(wù)路徑,包括ASMX文件的名字。如果你把服務(wù)放了在c:inetpubwwwroot目錄下,那么你要在瀏覽器地址欄上鍵入http://localhost/converter.asmx。
在調(diào)用服務(wù)時會顯示一幅包含大量信息的網(wǎng)頁。一開始這可能會令你覺得有點糊涂:不管怎么說,你還沒有為這種服務(wù)創(chuàng)造過HTML網(wǎng)頁。其實,你根本不必創(chuàng)建測試網(wǎng)頁,因為.NET框架已經(jīng)幫你這個忙了。當你直接通過瀏覽器調(diào)用Web服務(wù)時,框架就會為你產(chǎn)生一個網(wǎng)頁并通過它向你顯示W(wǎng)eb服務(wù)的信息,同時列出所有可用的方法。圖A即是Web服務(wù)的網(wǎng)頁。
圖A
調(diào)用最新創(chuàng)建的Web服務(wù)
在這個例子中列出的方法沒什么特別之處,因為僅有一個方法(PoundsToDollars)。鼠標點擊這個方法會顯示另一個網(wǎng)頁,如圖B所示。這一頁就是該特定方法的測試頁,其中包括對應(yīng)方法接受的每個參數(shù)的文本框。現(xiàn)在請在文本框中輸入“50”并按下Invoke按鈕。
圖B
選中PoundsToDollars方法
單擊Invoke按鈕會打開一個新的瀏覽器窗口,其中顯示了一些XML代碼。這些XML代碼是由Web服務(wù)返回的其中包括了服務(wù)結(jié)果。返回的XML代碼如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<double xmlns="72http://tempuri.org/">72</double>
返回結(jié)果確實不一定非要采取對用戶友好的格式,因為你通常不會從瀏覽器直接調(diào)用Web服務(wù)。相反,你往往從應(yīng)用程序調(diào)用Web服務(wù)同時適當?shù)靥幚矸祷氐腦ML代碼。不過,也很容易從上面的代碼看出Web服務(wù)已經(jīng)把50英鎊轉(zhuǎn)換成了72美元。
小結(jié)
上面舉的這個例子很簡單,它完成的任務(wù)是:創(chuàng)建一個組件,如果組件放在Web服務(wù)器上就可以被世界上任何地方的任何人訪問。客戶不必裝載COM 或DCOM;甚至也不必擁有Windows客戶程序。任何能創(chuàng)建HTTP連接的客戶程序都能調(diào)用Web服務(wù)并且收到結(jié)果。這種功能開辟了創(chuàng)建分布式應(yīng)用程序、實現(xiàn)平臺之間互操作的全新領(lǐng)域。
- 1杜絕管理漏洞 打響信息化之戰(zhàn)(三)
- 2母子公司之間的知識管控模式探討
- 3網(wǎng)絡(luò)銀行在金融信息化中改變了什么
- 4業(yè)內(nèi)人士認為網(wǎng)絡(luò)服務(wù)是2002年IT熱點
- 5鋼鐵企業(yè)erp系統(tǒng)多少錢采購系統(tǒng)分析與流程設(shè)計
- 6SOA過分吹噓已成過去時 益處正在顯現(xiàn)
- 7掌握ITIL的最佳實踐四要素
- 8企業(yè)實施:信息化怎樣破冰(二)
- 9XX市健康教育所微信公眾平臺總體需求
- 10調(diào)查:企業(yè)應(yīng)用SOA勢頭正在強勁增長
- 11重慶OA幫助企業(yè)雇傭員工頭腦(Kevin)
- 12重慶泛普軟件房地產(chǎn)OA辦公軟件中實現(xiàn)標桿企業(yè)的項目關(guān)鍵節(jié)點(集
- 13物流配送成本的監(jiān)控
- 14九要素構(gòu)建城市數(shù)字化管理方案
- 15流程審批OA辦公系統(tǒng)解決財務(wù)報銷等問題
- 16公司強有力的執(zhí)行力,離不開自身的OA協(xié)同管理平臺
- 17企業(yè)級項目管理體系建設(shè)概述
- 18精益生產(chǎn)模式與企業(yè)全面質(zhì)量管理
- 19眾說紛紜正版化不能等同于國產(chǎn)化
- 20公文管理是重慶集團OA軟件系統(tǒng)的重要功能之一
- 21企業(yè)如何規(guī)避IT外包風險
- 22[原創(chuàng)]“黑盒”還是“白盒”——企業(yè)信息部門的IT治理之路
- 23重慶律師事務(wù)所OA軟件建設(shè)典型案例分析
- 24BPM的主導(dǎo)權(quán)應(yīng)該由誰來掌握?
- 25SaaS、PaaS、云計算 掀起你的蓋頭來
- 26泛華集團的混業(yè)路徑 統(tǒng)一支撐平臺
- 27Broadview COSSIT運維管理故事
- 28研究院OA辦公自動化系統(tǒng)是怎么樣的呢
- 29ERP項目實施 要跑好哪“三匹馬”?
- 30中國挑戰(zhàn)美國制造業(yè)霸主地位
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
版權(quán)所有:泛普軟件 渝ICP備14008431號-2 渝公網(wǎng)安備50011202501700號 咨詢電話:400-8352-114