title: Need for separting DataContracts and ServiceContract in WCF
body: <p>Visual Studio 2010 by default generates the following when I try to create a new WCF project. There is an interface for defining the methonds(Operation contracts in WCF terms) and an exclusive class which defines the Data that the definition of the service contract would use.</p>
  
  <pre><code>namespace iAMProxyService
  {
      // NOTE: If you change the interface name "IService1" here, you must also update the reference to "IService1" in Web.config.
      [ServiceContract]
      public interface IProxyService
      {
  
          [OperationContract]
          string GetData(int value);
  
          [OperationContract]
          CompositeType GetDataUsingDataContract(CompositeType composite);
  
          // TODO: Add your service operations here
      }
  
  
      // Use a data contract as illustrated in the sample below to add composite types to service operations.
      [DataContract]
      public class CompositeType
      {
          bool boolValue = true;
          string stringValue = "Hello ";
  
          [DataMember]
          public bool BoolValue
          {
              get { return boolValue; }
              set { boolValue = value; }
          }
  
          [DataMember]
          public string StringValue
          {
              get { return stringValue; }
              set { stringValue = value; }
          }
      }
  }
  </code></pre>
  
  <p>Now I am wondering if DataContract can help reduce any kind of dependancy between client and the server. That is, I feel that when I change the datacontract I don have to recompile the client code as it would be just having the interface(Service contract). Is  my assumption correct or am I missing something!? </p>