透視和調整你的企業和商務系統( Ⅳ: WebService 、 dotNET ) 小氣的神 2001-10-15 到上一篇為止,我們已經完成了在第一篇( Analyzing 、 Requirement" name="description" />

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 透視和調整你的企業和商務系統(Ⅳ:WebService、dotNET)

    發表于:2007-05-25來源:作者:點擊數: 標簽:系統企業透視商務你的
    MI LY: 宋體; mso-ascii-font-family: 'Lucida Console'; mso-hansi-font-family: 'Lucida Console'">透視和調整你的企業和商務系統( Ⅳ: WebService 、 dotNET ) 小氣的神 2001-10-15 到上一篇為止,我們已經完成了在第一篇( Analyzing 、 Requirement

    MILY: 宋體; mso-ascii-font-family: 'Lucida Console'; mso-hansi-font-family: 'Lucida Console'">透視和調整你的企業和商務系統(Ⅳ:WebService、dotNET

     


    小氣的神 2001-10-15

     

        到上一篇為止,我們已經完成了在第一篇(Analyzing、Requirement)所說的三個過程中的第二步了,這一篇開始我們可以用dotNETWebService方式來重新考慮以前的Authors WebService,技術上我傾向于MS的建議,那就是在實現和設計Web Services時將ASP.NETWebService作為首選。所以這一篇我們將主要考察ASP.NETWebService.

     

        這要從第二篇的分析開始,原來當我用SOAP Toolkit生成了WebService后,我就在Dereksvr機器上用VS.NETAdd Web Reference...輸入http://henrysvr/Authors/Authors.wsdl,VS.NET也是可以發現這個WebService,但是由于ADODB.Recordset的問題,它無法生成Proxy類,當時我以為SOAP Toolkit生成的WSDL并不完全兼容很快放棄了繼續向下實驗了。幾天之后我又做了另外一種嘗試:我用SOAP Toolkit重新生成了WebServiceWSDL文件,這次我沒有把返回ADODB.Recordset的函數放到里面,也就是全部都是在第二篇說的標志類型,然后我又在VS.NET中重復了上述的步驟,這一次OK了,VS.NET成功的生成了Proxy類,我生成了一個小例子測試,結果是成功的。那么結論是:對于第二類返回特殊類型的(也就是第二篇中用CTM的類型)我們要另外處理,對于第一種類型的我們只要用MS SOAP Toolkit生成WSDL文件,然后在IIS中設置好,就可以成為一個WebService,在消費這種WebService上我們不用特殊處理。不僅VS.NET可以直接使用,其他支持WebService規范的也是可以使用的(只能說估計。Java?Delphi?抱歉我沒有試過)下面是我測試成功的例子的拷圖,感覺還不錯,連中文也不用什么特殊處理。

        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

     

     

    EchoCall SOAP

     

    好了,剩下的又是ADODB.Recordset的問題,如果處理這個COM對象呢?之前我們已經用了一種方法,dotNET作為Client,這次我換一種方式,生成一個ASP.NET方式的WebService,然后引用bus_Authors組件,對那些返回記錄集的函數在這個WebService中做一個封裝。比如:

        <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

    看的出來,就是簡單的調用Biz組件,然后將ADODB.Recordset轉換成DataSet。

    有關引用Bus_Authors,你可以在目前的這部機器上安裝我們在第一篇Export出來的ServerProxy都可以,我為了方便,直接使用了Server包。剩下來的就十分簡單了,需要生成一個測試程序,這個就簡單了,參照Carl Franklin的錄像就可以了。算是也自己練習一次haha。

    (具體參見http://www.csdn.net/develop/read_article.asp?id=10816 )

     

    下面是運行的代碼和拷圖:

    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

     

     

    Client Aspx Call

     

     

        至于VB版本的客戶端也是可以的,你可以在另外一部機器上用下面的代碼進行測試:

        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()

    如果成功返回的應當是一個IXMLDOMNodeList 里面包括整個的Dataset結構和23條數據,至于具體的顯示這個結果集的VB程序就不再說了,以后也許會專門有文章論述如何將dotNETDataSet轉化成VB可以識別的問題,比如會有FillListView( lstv As Control , obj as Object)之類的函數將這個XML結構填充到VB6 ListViewGrid控件中,這里我就不詳細說了。具體的你還可以在其他機器上使用http://Dereksvr/Authors/Authors.asmx 然后選取GetAuthors然后點擊調用獲得結果,也可以直接點:http://Dereksvr/Authors/Authors.asmx/GetAuthors? 你在IE窗口上可以明顯的看到這個返回結果的XML文檔(從中你可以看到DataSet最原始的構造haha)。

     

    掌握不同返回類型分別處理的原則,無論是MS SOAP Toolkit 還是ASP.NET WebService都是可以被我們所用??雌饋硎褂?/SPAN>dotNET會簡單和省力許多。我想隨著dotNET技術的推進,越來越多的人會考慮用dotNET技術實現一些新的商務或企業應用系統,至少我會這樣。也許這些例子是想說明從現在的Windows DNA構架切換到新的dotNET體系結構下,是可行也是可以被你控制的。并不是像一些人以為的那樣,認為只用VS.NET重新編譯一遍原來的應用就OK,也不能像另外一些人以為的那樣,認為dotNET根本是市場的策略,而且真正實施起來很麻煩很困難,還要等個35年。


    特別: 以上文字和圖片涉及其他人的隱私和個人權利,如非被授權或經本人同意,任何網站或期刊請不要刊登、轉載、改編、轉貼或已其他形式進行傳播。以上所有文字和圖片只用于內部交流,不作任何新聞發表和商業用途。

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>