title: What's the point of a DataContract in WCF?
body: <p>VS.net creates a template when you create a WCF project.</p>
  
  <p>It adds a class to the iService1.cs file:</p>
  
  <pre><code>// 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>Since a WCF service can return any user defined class, why use a DataContract and CompositeType class?</p>
  
  <p>I can return something like:</p>
  
  <pre><code> [OperationContract]
  MyUserCollection GetUsers();
  </code></pre>
  
  <p>What am I missing?</p>