svn - 如何使用共享的通用代码构建多个小型解决方案(迁移到 SVN)

标签 svn projects-and-solutions

我即将将我们的代码从 VSS2005 迁移到 VisualSVN(同时添加到 TeamCity)。

这给了我一次重组代码文件/文件夹的机会,我正在寻找一些关于如何构建多个小型解决方案的建议,这些解决方案通常包含其“区域”或每个项目通用的代码。

我有很多小型的内部应用程序 - winforms、MVC3 站点、控制台/服务应用程序等,通常是特定于部门的。大多数部门对于他们所处理的事情都有一些“通用”代码,然后还有大多数项目通用的一般通用代码,例如扩展方法。

默认情况下,VS2010 创建一个包含 .sln 文件的“Solution”文件夹,然后在下面创建“Project”文件夹。这意味着一切都是非常离散的 - 但共享项目更加困难,因为项目看起来是“特定于解决方案的”

我知道您可以引用任何内容,但在光盘结构上它“看起来”特定于解决方案

CommonCode
--CCProj1
--CCProj2
HR.ServiceApp
-HR.ServiceApp.sln
--HR.SmallApp1.DAL
--HR.SmallApp1.Service
HR.WinFormsApp
-HR.WinFormsApp.sln
--HR.SmallApp2.DAL
--HR.SmallApp2.WinForms

另一种结构可能是这样的:

CommonCode
--CCProj1
--CCProj2
HR
-HR.Service.sln
-HR.WinForm.sln
--HR.DAL
--HR.Service
--HR.WinForms

它将所有 HR 代码放在一个文件夹下 - 但对于新用户来说,使用多个解决方案可能会变得有点不清楚?

任何关于其他人通常做什么的建议都将非常感激(特别注意转向 SVN)


另一种选择

HR
-HR.Common
--HR.Common.Repository
---HR.Common.Repository.sln
----HR.Common.DAL
-----HR.Common.DAL.csproj
----HR.Common.BLL
-----HR.Common.BLL.csproj
-HR.Services
--HR.Services.Service1.sln
---HR.Services.Service1
----HR.Services.Service1.csproj
--HR.Services.Service2.sln
---HR.Services.Service2
----HR.Services.Service2.csproj

最佳答案

对于您的团队来说,结构化的答案更多的是问题,而不是问答网站。正如您所展示的,解决方案有多种,每种都有其优点。这完全取决于您的团队最舒服的方式。

就这与 SVN 的联系而言,事实并非如此。 SVN 将允许您按照您喜欢的方式构建,因为它与 IDE/编程语言等无关。

但是,当您处于过渡阶段时,您可以做的是创建多个代码分支,将其组成不同的结构,以便您可以向团队演示每种不同的方式。一旦做出决定,将最好的代码合并到主干中。为了管理这个分支,SVN 存储库的顶层应该有文件夹 trunk、branches 和 Tags。

关于svn - 如何使用共享的通用代码构建多个小型解决方案(迁移到 SVN),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14190165/

相关文章:

git - 如何将 OpenShift 与私有(private) BitBucket 存储库连接

wpf - 需要有关在一个 Visual Studio 解决方案中组织两个 WPF 应用程序的建议

visual-studio-2008 - 在 VS2008 中全局更改 "debugging/working directory"(不是每个用户)

c++ - 是否可以强制 CMake 在其他项目类型生成时生成 Visual Studio 项目?

java - 良好的移动和桌面架构

performance - 多次修改后的SVN性能

svn - 是否有可能实现类似 "global"Hooks 的功能?

c++ - svn重命名问题

visual-studio-2010 - VS2010 : Multiple solutions, 一个共享的C#项目文件/GUID

linux - SVN导出但排除某些文件?