1

I have a .Net system which 3rd parties can extend when they reference supplied API assemblies. My concerns are with backwards compatability, namely I need to ensure that whenever binary non-breaking changes are made to the supplied API assemblies (for example a method is added):

  1. Plugins built using the old version should still work when running the new version.
  2. However plugins built using the new version should not work when running the old version (as otherwise this may lead to runtime failures if the plugin tries to call a method that doesn't exist)

Because of the second requirement I can't simply keep the version numbers the same - the only way I then know of then satisfying requirement 1. is by using binding redirection which requires maintaining a long list of all previous version numbers for all API assemblies. This seems error-prone and tedious.

Is there any alternative strategies for maintaining sensible backwards compatability when dealing with .Net assembly version numbers?

Community
  • 1
  • 1
Justin
  • 80,106
  • 47
  • 208
  • 350

0 Answers0