2014-01-20 57 views
2

在我的公司,我們有一個關於我們使用的CMS功能的庫。但是,CMS的每個新版本(即使是修補程序)都會導致必須將新的dll添加到項目並編譯該特定版本的庫。 (這聽起來確實太可怕了。)針對第三方DLL進行編程的最佳做法是什麼?

目前的解決方案是在每個項目中只包含.cs文件,但這對我來說似乎同樣可怕。處理這種第三方組件的最佳解決方案是什麼?謝謝。

+1

如果API未更改,則不需要重新編譯。有沒有更大的問題造成這種情況? – Magus

+0

正如@Magus提到的,如果API不改變,你不需要重新編譯。另外,在添加對第三方dll的引用時,請確保在項目屬性中未綁定到第三方dll的特定版本,這樣可以避免爲每個版本重新編譯。在這種情況下,您可以部署更新的程序集,而無需重新編譯,從而使應用程序可以正常工作。 – srsyogesh

+0

@Magus我找不到任何項目級別的選項。單獨的DLL被標記爲SpecificVersion = false。 – Ber53rker

回答

1

我的經驗是在你的第三方和你開發的代碼之間使用一個façade類。通過這種方式,當他們「對他們的代碼進行想要的調整」時,您只需調整您的外觀,即代碼中的單個位置。有些人稱外牆爲包裝。

現在,如果您使用的是可視化控件集的東西,那麼您只需在衝出時滾動,並在出現時非常小心地安裝更新,不要讓開發人員隨意安裝。

3

檢出BridgeAdapter模式。你的情況聽起來像是一個理想的候選人。基本上,你需要在第三方DLL和你的代碼之間建立一個圖層。該DLL將爲您的代碼提供一致的,不變的接口,並與另一方的第三方庫進行通信。無論何時庫更改,您只需在此適配器層中進行更改,以使其與新版本兼容,而不會更改其提供給主應用程序的接口。其餘的應用程序將繼續工作沒有問題。

相關問題