I guess it goes without saying that you cannot communicate in a language unless at least two people are using it. That was always the problem with Esperanto… interesting to learn, hard to find someone to converse with. WSDL is kinda like that.
One of the four tenants of SOA is that we share contract and not class… but most developers attempting to make services don’t really do that. They develop a class interface, abstract it into a WSDL description and share it, without ever making the MENTAL distinction that they are making it into a contract.
From a design standpoint, I know that a best practice is only a practice if someone is practicing it. If the tools prevent us, at the design stage, from describing our interfaces in purely abstract terms, then we aren’t practicing.
So, the following tool shows up linked from another blog. (I’ll skip the intermediary)
This tool is a Visual Studio add-in that allows us to better use WSDL as a design tool, not just something that is output from VS after the class is created.
Maybe, now, it will be just a little easier to convince folks to actually practice the creation of the contract.