Folks,
I'm facing this problem here: I'm designing my second larger batch of WCF services which external parties will consume.
For the first batch, I used a strict "contract-first" approach: manually created the WSDL and XSD files, and from those, generated my service and data contracts and implemented my WCF service.
Worked ok, I was able to use the WSDL and XSD to produce useable documentation (xs3p and other transformations) - but creating and maintaining WSDL and XSD manually is a MAJOR pain, and the generated WCF service and data contract files aren't pretty to look at, either....
So for my second batch, I tried to go the other route - create my service interface in C# and adorn it with ServiceContract and OperationContract attributes, create my classes that make up my request and response objects in C# and add DataContract and DataMember attributes to them - works nicely, my C# code now looks great.
But how do I create a useable documentation from this?? I compiled everything into a DLL and used svcutil -t metadata on it - but the resulting WSDL and XSD somehow aren't complete (WSDL is missing and elements), and they're not "connected", e.g. the WSDL doesn't know where to physically look for the XSD, so my documentation is pretty lousy.......
Sure, I could just deploy the service on a dev box and tell everyone to come grab their WSDL and XSD via a URL - but that's not the way these projects go :-( I need to be able to produce a useable, printable documentation - HTML, PDF or CHM or something alike....
How do you do this?? Both approaches seem to have big and painful drawbacks..... am I missing the "golden third way" ?? If so: what is it?? :-)
Marc