Free Newsletters

   All InfoWorld Newsletters
Strategic Developer | Martin Heller » Here be Dragons

July 25, 2007 | Comments: (0)

Here be Dragons

Here be DragonsWhen I wrote about my Web Service Blues on July 11th, I had no idea that I'd still be singing them two weeks later. But I was. The short summary of the issue is that my unmanaged Microsoft Visual C++ Web service client couldn't parse the response from a Microsoft ASP.NET 2.0 Web service.

Every day or two, I'd think of something that could be wrong, come up with a way to test my hypothesis, do the experiment, and see yet another idea go down in flames. Maybe I was formatting the GUIDs incorrectly? We created another Web service call that took strings: ffft.

Maybe the response was malformed? SoapScope didn't think so. And nothing we did to the Web service output changed a thing.

I combed the MSDN news groups. Were people writing C++ clients for Web services? As far as I could tell, yes. I searched the documentation: was there a known problem with C++ WSDL import or parsing? Not that I could tell. I tried porting the project from Visual Studio .NET 2003 to Visual Studio 2005, the same generation of tool used for the service: surely the situation would improve. Nope.

Finally, a query to the Microsoft C++ team, sent through an old friend, got me an answer. It wasn't what I wanted to hear, but it freed us to pursue a RESTful API rather than an XML Web service API.

What you're encountering is very likely by design. We stopped evolving the native Web services stack shortly after we released VS 2002 and now it is a deprecated part of the product (and removed for the 2008 release). Lots of functionality was added to SOAP, WSDL and the entire range of WS* standards after that time (in fact more than 10x the original feature set counting by pages of specs). However we have moved this code to CodePlex at http://www.codeplex.com/AtlServer.

If you have specific problems, the VC++ team has offered to be as helpful as they can, but they encouraged me to encourage you to try working with the sources of ATL Server first.

So there it is: if you want to write a Web service client using Microsoft technology, do it in managed code. Use the .NET Framework. Better yet, use the Windows Communication Foundation.

C++ programmers who insist on trying to make Web services work in native code, write this in your documentation: Here be Dragons.

Posted by Martin Heller on July 25, 2007 12:35 PM


RATE THIS ARTICLE:





 

  •  
  • COMMENTS




hi there,

don't know the state of "apache axis" for C++. But if that is NOT bad, then why not use it ?

Also, didn't Rogue Wave have something of a cross-platform library for the same ?

Thank you,

BR,
~A

Posted by: Anjan Bacchu at July 27, 2007 12:49 PM

Yet another reason why I am so glad I switched from C++/Microsoft proprietary garbage to Java/OpenSource over five years ago.

Sure - stuff changes and Java has obsolete stuff all the time too - but it's DOCUMENTED.

Posted by: Sunnyboy at August 2, 2007 10:38 AM

Technology White Papers

 

InfoWorld Technology Marketplace

» Technology White Papers Library

Technology White Papers by Topic

Technology White Papers E-mail Alert

Find out when the latest white paper is available:
 
 
» BUY A LINK NOW

Sponsored Technology Links