WCF might be used in a fully service-oriented way: message-oriented, document-based, contract and policy driven. The common guidance looks different, though. Have a look at ASMX, WCF, Axis 2 and all other SOAP stacks:
Just write the classes, we’ll generate your contract and policy and throw in some XML (De)Serialization for good.
Hartmut is right — it still amazes me how common the code-first approach still is, to the degree that most developers I meet are not even aware that there’s an alternative.