Is there any attibute or similar mechanism to inform a web service consumer that a Service/Operation contract has been deprecated? I have a set of WCF services that need updating. As part of this update I would like to simplify some of the original design. I plan on leaving the existing operations in place but I would like to somehow inform the end users that they have been deprecated in favor of the new operation/service. What are the best practices for accomplishing this?
I worked in Financial Services for a while and we relied on a vendors services (they were not WCF based, but services nonetheless) to get financial information from the core banking systems. Versioning etc are all good and maintaining backward compatibility so that clients don't break is a noble effort and one that should be commended. However, in the spirit of key releases they would always rely on a good old fashioned change document indicating which of their service messages were changing, which responses would have certain fields eliminated and the suggested alternative. They would use wording such as "xxx" response field of message "yyy" is slated to be retired in a future release, please do "xyzabc".
If you have a governance/ESB solution in place, you will most likely know who your consumers are, which makes it a tad easier to convey this information. Our vendor partner usually gave advance notice for 2 releases after which the changes would take effect and clients would break, but when financial transactions are involved, you take notice of the changes and implement them sooner than later. Just my $0.02.