透视和调整你的企业和商务系统(Ⅳ:WebService、dotNET)
透视和调整你的企业和商务系统(Ⅳ:WebService、dotNET)
到上一篇为止,我们已经完成了在第一篇(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年。
- 1重庆OA客户
- 2重庆OA行业资讯
- 3西安OA行业资讯
- 4北京OA行业资讯
- 5合肥OA软件行业资讯
- 6郑州OA行业资讯
- 7济南OA行业资讯
- 8上海OA软件行业资讯
- 9石家庄OA行业资讯
- 10天津OA行业资讯
- 11沈阳OA行业资讯
- 12哈尔滨OA软件行业资讯
- 1实际案例助你理解供应链管理的价值
- 2企业对IT服务管理认识误区的澄清
- 3医疗共同体的4S服务是如何炼成的
- 4车辆制造厂:信息挖出来 管理深下去
- 5财务管理系统选型之打印格式的设置
- 6农村信息服务中政府的角色与责任
- 7石油开采企业重庆OA工作展望(Kevin)
- 8企业规划和架构战略
- 9微软和IBM在Web服务上的分歧有所加深
- 10夏敬华:知识管理让组织智慧化让危机常态化
- 11经济危机中 中型电子企业的IT投资
- 12SOA与云计算之间可进行互补相互促进
- 13用户安全性需求:网上银行发展的加速器
- 14为何ERP产品思路不适用于全面预算管理
- 15选型故事:财务管理系统选型的坏帐准备
- 16如何选择运行ERP系统的服务器?
- 17走向SOA:未来社会之大势所趋
- 18[原创]《做ITSM咨询话ITIL》之四:IT组织框架对ITIL的影响
- 19IT预算减肥进行时(二)
- 20IT基础设施库ITIL的力量:ITIL介绍及应用案例(三)(AMT 张纯棣 编译)
- 21国务院办公厅下发石化业调整和振兴规划
- 22通用项目管理度量 IT项目失败主要原因
- 23条形码全流程管理医院资产
- 24节约成本 银行发力网上银行业务
- 25出版业跨越式发展的指标体系研究
- 26要实施ITIL必须管理好期望
- 27泛普软件助力企业IT治理
- 28协同OA网络办公系统就是基于这种理念来研发的办公系统
- 29IT预算减肥进行时(一)
- 30构建一个有效的企业级SOA治理
成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼