I was curious if someone could outline which types of WCF contract (interface) changes on the server side would break a client trying to send in a message, and why. I believe W
Design recommendations for contracts
First version
1.1. Carefully choose names for all contracts (interfaces, methods, classes and properties). These will be hard to change in future versions.
1.2. Remember, that following cannot be changed in future: number of method parameters;type of parameters/return values/properties for types not under your control.
Next version
2.1. If already exists, do NOT change Namespace or Name parameter on any xxxContractAttribute.
2.2. If already exists, do NOT change Order property of the DataMemberAttribute.
2.3. Only following changes are allowed:
Add method (OperationContract) to interface (ServiceContract)
Rename method on interface
Rename class (DataContract)
Add property (DataMember) to class (DataContract)
Rename property on class
2.4. Any deletion breaks compatibility.
2.5. Any other change breaks compatibility.
Here are few useful links: