2

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

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

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

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

我知道你可以参考任何东西,但在磁盘结构上它“看起来”特定于解决方案

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
4

2 回答 2

2

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

就这与 SVN 的关系而言 - 它没有。SVN 将允许您随意构建,因为它与 IDE/编程语言等无关。

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

于 2013-01-10T14:26:11.387 回答
1

我认为您必须保持逻辑软件配置和SVN结构分开。我会做这样的一般结构:

- trunk
    - <general structure>
- branches
    - release_bugfix01
        - <general structure>
    - release02_rc1
        - <general structure>
- tags
    - release01
    - release02

其中“一般结构”是:

 - common_code_1
 - common_code_2
 - project_one
 - project_three
 - winform01
 - humanresources_MVC3_site
 - console_service_app01

项目和公共代码的内部结构可以是你想要的任何形状,项目和公共代码之间的逻辑依赖关系必须在存储库之外定义。

您可以在SVN Book中阅读有关标准布局的更多信息

于 2013-01-10T14:35:42.027 回答