This question is more of a probe to discover what people are doing in the community, in practical situations, than a specifically targeted question. I have searched pretty broad
The way we do this is described in this video:
http://www.dnrtv.com/default.aspx?showNum=103
The idea is that we do not use code generation, we therefore avoid needing to regenerate code when the contract changes.
The contract is then in code and can be changed, if there is a mismatch between the client and the server it will show up in a build error.