title: Verify WCF interface is the same between client and server applications
body: <p>We've got a Windows service that is connected to various client applications via a duplex WCF channel.  The client and server applications are installed on different machines, in different locations, potentially at widely different times, and by different people.  In addition, the client can be pointed at a different machine running the same Windows service at startup.</p>
  
  <p>Going forward, we know that the interface between the client and the server applications will likely evolve.  The application in the field will be administered by local IT personnel, and we have no real control over what version of either of these applications will be installed when/where or which will be connecting to the other. Since these are installed at various physical locations and by different people, there's a high likely that either the client or server application will be out of date compared to the other.</p>
  
  <p>Since we can't control what versions of the applications in the field are trying to connect to each other, I'd like to be able to verify that the contracts between the client application and the server application are compatible.</p>
  
  <p>Some things I'm looking for (may not be able to realistically get them all):</p>
  
  <ul>
  <li>I don't think I care if the server's interface is newer or older, as long as the server's interface is a super-set of the client's</li>
  <li>I want to use something other than an "interface version number".  Any developer-kept version number will eventually be forgotten about or missed.</li>
  <li>I'd like to use a computed interface comparison if that's possible</li>
  </ul>
  
  <p>How can I do this?  Any ideas on how to go about this would be greatly appreciated.</p>