我是我工作的公司的內部網開發人員,過去5年來我一直在這樣做。我的項目分爲兩個解決方案,即「Intranet」解決方案本身和「圖書館」解決方案。 「圖書館」sln本身有幾個包含DAL,BLL等的項目。我之所以把它們放在不同的解決方案中是因爲我認爲「也許」,有一天我的圖書館sln也可以用於其他項目 - 你知道重用我已經寫過的代碼:)那麼,那從來沒有發生過。現在,因爲它更容易讓所有項目都在同一個.sln中,所以我正在考慮這樣做。這是一個明智的情況嗎?如果你在我的鞋子裏,你會怎麼做?將所有項目添加到相同的解決方案?
回答
在過去,我已經在多個解決方案中使用和重複使用了相同的「項目」 - 我真的只是將解決方案看作是項目集合的「特定」實例。例如,對於相同的整體軟件,我們可能會有不同的解決方案,這取決於我們想要在單個測試中(在他們自己的項目中)和/或集成測試(在單獨的項目中),並且我們會爲我們即將做的事情打開正確的解決方案。這樣,如果您使用單元測試進行正常編碼,則不必每次都創建集成測試代碼,反之亦然。
唯一需要注意的是將一個項目引入到一個解決方案中,該解決方案依賴於很多其他項目/解決方案,然後「意外」更改其中的代碼而不意識到它在側面項目而不是主要碼。然後,你可以開始打破依賴它的其他項目的負載而沒有意識到!
使用持續集成,如cruisecontrol.net將幫助您實現更改依賴關係的時間。 – dar 2009-10-02 12:53:01
這是非常真實的 - 這裏唯一的問題是您是否持續集成應用程序阿雷阿dy發佈,並沒有積極的工作! – 2009-10-04 12:06:17
是的,你可以做到!由於項目設置存儲在特定項目文件(csproj,vbproj,...)中,您仍然可以重用您的DAL和BLL。還有依賴關係存儲在那裏,所以沒有問題和好去。我有一個插件架構,對於每個插件包,我都需要addin-host,它包含在幾個解決方案文件中。我從來沒有遇到過任何問題。在文本編輯器中打開* .sln文件以查看其內容......只是指向項目的鏈接。
只需將您的圖書館項目添加到您的Intranet sln。保持您的圖書館解決方案。
我個人都將它們添加到相同的解決方案,是的。也就是說,如果您計劃在其他項目中使用解決方案中的某些庫,則無關緊要:您仍然可以將編譯後的dll添加到這些解決方案中,或者您可以選擇將它們作爲現有項目添加到新解決方案中。
所以是的,我把所有的東西都添加到同一個解決方案中:gui-projects,libraries,甚至單元測試。也許如果你的解決方案成爲令人難以置信的大(20 +項目,或更大),它會更好地將它們分開,但我從來沒有在這樣的大型項目上工作。
我,就我而言,已經將解決方案和項目分開了,給我留下了一大堆項目和一些解決方案文件。我在新的解決方案中添加了我需要的所有項目。
好處是我的工作空間中只有我真正需要的項目,而且在所有其他解決方案中它仍會發生變化。 其缺點是它在所有其他解決方案中也會發生變化,這意味着如果您更改廣泛使用的庫的API,則如果不兼容,則必須檢查所有其他解決方案。
通常在下一個構建中出現不兼容問題您可以使用'Obsolete'因此編譯器會對它們發出警告 – Scoregraphic 2009-10-02 12:50:28
您是否建議將項目文件實際移動到Intranet解決方案所在的同一文件夾? – vikasde 2009-10-02 12:55:06
vikasde,我將所有項目移動到一個文件夾中,然後分離他們使用每個工具/程序的解決方案 – Bobby 2009-10-02 13:56:16
我更喜歡有2個解決方案。它們都具有相同的結構(或多或少),但第二個包含僅與特定項目無關的可重用基礎架構代碼。問題是 - 你的項目代碼不應該在嚴格的銀行業務邏輯旁邊包含類似框架(即'IsNumeric()'字符串擴展方法)的東西(即使你不會重用你的'庫')。這隻會讓事情更具可讀性和可維護性。
例如:
解決方法1:
- ProjectName.Core
- ProjectName.Infrastructure
- ProjectName.Application
- ProjectName.UI
- ProjectName.IntegrationTests
個- ProjectName.UnitTests
而且
溶液2:
- CompanyName.Core
- CompanyName.Infrastructure
- CompanyName.Application
- CompanyName.UI
- CompanyName.Tests
而且我儘量不要有超過10個項目在1個解決方案。否則 - 導致在「卸載項目」/「重新加載項目之間進行無限的切換
- 1. 將OutDir屬性添加到所有解決方案項目
- 2. 將解決方案添加到不同的TFS團隊項目
- 3. 將現有項目添加到解決方案的效果
- 4. 將現有項目添加到解決方案下visualvsn
- 5. 無法將Azure CloudService項目添加到現有解決方案
- 6. 將項目添加到現有Monodevelop(Mono Touch)解決方案
- 7. Visual Studio:添加相同的項目或引用到不同的解決方案
- 8. 現有的解決方案添加到現有項目的TFS
- 9. 找到解決方案中所有項目的所有參考
- 10. Cmake將新項目添加到解決方案
- 11. 通過命令行將項目添加到解決方案
- 12. 將新項目添加到解決方案
- 13. 將共享項目添加到新解決方案中
- 14. 將CMake項目添加到Visual Studio解決方案
- 15. 如何將JavaScript項目添加到Visual Studio解決方案
- 16. 將ProjectReference添加到不在同一解決方案中的項目
- 17. 同一解決方案中的項目究竟有多相關?
- 18. 將Windows 8.1項目添加到Windows Phone 8.1項目的解決方案
- 19. 解決方案中所有項目的共同資源
- 20. 將FreeImage .NET添加到解決方案
- 21. 將RestSharp.MonoDroid添加到解決方案
- 22. 將ios項目添加到xamarin表單解決方案與droid項目
- 23. 如何將其他解決方案的項目添加到新創建的解決方案中?
- 24. 在TeamCity中構建相同解決方案的不同項目
- 25. 大型解決方案,許多解決方案配置,添加新項目
- 26. 向TFS中的現有解決方案添加新項目
- 27. 如何從其他項目方法相同的解決方案
- 28. 在項目模板嚮導中添加解決方案項目
- 29. 如何使用roslyn將現有項目添加到c#解決方案中?
- 30. 在Visual Studio中將現有項目添加到解決方案「只讀」
現在每個解決方案中有多少個項目? – dove 2009-10-02 12:38:14