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