TLDR:如何創建WCF服務,這是向後兼容 - 那就是,當我部署在服務器端的服務的新版本,在舊版本的所有客戶端可以仍在使用該服務。製作向後兼容WCF服務
我創建一個Web服務,將允許客戶端應用程序獲取插件的列表。我將至少有一個操作,如FindPlugins(string nameOrDescription)
這將在服務器上進行搜索並返回一個對象列表。
不幸的是,我不能保證我的客戶將全部更新我的服務的每個新版本;不知道,我是當然,他們中的很多人會跟蹤最新版本,並且會有舊版本 - 多大年紀,我不能確定,但我知道他們會老了:)
如果我創建新的服務操作,更改模式或者在服務器端進行某種中斷操作,我就完成了。我需要隨時設計向後兼容性。
下面是一個例子。假設我返回了一個名爲Plugin
的列表,每個列表都有一個名稱和說明,並且我部署了我的服務的v0.1。然後,我添加一個下載鏈接,並將其部署爲我的服務的v0.2。
,我看到一些選項是:
- 強制客戶端更新到最新的服務(行不通)
- 打破老客戶服務(行不通)
- 附加一個版本號,並且僅使用版本特定的操作(例如,
FindPluginsV1
,FindPluginsV2
) - 對於多個操作似乎不實用 - 提供與每個新版本的新服務 - 似乎並不實用
您的需求是否可以通過添加更多服務操作來滿足? – 2012-01-11 22:18:23
@hugh是的,就像我剛纔提到的那樣,我可以在每個操作上粘貼一個服務號碼(例如v1);或者通過擁有不同的服務(例如V1Service,v2Service)。但由於重複/維護,我不喜歡這種方法。 – ashes999 2012-01-11 22:47:55