WCF Service Backward Compatibility Check

I just wrote a new version of the WCF web service, and I want to make sure that I have not violated any changes regarding service contracts and data.

Returning to my days as a developer of VB6 Com Api, I recall how easy it was to point out the previous version of the component release at compile time and check the compiler for binary compatibility.

I am assuming something like that, called (hopefully) "Contract Compatibility Check". It will use metadata to perform a similar check with the one performed by VB6 dev env. This can be done as a separate build step that will run the utility program.

I am ready to admit that there is no such utility. If so, does anyone have any ideas on what the algorithm looks like to achieve this?

  • Get metadata from the current version of the current service
  • Get metadata from the new version of the service
  • Check service contract and each data contract for compatibility. Only report abuse.

Step 3 seems to be difficult, but definitely automatic ...

+6
web-services versioning backwards-compatibility metadata wcf
source share
4 answers

These situations are resolved by testing integration / regression. You write integration tests for the initial version and, after changing the service to the new version, run integration tests again using the old client. If they succeed, you will not break anything. If they fail, you see exactly what challenges have caused problems.

+4
source share

There is nothing like Andy, but if you run and use something, you have 2 DLLs (one old and one new), you can use something like BitDiffer to compare them.

There was a Codeplex project that helped with the release of WCF, but I can’t remember what it's called, sorry.

Good luck

-Keith

+1
source share
0
source share

Try generating unit tests using the "Codeplex WCF Load Test" for the old interface and run them on the new one:

This tool uses the WCF trace file and the WCF proxy server or WCF interface contract and generates a C # unit test that repeats the same sequence of calls as in the trace file. unit test can then be used to load-check the target.

0
source share

All Articles