Is it a good practice to define DataContracts in an enterprise level assembly and then reference them in WCF service projects as opposed to defining them at the individual WCF service solution level? All of the WCF examples that I have seen have avoided that topic and have only defined DataContracts in the service solution. Some programmers I converse with want to see DataContracts as a different flavor of an enterprise level canonical data model instead of a service local contract. I have yet to find any arguments for or against that point of view.
It may be difficult to choose a correct answer to this question, but I will try. I will at the very least give upvotes to anything that I feel adds to my understanding of the topic.