I'm reviewing best practices articles for WCF versioning. A lot of the recommendations revolve around one decision: "Are you using strict versioning? If so, treat every contract as immutable. If not, .. [list of additional recommendations..]"

The problem is that none of these articles really explain scenarios where you would assume strict versioning. That is, with two exceptions: 1) having no clue whatsoever as to what the client deploy base looks like (could be explicitly strict, could be Java, could be anything), and 2) not using WCF to begin with. But in a scenario where clients are carefully distributed within an enterprise, and only WCF is used, are there any other scenarios where one would choose to establish strict validation?

  • Probably for the same reasons that most developers suggest you don't use string concatenation in SQL statements, even if your application will never see the light of day outside the enterprise. Mar 24, 2015 at 20:54
  • Well with string concatenation it's a best practice to never do that. I wasn't inferring that strict schema validation was considered a best practice because it isn't, in fact most people version their WCF solutions without that and Microsoft's recommended strategy seems to be non-strict (lax) w/ IExtensibleDataObject everywhere. I am just trying to make sure I've eliminated all the criteria for assuming strict validation when making changes to a WCF-based enterprise solution.
    – stimpy77
    Mar 25, 2015 at 17:07


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.