2011-09-01 17 views
9

最喜歡的商店,我們已經有了一個團隊的人在各種項目工作的所有需要​​訪問與我們的業務相同的核心信息和功能,通常在C#。我們目前只是將項目中的常用課程複製到項目中,但每個人都開始擁有自己的口味,並希望進行整合。使共享庫可用於多個應用程序的最佳方式是什麼?

我們使用烏龜SVN,並已決定維持一個單獨的項目來包含我們的共同類,但不能確定部署這個共同的代碼,我們的各種應用程序的最佳途徑。我們爲內部IT部門工作,可以決定用戶如何訪問應用程序的所有內容,我們不必擔心將我們的產品發佈到現實世界中。

我們的一些想法已經:

  1. 編譯的類到一個單一的DLL並將其加載到全局程序集緩存(GAC)
  2. 類編譯成一個DLL並將其保存到一個位於中心位置的共享驅動器可供所有其他項目參考
  3. 將類編譯爲單個DLL並將其包含在每個項目中
  4. 只需在啓動項目時獲取最新的類,但沒有中央共享庫(我們對此的解釋是: http://www.yosefk.com/blog/redundancy-vs-dependencies-which-is-worse.html
  5. SVN的外部對象http://svnbook.red-bean.com/en/1.0/ch07s03.html

我知道這是一個常見的問題,如果你花時間尋找到這些或其他選項,你總是找人解釋每種方法的缺陷(版本,迴歸測試,「DLL地獄」,「GAC糟糕」等)。我幾乎找不到任何人在討論什麼是工程以及爲什麼。有一種首選的方法嗎?

+0

通過「複製公共類」,這是否意味着您真的在項目中創建一個新的.cs文件,並將所需類中的數據複製到新的.cs文件中? – docmanhattan

+0

@docmanhattan我的意思是複製的.cs文件本身,並將它們添加到新項目 – kscott

回答

2

在我的公司,我們有同樣的問題。目前,我們只是使用轉到我們的SVN Trunk的.bat文件,並拉取最新的.dll引用,併爲您正在處理的項目填充本地References文件夾。

不過,我們目前正在在這種開關係統NuGet。我不是100%確定它是如何工作的,但它絕對值得研究。看起來你可以使用插件設置它,你可以將它指向一個共享代碼庫,然後在Visual Studio中,它剛剛右擊並擊中「更新」每次你需要獲得最新的代碼一樣簡單。

+0

的NuGet可私設的,所以我也建議此。這將使圖書館的更新變得輕而易舉 – KallDrexx

相關問題