Welcome

首页 / 软件开发 / VFP / 在.NET里使用Visual FoxPro资源-vfp编写的Web Service

在.NET里使用Visual FoxPro资源-vfp编写的Web Service2007-05-08第三部分:在.NET里使用vfp编写的Web Service

.NET和JAVA都以能够跨越不同平台作为卖点,JAVA似乎注重代码本身的跨平台特性。.NET则更关注数据的跨平台,于是 .NET高举着XML Web Service的大旗出现在我们面前,从某种意义上说 .NET 就是 XML Web Service。

Visual FoxPro 对XML Web Service 的支持是建立在MS XML与SOAP组件基础上的,用Visual FoxPro 编写 Web Service的核心就是上文提到的COM组件编程。只需要把COM组件发布成为Web Service,就 OK 了!

完全基于原有的知识,这里需要开发人员注意的是:COM能够保留状态,而Web Service是无状态系统,这是设计Web Service 使用的COM组件时一定要注意的。

为了方便开发XML Web Service客户端和服务端程序,Visual FoxPro 7 提供一系列的贴身设计:

  • 内置更具亲和力的 Web Service 发布向导,代替 MS SOAP 的WSDL Generator 工具程序。

  • 提供 Web Service 项目框架,方便快速开发服务端程序。

  • 提供了一个Project Hook 类,方便开发人员多次编译、重新发布 Web Service。

  • IntelliSense 支持导入 WSDL 文件,极大方便了对Web Service的调用。

  • 对 SOAP 进行了封装,结合 IntelliSense 技术能够自动产生调用Web Service时的初始化代码。

还有一些细节值得注意,Visual FoxPro 7支持COM对象接口实作,这为处理SOAP 头信息带来方便;支持包括Base64在内的多种编码、解码,为数据转化带来方便;当然还有前面已经提过的内置XML支持。

现在我们把前面的COM组建foxwebservice.dll发布成为Web Service。这里可以使用Visual FoxPro 内置的 Web Service Publish向导(TOOLS->Wizards->Web Service),也可以使用 WSDL Generator。这里需要注意的是,内置的发布向导只支持SOAP 2,如果需要利用SOAP 3的新特性,就必须使用MS SOAP的 WSDL Generator 工具(SOAP 3刚推出,Visual FoxPro 好没有来的及更新Web ServicePublish向导)。对于本例来说,并不计较MS SOAP 的版本。

在.NET里调用 Web Service,需要建立代理。在命令提示符里执行这样的语句:(CODE#10)

wsdl /Language:cs /out:customer.cs http://localhost/cust/customer.WSDL

这样我们就得到了针对我们的Web Service的代理文件 customer.cs,接着编译这个文件:(CODE#11)

csc /out:customer.dll /t:library customer.cs

接下来的工作更是简单,只要在代码里使用这个代理对象就行了,例如:(CODE#12)

customer obis=new customer();
DataSet oDs=new DataSet();
//注意很简单就把XML表示的记录集转换成为了Table对象。
oDs.ReadXml(new StringReader(obis.GetCountry()));

编译时需要在命令提示符里执行以下语句:(CODE#13)

csc /t:winexe webs _client_sample.cs /r:customer.dll

Web Service是单纯的XML数据交换,.NET 与Visual FoxPro 编写的Web Service之间是全透明的,并且这种调用是可以跨域网络的。

第四部分:Visual FoxPro for .NET Toolkit 介绍

前文我们的立足点是怎样将现有 Visual FoxPro技术在.NET平台上应用,这些好像对那些不具备Fox技术背景的开发人员没有太大的意义,不过接着要介绍的东西是100%的.NET原生资源,这就是Visual FoxPro for .NET Toolkit。

Visual FoxPro for .NET Toolkit 分别用 VB.NET和C#实现一遍,是.NET的原生资源。它的名称空间是:VFPToolkit,下面一共包含10个类定义,总共包含了225个静态函数。这10个类定义分别是 arrays、common、dates、dialogs、environment、files、help、math、strings、vfpdata,所有这些函数的“模样”是都是Visual FoxPro 里对应函数“克隆”。由于是对.NET的二次封装、由于考虑到了Fox 开发人员习惯,所以这个Tollkit是非常实用的、好用的。对于Fox 开发人员,为他们扫清了不太熟悉 .NET的障碍,对于其他开发人员也是不错的资源。

另外这个 Toolkit 是免费的、开放源代码的,微软的Fox Team对它提供技术支持。无论怎么说,这是一个好东西,快去下载:http://www.gotdotnet.com/team/vfp/ 。

总结:

到这里,基本上完成了关于“在 .NET里使用Visual FoxPro 资源”的论述。Visual FoxPro 的下一个版本Version 8将在10月份发布Beta版,届时我们会看到新版的Fox会对.NET提供更多、更直接的支持,当然这是后话了。好了,就到这里!