cowbird 心有多大,世界有多大

燕八哥 MSN:cowbird2002@hotmail.com

know everything about something and something about everything

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

有一段日子学习web services开发,发现非.net开发工具(delphi)调用.net web services返回数据集合(dataset)时候,会遇到不少麻烦.

为此各个非.net开发工具有很多解决方法,比如delphi的方法,可看我的文章--<<我在delphi7下调用微软的Web Services的心得.(其中服务是指返回数据集)>> (http://www.cnblogs.com/cowbird/archive/2004/06/19/17129.aspx).

显然,很麻烦.为此我放弃了delphi工具.不过这些天看到一篇文章.使我重新认识了这个问题.

文章名称<非.NET语言调用.NET XML Web Services返回的数据集合的两个方法>,原文地址http://www.microsoft.com/China/Community/program/originalarticles/TechDoc/callwebs.mspx

下面是我看文章后的一些摘要:

问题认识:
-----------------
1)多语言共存的编程环境,不适合特定语言的数据类型。尽量使用简单数据类型以及简单数据类型的数组。
2)不适合通过Web Service来返回大量数据

解决方案有两种:
------------------------
1) 用简单数据类型构造自定义类型,用每一个自定义类型对象封装数据集中的一行,将自定义类型对象的数组(Array)返回客户端;由于是用简单数据类型定义,客户端能够完全不变的还原出自定义类型的定义;
        它的优点是客户端代码非常简单,容易编写,而且容易理解。它的缺点是服务器端需要定义新的类,而且当通过ADO.NET从数据库中提取数据以后,还要再手工编写代码,将DataSet中的数据遍历一遍,转存成自定义类型的对象。


2) 用DataSet.WriteXML()方法将数据集中的数据提取成XML格式,并以字符串的形式返回给客户端,再由客户端解析XML字符串,还原出数据。由于使用WriteXML()的时候能够过滤掉冗余信息,返回的内容大大简化了。

         它在客户端需要编写较多的代码,需要用XML Parser编程。它在服务器端比较简单。当开发者希望在客户端引入非.NET语言时,服务器端只需要简单的再增加一个Web Method,通过简单的WriteXML()调用对原有的方法进行简单的包装,就能够适用于非.NET客户端了。

posted on 2004-07-21 09:18  cowbird  阅读(985)  评论(1编辑  收藏  举报