【发布时间】:2010-10-14 18:11:19
【问题描述】:
我们在以一种好的方式组织我们的解决方案时遇到了很多麻烦。我们有多个应用程序。它们是相似的应用程序,因此完成了很多重用。不同的应用程序包含不同的功能,具体取决于我们不同的客户将支付的费用。
那么,我们该如何组织事情呢? MSDN 表示按以下方式组织:
SolutionFolder\
Proj1Folder\
Proj2Folder\
Proj3Folder\ ...
(注意:解决方案文件夹是指系统上的实际文件夹,而不是 Visual Studio 解决方案文件夹。)
但没有提及有关重用项目的多个解决方案的详细信息。在第一个解决方案文件夹下创建第二个解决方案文件夹并引用项目是没有意义的。我的第一个想法是完全隔离解决方案,然后根据需要引用项目。那有意义吗?见下文:
Solutions\
Solution1.sln
Solution2.sln
Solution3.sln
Projects\
AFeatures\
AProject1\
AProject2\
AProject3\
BFeatures\
BProject1\
BProject2\
CFeatures\
CProject1\
CProject2\
在上面的示例中,我根据某些功能对项目进行了分组。解决方案 1 可能包括功能 A 和 C,解决方案 2 可能包括功能 B 和 C,解决方案 3 可能包括 A 和 B。事情变得更加复杂,因为每个功能都可以有子功能,这些子功能不会出现在所有解决方案中。换句话说,可能有常见的 AFeatures,但随后会有更具体的 A-1Features、A-2Features 等。
除此之外,我们还希望根据 n 层架构对我们的项目进行分组。所以,我想我们也会在其中添加 BusinessServices、DataServices 和 UserServices 文件夹。但是,将 n 层文件夹放在功能结构之上或之下是否有意义?这是我的大脑开始旋转的地方。
同样,我们希望我们的接口在不同的项目中实现。这可能没什么大不了的。我想我们会有一个 AInterfacesProject1 和 AProject 在同一目录级别,所以它们很接近。
我会感谢任何人对我的示例的 cmets。而且,如果你遇到过我同样的问题,我会很好奇你是如何组织它的。
【问题讨论】:
标签: .net architecture projects-and-solutions organization