最喜歡的商店,我們已經有了一個團隊的人在各種項目工作的所有需要訪問與我們的業務相同的核心信息和功能,通常在C#。我們目前只是將項目中的常用課程複製到項目中,但每個人都開始擁有自己的口味,並希望進行整合。使共享庫可用於多個應用程序的最佳方式是什麼?
我們使用烏龜SVN,並已決定維持一個單獨的項目來包含我們的共同類,但不能確定部署這個共同的代碼,我們的各種應用程序的最佳途徑。我們爲內部IT部門工作,可以決定用戶如何訪問應用程序的所有內容,我們不必擔心將我們的產品發佈到現實世界中。
我們的一些想法已經:
- 編譯的類到一個單一的DLL並將其加載到全局程序集緩存(GAC)
- 類編譯成一個DLL並將其保存到一個位於中心位置的共享驅動器可供所有其他項目參考
- 將類編譯爲單個DLL並將其包含在每個項目中
- 只需在啓動項目時獲取最新的類,但沒有中央共享庫(我們對此的解釋是: http://www.yosefk.com/blog/redundancy-vs-dependencies-which-is-worse.html)
- SVN的外部對象http://svnbook.red-bean.com/en/1.0/ch07s03.html
我知道這是一個常見的問題,如果你花時間尋找到這些或其他選項,你總是找人解釋每種方法的缺陷(版本,迴歸測試,「DLL地獄」,「GAC糟糕」等)。我幾乎找不到任何人在討論什麼是工程以及爲什麼。有一種首選的方法嗎?
通過「複製公共類」,這是否意味着您真的在項目中創建一個新的.cs文件,並將所需類中的數據複製到新的.cs文件中? – docmanhattan
@docmanhattan我的意思是複製的.cs文件本身,並將它們添加到新項目 – kscott