.NET & Legacy VB6 interop: Issues & Options
sjquinn Sep 29, 2005 9:24 PM.NET & Legacy VB6 interop: Issues & Options
The Wiki returned File Not Found under the .NET heading and I have only seen bits and pieces of this issue discussed elseware. I would like to know how others are addressing this and choosing between the options.
Background:
My original Java based web services utilized Axis 1.2 over Tomcat. I was able to use these web services easily, including passing complex types as parameters or return values. The 2003 .NET handled it fine and I could use PocketSOAP for easy access from my legacy VB6 apps. I may not of been J2EE compliant, but then again everything worked splendidly.
The Issues:
Phase 2 of the transition to web services was to migrate to JBOSS. This has brought about a few complications. The rpcliteral encoding is not supported by 2003 .NET or PocketSOAP so I switched to documentliteral (per the documentation for interop). Unfortunately documentliteral, with its use of a complex type for request and response results in a 'clunkly' client proxy. I can do it (and perhaps take some comfort in conforming to the 'standard'), but the client code isn't as clean.
The Options (as far as I know):
So, where to from here? Well I found that 2005 .NET supports rpcliteral and the mssoap3.0 toolkit does as well. The downside here is that 2005 .NET is not yet released so I am working off of a beta and the mssoap3.0 toolkit is not nearly as slick as PocketSOAP in handling complex types.
So, to summarize here are my options and the corresponding pros & cons...
documentliteral pros:
Standard (as far as interop goes)
Can use 2003 .NET
Can use PocketSOAP
documentliteral cons:
Client proxy is a bit clunky
rpcliteral pros:
Clean .NET & Java clients
rpcliteral cons:
VB6 client stuck using mssoap3.0 toolkit
publish both documentliteral & rpcliteral pros:
Can use PocketSoap for legacy VB6 apps (albeit a bit clunky)
Can use .NET 2003 (clunky)
Can use .NET 2005 (clean proxy, but beta client)
Java clients have clean proxy
publish both documentliteral & rpcliteral cons:
Need to publish both (not a big deal, just adopt nomenclature)
I would really appreciate any comments from those of you who have been down this road before and may have some additional insights or options.
Thanks!