1.按我设想的三层架构中,VFP是完全可以做为前端UI的,我们可以划分如下三层结构:
图片:三层架构图.jpg[] []
其实大家看图,都明白大致意思,但是要明白各层数据是怎么流动的,却要云里雾里,我当初也是这么着。看着图,觉得懂了,真正要动手,妈啊,不知道怎么动手。行话是说三层架构是逻辑架构,不是我们物理架构。什么中间层神马的,其实不是主流的说话。
扯完了,我们的题目是VFP调用C#后端,咱跟三层架构扯上什么关系了。好吧,这个是我们最终要到达的目标,我们先来做个这个样子的东东。
图片:三层架构2.jpg[] []
对于我们VFPUI来讲,我所看见的只是WebService,我管他们几层是如何实现的。好处是VFP程序不如winform 带个很大的运行库,但是在WIN7好像是不是个问题。 那VFP的优势在哪里,延长生命力。
2. 超简单的WebService 架设(VS2010 C#)
1 创建项目 注意 选择 .NET FramWork 2.0 下方才会出现 ASP.NET Web服务应用程序
图片:创建项目.jpg[] []
名称改为VFPWebservice
2 VS2010 会自动生成所需要的代码,,程序关键在asmx文件,关键内容如下
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod] 说明这是个对外的服务函数
string HelloWorld() 说明返回的是字符串型,函数名叫HelloWorld
OK,我们的WebService 就建好了。
有同学会问,建好了吗? 我记得VFP做这个好复杂的。
是的,VS2010就这么简单。
点击运行,你打开一个IE,会得到一个网址
http://localhost:13698/Service1.asmx 类似于这样子的
3 VFP的出场了 新建项目 并添加类库 FFC\_WS3CLIENT.VCX
图片:2 VFP项目添加WS3CLIENT.jpg[] []
4 新建一下PRG 文件,输入如下代码
Local loWeatherWS
loWSHandler = Newobject("WSHandler",Iif(Version(2)=0,"",Home()+"FFC\")+"_ws3client.vcx")
loWeatherWS = loWSHandler.SetupClient("http://127.0.0.1:13698/Service1.asmx?wsdl", "", "") && 这个地方要输入刚刚得到的的网址
loxx=loWeatherWS.HelloWorld()
?loxx
5 运行它,你会发现在屏幕上打印了HelloWorld
源码下载。 共有SOAP 方式(需要安装soaptoolkit)和WSHandle 方式调用。
不知道咋放源码。。。