Calling WebServices from a VB6 Application
I recently faced a situation in which a customer had to interoperate between a Visual Basic 6 application and existing WebServices. Interesting challenge, with many different options.
The following direction were foreseen as follows :
- Use XMLHTTP an code SOAP call and serialization by hand
- Using SOAP Toolkit : it is deprecated by the Framework .NET and support policy sticks to the issue of the Extended Support lasting until March 31, 2008
- Using .NET assemblies on the client called by VB6 components through COM Interop, thus leveraging the ability of .NET to easily deal with WebServices (Proxy generation, Serialization)
- Using Liquid XML http://www.liquid-technologies.com/default.aspx
A solution that "mimics" VB6/COM world what VS & .NET do : class generation & handling serialization
Finaly an interesting alternative was seen. The existing applicaiton was already using a COM+ middle tier. So the solution used was the following ;
- Use a COM+ .NET Enterprise Services Middle tier component that
- Make the WebService call
- Deserialize the objets into .NET Structs
- Pass by value the objects back to the VB6 Client using DCOM, and marshalling the Struct byValue.
And it works !
Interesting integration Pattern to reuse to call WebServices from a VB6 Application that cannot sustain .NET framework on the client station.