透视和调整你的企业和商务系统(Ⅳ:WebService、dotNET)

原创 2001年10月18日 20:04:00

透视和调整你的企业和商务系统(Ⅳ:WebServicedotNET

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

小气的神 2001-10-15

 

    到上一篇为止,我们已经完成了在第一篇(AnalyzingRequirement)所说的三个过程中的第二步了,这一篇开始我们可以用dotNETWebService方式来重新考虑以前的Authors WebService,技术上我倾向于MS的建议,那就是在实现和设计Web Services时将ASP.NETWebService作为首选。所以这一篇我们将主要考察ASP.NETWebService.

 

    这要从第二篇的分析开始,原来当我用SOAP Toolkit生成了WebService后,我就在Dereksvr机器上用VS.NETAdd Web Reference...输入http://henrysvr/Authors/Authors.wsdlVS.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规范的也是可以使用的(只能说估计。JavaDelphi?抱歉我没有试过)下面是我测试成功的例子的拷图,感觉还不错,连中文也不用什么特殊处理。

    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

 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

 

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都是可以被我们所用。看起来使用dotNET会简单和省力许多。我想随着dotNET技术的推进,越来越多的人会考虑用dotNET技术实现一些新的商务或企业应用系统,至少我会这样。也许这些例子是想说明从现在的Windows DNA构架切换到新的dotNET体系结构下,是可行也是可以被你控制的。并不是像一些人以为的那样,认为只用VS.NET重新编译一遍原来的应用就OK,也不能像另外一些人以为的那样,认为dotNET根本是市场的策略,而且真正实施起来很麻烦很困难,还要等个35年。


特别: 以上文字和图片涉及其他人的隐私和个人权利,如非被授权或经本人同意,任何网站或期刊请不要刊登、转载、改编、转贴或已其他形式进行传播。以上所有文字和图片只用于内部交流,不作任何新闻发表和商业用途。

透视和调整你的企业和商务系统(Ⅲ:SOAP、WebService、Client)

透视和调整你的企业和商务系统(Ⅲ:SOAP、WebService、Client)  小气的神 2001-10-13      客户端的测试,主要是使用两个VB程序来测试一下,实际应用中可以是多种形式的...
  • ccBoy
  • ccBoy
  • 2001年10月15日 20:04
  • 1018

透视和调整你的企业和商务系统(Ⅲ:SOAP、WebService、Server)

透视和调整你的企业和商务系统(Ⅲ:SOAP、WebService、Server)  小气的神 2001-10-12      好了,终于可以开始使用Microsoft SOAP Toolkit将上面的...
  • ccBoy
  • ccBoy
  • 2001年10月15日 20:11
  • 1057

透视和调整你的企业和商务系统(Ⅱ:COM+、ASP)

透视和调整你的企业和商务系统(Ⅱ:COM+、ASP)小气的神 2001-10-11  接着上一篇所说的三个过程中第一个步骤开始进行,环境需要两部机器,一部做SQL Server,一部做App和安装II...
  • ccBoy
  • ccBoy
  • 2001年10月14日 10:12
  • 911

透视和调整你的企业和商务系统(Ⅴ:Solution、Architectures)

透视和调整你的企业和商务系统(Ⅴ:Solution、Architectures)  小气的神 2001-10-15     好了,我想在这一篇之后结束整个的话题,似乎应当有些结论,但可能每个人面临的具...
  • ccBoy
  • ccBoy
  • 2001年10月18日 20:11
  • 1025

透视和调整你的企业和商务系统(Ⅰ:Analyzing、Requirement)

透视和调整你的企业和商务系统(Ⅰ:Analyzing、Requirement)  小气的神 2001-10-09  对于dotNET,这是一项新的技术,一个为适应变化的应用系统体系。你可能不屑一顾还是...
  • ccBoy
  • ccBoy
  • 2001年10月13日 14:20
  • 1058

Java调用DotNet WebService为什么那么难?

前几日研究Java调用DotNet WebService,找了好多资料竟然没有好用的.将2日的艰辛拿出来分享,希望对朋友们有帮助。 .Net开发环境: VS DotNet 2005Java开发环境:E...
  • baixj
  • baixj
  • 2008年01月04日 14:09
  • 7936

信息化管理系统在企业的应用

思多雅注:信息化管理系统在企业的应用是个比较大的题目,涉及的范畴广,而具体到每个企业的实际情况又有所不同,笔者尝试以国内企业发展的共性,小论信息化对企业抵御金融的作用,以抛砖引玉,共同探讨。...
  • lq013
  • lq013
  • 2013年08月09日 14:50
  • 3709

深入解析.NET架构

一、AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架。Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式。这种部署方面(a...
  • lilong_herry
  • lilong_herry
  • 2011年11月04日 15:26
  • 1427

投影中的正交和透视

投影中的正交和透视 http://my.oschina.net/u/1455799/blog/213962 在OpenGL中,如果想对模型进行操作,就要对这个模型的状态...
  • jingyu7
  • jingyu7
  • 2015年03月16日 11:23
  • 727

IBM最新调研:透视SOA全球发展现状

目前,全球企业面临着业务模式创新、全球整合、人才管理和业务透明化等众多变革。这些变革对企业的敏捷性均提出了很高要求。可以说,敏捷性对企业实现成长至关重要。而SOA是企业实现敏捷性关键技术手段。  IB...
  • hu_zhenghui
  • hu_zhenghui
  • 2008年06月21日 11:47
  • 734
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:透视和调整你的企业和商务系统(Ⅳ:WebService、dotNET)
举报原因:
原因补充:

(最多只允许输入30个字)