分享
 
 
 

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

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

小气的神 2001-10-15

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

这要从第二篇的分析开始,原来当我用SOAP Toolkit生成了WebService后,我就在Dereksvr机器上用VS.NET的Add Web Reference...输入http://henrysvr/Authors/Authors.wsdl,VS.NET也是可以发现这个WebService,但是由于ADODB.Recordset的问题,它无法生成Proxy类,当时我以为SOAP Toolkit生成的WSDL并不完全兼容很快放弃了继续向下实验了。几天之后我又做了另外一种尝试:我用SOAP Toolkit重新生成了WebService的WSDL文件,这次我没有把返回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

好了,剩下的又是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出来的Server或Proxy都可以,我为了方便,直接使用了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

至于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程序就不再说了,以后也许会专门有文章论述如何将dotNET的DataSet转化成VB可以识别的问题,比如会有FillListView( lstv As Control , obj as Object)之类的函数将这个XML结构填充到VB6 ListView或Grid控件中,这里我就不详细说了。具体的你还可以在其他机器上使用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根本是市场的策略,而且真正实施起来很麻烦很困难,还要等个3-5年。

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有