2011-01-22 73 views
2

當我們在.NET中開發應用程序時,我們還在開發結束時創建了安裝程序並將安裝程序發送給客戶端。客戶端安裝安裝文件。DotNet中的修補程序開發

當我們改變我們的代碼或在我們的應用程序中添加新的功能,然後我們再次創建設置,並讓客戶端再次安裝。在這種情況下,如果安裝文件的大小變得很大,有沒有什麼出路像補丁一樣,當我們在代碼中進行更改時,我們只是創建一個補丁並將該補丁提供給客戶端?

客戶端將安裝該補丁程序將獲得更改,並且以前的功能將在應用程序中完好無損。所以我如何才能賦予唯一的新增功能,或者只需要在補丁程序的幫助下將應用程序的一部分更改爲客戶端。

請詳細介紹所有實施此類設置開發的步驟,因爲它的重量非常輕。

感謝

回答

4

一個簡單的方法(特別是如果你的代碼簽名或混淆你的組件)就是要打破你的應用分成若干獨立的集(DLL)的。然後,如果更新代碼,則只需要部署實際更改的程序集。

最重要的是控制依賴關係:在開始時就很好地定義程序集之間的接口,並添加新接口來擴展現有功能(而不是對現有接口進行「重大更改」),以便可以對應用程序進行有用的更改,而無需在修補程序中部署大量程序集。 (如果存在很多依賴關係,您會發現在任何地方進行更改仍然需要您將幾乎所有的程序集部署到客戶,這在某種程度上會失敗)。

這種方法不能提供最緊湊的修補程序,但它非常簡單且易於實現 - 而且在很多情況下它可以提供「可接受的小」修補程序。它還鼓勵開發人員認真思考如何使用具有最小依賴性的優質模塊化設計 - 因此,即使您在頂部添加更復雜的修補機制,也值得這樣做(在合理範圍內)。

如果使用補丁方法,我還建議定期給客戶一個完整版本,因爲您應用的補丁越多,出現不同步的風險就越大。 (考慮Windows Update的工作原理 - 操作系統是通過補丁程序逐步更新的,但是現在和微軟都會發佈一個服務包,將所有小補丁捲成一個大補丁,並且不太經常地發佈全新版本的操作系統用戶必須從頭重新安裝)