當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 重慶OA系統(tǒng) > 重慶OA行業(yè)資訊
透視和調(diào)整你的企業(yè)和商務(wù)系統(tǒng)(Ⅳ:WebService、dotNET)
透視和調(diào)整你的企業(yè)和商務(wù)系統(tǒng)(Ⅳ:WebService、dotNET)
到上一篇為止,我們已經(jīng)完成了在第一篇(Analyzing、Requirement)所說的三個(gè)過程中的第二步了,這一篇開始我們可以用dotNET的WebService方式來重新考慮以前的Authors WebService,技術(shù)上我傾向于MS的建議,那就是在實(shí)現(xiàn)和設(shè)計(jì)Web Services時(shí)將ASP.NET的WebService作為首選。所以這一篇我們將主要考察ASP.NET的WebService.
這要從第二篇的分析開始,原來當(dāng)我用SOAP Toolkit生成了WebService后,我就在Dereksvr機(jī)器上用VS.NET的Add Web
Reference...輸入http://henrysvr/Authors/Authors.wsdl,VS.NET也是可以發(fā)現(xiàn)這個(gè)WebService,但是由于ADODB.Recordset的問題,它無法生成Proxy類,當(dāng)時(shí)我以為SOAP
Toolkit生成的WSDL并不完全兼容很快放棄了繼續(xù)向下實(shí)驗(yàn)了。幾天之后我又做了另外一種嘗試:我用SOAP
Toolkit重新生成了WebService的WSDL文件,這次我沒有把返回ADODB.Recordset的函數(shù)放到里面,也就是全部都是在第二篇說的標(biāo)志類型,然后我又在VS.NET中重復(fù)了上述的步驟,這一次OK了,VS.NET成功的生成了Proxy類,我生成了一個(gè)小例子測試,結(jié)果是成功的。那么結(jié)論是:對于第二類返回特殊類型的(也就是第二篇中用CTM的類型)我們要另外處理,對于第一種類型的我們只要用MS
SOAP
Toolkit生成WSDL文件,然后在IIS中設(shè)置好,就可以成為一個(gè)WebService,在消費(fèi)這種WebService上我們不用特殊處理。不僅VS.NET可以直接使用,其他支持WebService規(guī)范的也是可以使用的(只能說估計(jì)。Java?Delphi?抱歉我沒有試過)下面是我測試成功的例子的拷圖,感覺還不錯(cuò),連中文也不用什么特殊處理。
Private
Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button2.Click
Dim obj As henrysvr.Authors
Dim retString As String
Dim SendStr As String
SendStr = echoTxt.Text
obj = New henrysvr.Authors()
retString =
obj.Echo(SendStr)
MessageBox.Show(retString)
End Sub
好了,剩下的又是ADODB.Recordset的問題,如果處理這個(gè)COM對象呢?之前我們已經(jīng)用了一種方法,dotNET作為Client,這次我換一種方式,生成一個(gè)ASP.NET方式的WebService,然后引用bus_Authors組件,對那些返回記錄集的函數(shù)在這個(gè)WebService中做一個(gè)封裝。比如:
<WebMethod()>
Public Function Version() As String
Dim obj As bus_Authors.Authors
obj =
New bus_Authors.Authors()
Version = obj.Version
End Function
<WebMethod()> Public Function GetAuthors() As DataSet
Dim obj As bus_Authors.Authors
Dim rst As ADODB.Recordset
Dim myDataAdapter As OleDb.OleDbDataAdapter
Dim retDataset As DataSet
obj = New bus_Authors.Authors()
rst = New ADODB.Recordset()
myDataAdapter = New OleDb.OleDbDataAdapter()
retDataset = New
DataSet()
rst = obj.GetAuthors()
myDataAdapter.Fill(retDataset, rst,
"GetAuthors")
GetAuthors = retDataset
End
Function
看的出來,就是簡單的調(diào)用Biz組件,然后將ADODB.Recordset轉(zhuǎn)換成DataSet。
有關(guān)引用Bus_Authors,你可以在目前的這部機(jī)器上安裝我們在第一篇Export出來的Server或Proxy都可以,我為了方便,直接使用了Server包。剩下來的就十分簡單了,需要生成一個(gè)測試程序,這個(gè)就簡單了,參照Carl
Franklin的錄像就可以了。算是也自己練習(xí)一次haha。
(具體參見http://www.csdn.net/develop/read_article.asp?id=10816
)
下面是運(yùn)行的代碼和拷圖:
Private Sub Page_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize
the page here
Dim rs As DataSet
Dim obj As New localhost.Authors()
rs = obj.GetAuthors()
DataGrid1.DataSource =
rs
DataGrid1.DataBind()
End Sub
至于VB版本的客戶端也是可以的,你可以在另外一部機(jī)器上用下面的代碼進(jìn)行測試:
Dim RetXML as Object
Dim
SoapClient As MSSOAPLib.SoapClient
Set SoapClient = New
MSSOAPLib.SoapClient
Call SoapClient.mssoapinit("http://Dereksvr/Authors/Authors.asmx?WSDL")
Set RetXML = SoapClient.GetAuthors()
如果成功返回的應(yīng)當(dāng)是一個(gè)IXMLDOMNodeList
里面包括整個(gè)的Dataset結(jié)構(gòu)和23條數(shù)據(jù),至于具體的顯示這個(gè)結(jié)果集的VB程序就不再說了,以后也許會(huì)專門有文章論述如何將dotNET的DataSet轉(zhuǎn)化成VB可以識(shí)別的問題,比如會(huì)有FillListView(
lstv As Control , obj as Object)之類的函數(shù)將這個(gè)XML結(jié)構(gòu)填充到VB6
ListView或Grid控件中,這里我就不詳細(xì)說了。具體的你還可以在其他機(jī)器上使用http://Dereksvr/Authors/Authors.asmx
然后選取GetAuthors然后點(diǎn)擊調(diào)用獲得結(jié)果,也可以直接點(diǎn):http://Dereksvr/Authors/Authors.asmx/GetAuthors?
你在IE窗口上可以明顯的看到這個(gè)返回結(jié)果的XML文檔(從中你可以看到DataSet最原始的構(gòu)造haha)。
掌握不同返回類型分別處理的原則,無論是MS SOAP Toolkit 還是ASP.NET WebService都是可以被我們所用??雌饋硎褂胐otNET會(huì)簡單和省力許多。我想隨著dotNET技術(shù)的推進(jìn),越來越多的人會(huì)考慮用dotNET技術(shù)實(shí)現(xiàn)一些新的商務(wù)或企業(yè)應(yīng)用系統(tǒng),至少我會(huì)這樣。也許這些例子是想說明從現(xiàn)在的Windows DNA構(gòu)架切換到新的dotNET體系結(jié)構(gòu)下,是可行也是可以被你控制的。并不是像一些人以為的那樣,認(rèn)為只用VS.NET重新編譯一遍原來的應(yīng)用就OK,也不能像另外一些人以為的那樣,認(rèn)為dotNET根本是市場的策略,而且真正實(shí)施起來很麻煩很困難,還要等個(gè)3-5年。
- 1實(shí)際案例助你理解供應(yīng)鏈管理的價(jià)值
- 2企業(yè)對IT服務(wù)管理認(rèn)識(shí)誤區(qū)的澄清
- 3醫(yī)療共同體的4S服務(wù)是如何煉成的
- 4車輛制造廠:信息挖出來 管理深下去
- 5財(cái)務(wù)管理系統(tǒng)選型之打印格式的設(shè)置
- 6農(nóng)村信息服務(wù)中政府的角色與責(zé)任
- 7石油開采企業(yè)重慶OA工作展望(Kevin)
- 8企業(yè)規(guī)劃和架構(gòu)戰(zhàn)略
- 9微軟和IBM在Web服務(wù)上的分歧有所加深
- 10夏敬華:知識(shí)管理讓組織智慧化讓危機(jī)常態(tài)化
- 11經(jīng)濟(jì)危機(jī)中 中型電子企業(yè)的IT投資
- 12SOA與云計(jì)算之間可進(jìn)行互補(bǔ)相互促進(jìn)
- 13用戶安全性需求:網(wǎng)上銀行發(fā)展的加速器
- 14為何ERP產(chǎn)品思路不適用于全面預(yù)算管理
- 15選型故事:財(cái)務(wù)管理系統(tǒng)選型的壞帳準(zhǔn)備
- 16如何選擇運(yùn)行ERP系統(tǒng)的服務(wù)器?
- 17走向SOA:未來社會(huì)之大勢所趨
- 18[原創(chuàng)]《做ITSM咨詢話ITIL》之四:IT組織框架對ITIL的影響
- 19IT預(yù)算減肥進(jìn)行時(shí)(二)
- 20IT基礎(chǔ)設(shè)施庫ITIL的力量:ITIL介紹及應(yīng)用案例(三)(AMT 張純棣 編譯)
- 21國務(wù)院辦公廳下發(fā)石化業(yè)調(diào)整和振興規(guī)劃
- 22通用項(xiàng)目管理度量 IT項(xiàng)目失敗主要原因
- 23條形碼全流程管理醫(yī)院資產(chǎn)
- 24節(jié)約成本 銀行發(fā)力網(wǎng)上銀行業(yè)務(wù)
- 25出版業(yè)跨越式發(fā)展的指標(biāo)體系研究
- 26要實(shí)施ITIL必須管理好期望
- 27泛普軟件助力企業(yè)IT治理
- 28協(xié)同OA網(wǎng)絡(luò)辦公系統(tǒng)就是基于這種理念來研發(fā)的辦公系統(tǒng)
- 29IT預(yù)算減肥進(jìn)行時(shí)(一)
- 30構(gòu)建一個(gè)有效的企業(yè)級SOA治理
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
版權(quán)所有:泛普軟件 渝ICP備14008431號-2 渝公網(wǎng)安備50011202501700號 咨詢電話:400-8352-114