当前位置: 首页 > news >正文

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/archive/2009/02/13/1389713.html

相关文章:

  • 资料链接整理
  • 设计之道
  • WINXP终极瘦身、优化、封装全攻略 万能WinXP Ghost镜像制作指南
  • 【转】中小IT企业如何留住80后技术人才
  • ASP.net:未能加载文件或程序集
  • 钱的能量转换守恒定律
  • 网络存储设备磁带机术语解释
  • VBScript基础教程之四VBScript变量
  • 修复无法查看隐藏文件方法
  • ubuntu下有趣实用的小工具
  • rhel5之swap的管理
  • 在Javascript定义对象
  • IE的有条件注释详解(附实例代码)
  • [数据恢复答疑]误GHOST之后的数据还能恢复吗?
  • 如何解决IE部分图片不显示
  • 深入了解以太坊
  • [NodeJS] 关于Buffer
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • js
  • MobX
  • Ruby 2.x 源代码分析:扩展 概述
  • Shadow DOM 内部构造及如何构建独立组件
  • web标准化(下)
  • 欢迎参加第二届中国游戏开发者大会
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 简单基于spring的redis配置(单机和集群模式)
  • 嵌入式文件系统
  • 区块链将重新定义世界
  • 设计模式(12)迭代器模式(讲解+应用)
  • 什么是Javascript函数节流?
  • ​如何防止网络攻击?
  • #define、const、typedef的差别
  • #HarmonyOS:Web组件的使用
  • #HarmonyOS:软件安装window和mac预览Hello World
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (1)Nginx简介和安装教程
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (Matlab)使用竞争神经网络实现数据聚类
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (二)Linux——Linux常用指令
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (算法)N皇后问题
  • (一)为什么要选择C++
  • (转)Windows2003安全设置/维护
  • (转载)利用webkit抓取动态网页和链接
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET 分布式技术比较
  • .net 设置默认首页
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NetCore项目nginx发布
  • @Bean注解详解
  • @cacheable 是否缓存成功_Spring Cache缓存注解