title: Request and Response objects and WCF versioning
body: <p>I'm in the process of designing my first "proper" WCF service and I'm trying to get my head around how to best handle versioning of the service.</p>
  
  <p>In older ASMX web services, I would create a<code>MethodNameRequest</code> and <code>MethodNameResponse</code> object for each web service method. </p>
  
  <p>A request object would really just be a POCO wrapper around what would typically be in the method parameters. A response object might typically inherit from a base response object that has information about any errors. </p>
  
  <p>Reading about WCF and how the <code>IExtensibleDataObject</code>, <code>FaultContractAttribute</code> and Namespacing works, it seems that I can revert back to using standard parameters (string, int etc) in my method names, and if the service is versioned, then <code>ServiceContract</code> inheritance can provide this versioning.</p>
  
  <p>I've been looking into <a href="http://msdn.microsoft.com/en-us/library/ms731060.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/ms731060.aspx</a> and linked articles in that, but I was just looking for a bit of clarification.</p>
  
  <p>Am I correct in thinking that dispensing with the Request/Response objects is more ideal for WCF versioning?</p>
  
  <p>EDIT: I just found this article which suggests using explicit request/response object: <a href="http://www.dasblonde.net/2006/01/05/VersioningWCFServiceContracts.aspx" rel="nofollow">http://www.dasblonde.net/2006/01/05/VersioningWCFServiceContracts.aspx</a></p>