Need to access Web Services from Visual FoxPro?
Then you probably found that FoxPro doesn't make this task easy as
native tools to call Web Services are dated and deprecated. .NET
provides an up to date platform to access Web Services, but interfacing
with it is not always easy from FoxPro.
The Web Service Proxy Generator makes calling Web Services from
FoxPro easy by
using a fully auto-generated .NET proxy as an intermediary to calling
Web Services. An easy to use Wizard generates a
FoxPro class and .NET proxy assembly simply by providing a URL to the
WSDL service description. The Wizard does the rest. Once generated you
can use a plain FoxPro class and methods to call the Web service. If you
need to access more complex .NET types from the proxy for results or
parameters, our .NET helper tools (wwDotnetBridge) make it easy to
manipulate and access this data from FoxPro.
Here's what the wizard looks like. Enter a WSDL URL, press Resolve to lookup the
service definitions, then press Generate to create the FoxPro and
Using this tool is a snap and you can be up and running making Web
Service calls reliably in minutes.
LOCAL loProxy as WebStoreServiceProxy
loProxy = CREATEOBJECT("WebStoreServiceProxy")
*** Call a Service method
loItem = loProxy.DownloadInventoryItem("WWHELP40")
*** Create a new item - use full .NET typename (look up in Reflector)
loItem = loProxy.oBridge.CreateInstance("WebStoreService.wws_itemsRow")
loItem.Descript = "New Item Added from Client"
lcResult = loProxy.UploadInventoryItem(loItem)
*** Retrieve an array of items
loItems = loProxy.DownloadInventoryItems("")
*** Result is a ComArray object - wrapper around a .NET array
*** .NET Arrays are 0 based so count from 0
FOR lnX = 0 to loItems.Count -1
loItem = loItems.Item(lnX)
? loItem.Sku + " - " + loItem.Descript
*** Update an item
loItem = loItems.Item(0)
loItem.Descript = loItem.Descript + " Updated"
*** Upload changed array back to the service
One of the main features of this tool is an automating Wizard that
creates a .NET proxy assembly from the specified Web Service and a
FoxPro PRG class that calls this .NET component without requiring COM
registration as shown above.
This tool automates the creation of Web Service clients utilizing the
.NET framework called from Visual FoxPro to make SOAP/WSDL Web Service
calls. It provides a Wizard (and class interface) that auto-generates
the .NET Proxy Web service assembly to handles the Web Service
interaction. It also creates a Visual FoxPro proxy class that maps each
of the Web Service methods to a FoxPro method that can then be called to
interact with the Web service. The base service implementation is
provided as a simple
FoxPro class in a PRG file that can be used in your
applications. You simply
include the PRG file plus a couple of DLLs and
FoxPro classes and you're on your way.
wwDotnetBridge allows access to .NET components without requiring
them to be registered in the registry. This powerful tool hosts the .NET
runtime in Visual FoxPro and then loads .NET types from within this
runtime. wwDotnetBridge also provides a host of helper functions that allow access to any .NET type
and feature like static method invokation, enumeration access, array
management, DataSet to XmlAdapter mapping and conversion of many common
types to and from .NET types. Using wwDotnetBridge greatly facilitates creating
.NET type instances of Web Service related objects and
manipulating them from Visual FoxPro.
This tool works with SOAP 1.1 and SOAP 1.2 Web Services and should be
able to access just about any service you throw at it. .NET's
WSDL technology can successfully import just about any SOAP 1.1 and 1.2
service and work with them without issues, but there may be some oddball
service implementations (especially old some Java Services) that don't work using the generic tools. In
these rare cases manual importing and generated service proxy fixup may
The Proxy Generator does not work with WS-* Web Services. WS-* services are extended SOAP services that use certificates,
custom headers, digital signatures and various other security
and verification protocols as part of Web Service calls
(collectively known as WS* protocols).
Services that use these features are not supported by the .NET WSDL
importer used by this tool, and even if it did they would be too complex
for generically generated solution. It's recommended you use Windows Communication Foundation
(WCF) as a client in .NET and
manually interface FoxPro via COM Interop
If you need help with any custom Web Service integration scenario we can
help you with custom consulting to provide guidance
or support. We specialize in trouble shooting and integration of Web Services
both from FoxPro and .NET code for accessing and also for publishing of Web
If you're accessing Web Services with Visual FoxPro, .NET is a safe
choice for making sure you are building service clients that are future
proof. Unlike the obsolete SOAP Toolkit or even our own wwSoap, .NET is
updated frequently to support the latest Web Service standards. The
proxy generator lets you take advantage of this standard platform to
handle complex Web services with relative ease.
Check out this tool - it's a big time saver if you need to build Web
services and don't want to figure out the technology and interaction
from scratch. Download now.
If you want a deeper understanding of how Web Service interaction
between FoxPro and .NET works you can
read our Whitepaper on the subject which shows the traditional way
of accessing Web services through .NET. Using the Proxy generator
automates the processes described in this article drastically.
Download the shareware copy of the Proxy Generator and try it on
your Web Services today and see how quick and easy Web Service access
from FoxPro can be...