相容性,有向上相容和向下相容的差別。
新版本能夠支援舊版本就是向下相容。
新版本有些時候可以向下相容,但是很多時候也需要放棄舊程式碼的,這個時候舊的客戶端就需要找到能夠相容他的老版dll。也就是產生了分支版本。
第二,向上相容是舊版本能夠相容新版本。如果向下向上都相容,那就是完全的相容,就沒有必要產生分支版本。如果舊的版本能相容新的,說明新版本沒有增加了介面,但是縮小了介面。這也是產生版本的一個因素。
對客戶端來說,他需要找到最新的可相容dll版本。首先他需要繫結一個最古老的可相容版本,一般就是當前版本,然後執行時查詢時候有,如果沒有,執行時能夠發現同族的其他版本。
然後查詢新版本,因為新版本能夠知道自己能相容哪些舊版本。
版本產生的原因:
向上不相容向下相容 常見
向下不相容向上相容 修剪介面
向上向下都不相容 革命性版本
向上向下都相容 不需要新增新版本
建議版本排序:
革命性.修剪.常見.修訂
方案之一:
其中,修訂不影響相容性。
前面數字相同後,常見項數字大的相容小的。
前面數字相同後,常見項相同,修剪項數字小的相容大的。
革命性項變化總是不相容。
對於介面程式設計來說,總是希望儘可能的利用相容性,但是許多情況都是無法相容的。並行執行不同版本的dll,是一個很好的解決方案。