Writing WSDL by hand seems about as efficient as writing IDL by hand back in the COM days. Every time I’m involved with web service creation we concentrate on creating Data Transfer Object classes to represent the message and let the .Net framework worry about WSDL. It makes evolutionary design of web services and TDD with mocks a lot easier too.
Regardless of your style, you should never, ever couple your internal business classes to the messaging schema and vice versa. Unless you don’t care about maintainability anyway.
From Udi Dahan, Common SOA Pitfalls as well. What he describes seems pretty dumb to me, but I’ve seen the exact same thing proposed a couple years ago at a former employer.