It was my understanding that when a developer (a company) develops both client and service, it’s better to put data and service contracts into a separate assembly to be used by both client and service applications. It is to avoid code duplication while generating a proxy classes using e.g. svcutil.
Is this indeed the preferred approach and have you ever had a project that was an exception from this rule?
We do this all the time in our projects and i don’t know what can be said against that approach.