I was playing around with building a simple WCF ASP.NET client in Visual Studio 2008 and wanted to make a reference to my WCF service (that used basicHttpBinding). I have built plenty of ASMX web services in the past so simply selected “Add Web Reference” as I’d done before, pointed to my .svc file hosted in IIS, and away I went – everything worked as expected.
Then I spied the “Add Service Reference” menu option and thought – hey that’s weird I wonder what that does?
Well it’s pretty simple really.
Add Web Reference is a wrapper over wsdl.exe and can be used to create proxies for .NET 1.1 or 2.0 clients. Of course this means when you are pointing to a WCF service you have to be pointing to an endpoint that uses basicHttpBinding (as I was).
Add Service Reference is a wrapper over svcutil.exe and also creates clients proxies (and additionally web.config entries). These proxies, however, can only be consumed by .NET 3.0+ clients.
It seems to me that a better approach would have been to have a single menu option that allowed you to select the proposed target framework.