我已閱讀this關於強命名和遠程處理困境的優秀博客,這些都是我正在經歷的。我應該強烈地將我的程序集命名爲遠程處理程序嗎?
基本上,客戶端應用程序將始終需要加載強命名的公用程序集的同一版本當服務器返回從共同裝配到客戶端自定義類型的服務器使用。即:
問題一個遇到的是:只要是有區別的 客戶端上的常見類型庫的強名稱之間,以及 服務器上的常見類型庫的強名稱,一切 休息。只要有任何值得注意的 客戶端/服務器通信開始,遠程處理就會拋出異常。
這是比較煩人的,因爲我們在構建時更新版本號,即使沒有對常用程序集進行更改。實現可能沒有改變,只是版本號。
我目前正在通過應用綁定重定向/發佈者策略來實現這一點 - 但是這似乎很多工程只是爲了符合關於程序集解析的強名稱規則。
我試過不是強烈的命名爲在博客中推薦的常見程序集,這工作正常/我沒有得到any remoting exceptions - 但是,這是推薦?
我沒有向GAC添加普通程序集(它只是包含接口),也不太擔心被篡改,只要我仔細更新接口以保持向後兼容性/ not break existing clients就足夠了,因此不需要強大的命名?
在此先感謝。
PS:我知道WCF,但我仍然需要維護遠程接口。
我的經驗,強大的命名會給開發者帶來更多的麻煩,而不是幫助:庫中的每個小錯誤修復都需要使用該庫重新編譯每個應用程序。因此,除非有必要,否則我會避免它(GAC就是一個例子)。 – Heinzi 2012-03-13 16:27:29