Delphi调用.net的WebService和Delphi对XML文件的相关处理(1)

  1.为什么要用Delphi?

   因为我这个客户端要供用户下载的,客户端的体积必须小。如果用C#开发,客户那边必须装.net framework.对于小白客户来说,安装这么高深的东东比要他们的命都难,而且,我这个客户端就只要实现简单的信息提交,软件自动更新,信息浏览的功能,如果不是要一开机就让其显示数据,完全是可以通过B/S的形式来完成的。

2.WebService调用的3种可行性方式

  通过这几天我查阅的相关资料,我觉得Delphi去调用.net写的WebService大致有3种方式

   1.使用THTTPTRO控件

   2.使用Microsoft SOAP Toolkit 3.0组件

   3.用Delphi窗体去加载一个网页然后用AJAX去访问客户WebService,然后用Delphi去获取网页访问返回的内容,持久化到本机计算机上。

3.WebService访问的数据返回格式

   1.直接返回DTO对象。这样做的好处是,非常的面向对象。但是,返回的DTO对象必须在客户端程序中做个转换,使其变成Delphi对象。增加了客户端程序的代码量。

   2.直接返回XML文件。这样做的好处是只要在客户端解析一下XML文件就可以了。本来觉得XML文件在Delphi上解析比较麻烦,后来发现有一个很好的开源组件NativeXml,使用起来挺方便。

   3.ASP.AJAX或JQUERY 调用。这种方式可以返回JSON数据,但是,JSON数据在Delphi上的解析方法并不是很多,也不是很完善。

   所以,通过上述讨论,我觉得使用直接返回XML文件的方式比较合理。

4.关于客户端程序的更新方式。

  1.直接通过HTTP的方式更新客户程序。

  2.通过WebService返回一个文件的序列化XML,把每个文件的二进制流通过XML文件的节点传输。但有个问题需要解决,就是如何在Delphi上使用文件下载进度。

5.数据获取方式

  1.通过客户端轮询服务端的WebService来获取数据。这种方式比较简单,只要在客户端上放一个Timer控件就可以了。

  2.通过服务端推送数据到客户端。 如何推送到Delphi客户端,我还没要研究。

6.问题点:

1.WebService在Delphi上的异步调用问题。

2.服务端向Delphi客户端推送数据的问题。 

原文地址:https://www.cnblogs.com/wxf82610/p/1389713.html