2012-03-07 67 views
1

我們正在開展一個大型項目。該項目有多個外部站點和多個內部站點都存儲在Subversion中。建立這樣的項目的建議方式是什麼?

外部網站允許一個客戶做的,我們提供各種事情的要求,繳納水電費等。我們決定將這些功能分開,因爲大多數工作與其他工作完全不同。因此,這是一個Visual Studio解決方案,其中WebUI和數據庫層分爲兩個項目。例如,公用事業賬單有一個Utility.WebUI項目和一個Utility.Domain項目。所有數據庫/業務邏輯保存在域項目中。

內部網站彌合後臺系統之間(IBM i)和Web數據庫的差距。也將取代/增強一些我們的老RPG節目。理論上他們應該使用與外部站點使用的完全相同的數據庫邏輯,因爲他們訪問相同的數據庫權利?從不同的解決方案中引用這些項目的最佳方式是什麼?我應該只是添加一個對dll的引用,還是應該將該項目從外部應用程序解決方案導入到內部應用程序解決方案中?

這歸結於我們有兩個開發人員在這個項目上的工作。我自己,我做了大部分後端編碼。其他開發人員執行大部分GUI編碼。所以我們需要確保這個項目在多個工作站上工作。

這是否有意義?有什麼想法嗎?

回答

1

使用svn:externals屬性引用共享項目到您的項目(S)。

您必須在1)引用包含共享項目源代碼(即csproj和cs文件所在位置)的目錄或2)引用包含共享項目構建輸出(assembly/dll)的目錄。

我通常喜歡方法1),因爲它使修改共享項目的源代碼更容易(你可以進行更改,而不必在Visual Studio的第二個實例打開共享項目的解決方案)。如果您不打算經常更改共享項目,那麼方法2)可能會更好。它減少了編譯時間並防止了共享項目源代碼的意外修改。這兩種方法都很好 - 品味。

推薦兩種方法,您版本的共享項目。即創建帶有版本號的標籤並引用標籤,而不是主幹。當新版本的共享項目出來時,您可以使用新版本號更新其他項目的svn:externals屬性,運行「svn update」以下載共享項目的新版本並重新編譯。如果你有一個自動爲你添加標籤的共享項目的構建服務器,這種方法效果特別好。

0

我認爲你可以使用一種包含常用項目的「commons」解決方案,然後在你的主要解決方案中使用SVN外部指向SVN中繼項目文件夾的主要解決方案。

Commons SVN存儲庫必須遵循建議的存儲庫結構(trunk,branches,tags)才能始終保持穩定的commons項目。

在這種情況下,您可以考慮使用依賴關係管理工具,如NPanday或NDepend,您必須聲明每個項目所依賴的哪些程序集版本;使用這些工具,您可以擁有一個二進制程序集的本地存儲庫(如Artifactory或Nexus)來引用,或者選擇使用SVN外部函數直接引用源代碼。

相關問題