关于版本兼容性

兼容性,有向上兼容和向下兼容的差别。

新版本能够支持旧版本就是向下兼容。
新版本有些时候可以向下兼容,但是很多时候也需要放弃旧代码的,这个时候旧的客户端就需要找到能够兼容他的老版dll。也就是产生了分支版本。

第二,向上兼容是旧版本能够兼容新版本。如果向下向上都兼容,那就是完全的兼容,就没有必要产生分支版本。如果旧的版本能兼容新的,说明新版本没有增加了接口,但是缩小了接口。这也是产生版本的一个因素。

对客户端来说,他需要找到最新的可兼容dll版本。首先他需要绑定一个最古老的可兼容版本,一般就是当前版本,然后运行时查找时候有,如果没有,运行时能够发现同族的其他版本。

然后查询新版本,因为新版本能够知道自己能兼容哪些旧版本。

版本产生的原因:
向上不兼容向下兼容   常见
向下不兼容向上兼容   修剪接口
向上向下都不兼容     革命性版本
向上向下都兼容       不需要添加新版本

建议版本排序:
革命性.修剪.常见.修订

方案之一:

其中,修订不影响兼容性。 

前面数字相同后,常见项数字大的兼容小的。

前面数字相同后,常见项相同,修剪项数字小的兼容大的。

革命性项变化总是不兼容。

对于接口编程来说,总是希望尽可能的利用兼容性,但是许多情况都是无法兼容的。并行执行不同版本的dll,是一个很好的解决方案。

原文地址:https://www.cnblogs.com/Nobel/p/1982747.html