Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为多个应用程序组织.NET解决方案、项目和系统文件夹?_.net_Architecture_Projects And Solutions_Organization - Fatal编程技术网

如何为多个应用程序组织.NET解决方案、项目和系统文件夹?

如何为多个应用程序组织.NET解决方案、项目和系统文件夹?,.net,architecture,projects-and-solutions,organization,.net,Architecture,Projects And Solutions,Organization,我们很难以一种好的方式组织我们的解决方案。我们有多个应用程序。它们是类似的应用程序,因此需要进行大量的重用。不同的应用包括不同的功能,这取决于我们不同的客户将支付什么 那么,我们如何组织事情呢?表示按以下方式组织: SolutionFolder\ Proj1Folder\ Proj2Folder\ Proj3Folder\ ... (注意:解决方案文件夹是指系统上的实际文件夹,而不是visual stud

我们很难以一种好的方式组织我们的解决方案。我们有多个应用程序。它们是类似的应用程序,因此需要进行大量的重用。不同的应用包括不同的功能,这取决于我们不同的客户将支付什么

那么,我们如何组织事情呢?表示按以下方式组织:

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。情况变得更加复杂,因为每个功能都可能有子功能,而不是所有解决方案都有子功能。换句话说,可能有共同的a特征,但也有更具体的a-1特征、a-2特征等

除此之外,我们还希望根据n层体系结构对项目进行分组。所以,我想我们应该在中间添加BusinessServices、DataServices和UserServices文件夹。但是,将n层文件夹放在features结构之上或之下有意义吗?这就是我的大脑开始旋转的地方

同样的,我们希望在不同的项目中有我们的接口来支持实现。这可能没什么大不了的。我想我们会有一个AInterfacesProject1和一个位于同一目录级别的项目,这样它们就紧密地联系在一起了


如果有人对我的例子发表评论,我将不胜感激。而且,如果你有过处理我同样问题的经验,我会很好奇你是如何组织它的。

我能告诉你的就是我是如何组织我的项目的

我有一个ASP.NETCMS/框架;它由3个核心解决方案组成:

MyCode.Core (sln)
  \MyCode.Core.Common (proj)
  \MyCode.Core.BusinessLogic
  \MyCode.Core.IDataprovider 
  \etc...
核心sln是我对这些项目进行任何(认真)开发的唯一地方。 我将成功的构建复制到磁盘上的“中立”位置

其中包括dll的这些项目参考(MS Ent Libs、AntiXSS库)的副本

接下来,我有一个项目,它是一种用于“皮肤和模板”的SDK

此项目的输出被复制到与核心相同的中性位置。 这个项目引用MyCode.Core项目的输出——特别是那些保存在中立文件夹中的项目

最后,我有了web项目本身。我让VisualStudio按照它想要的方式来管理它。所有引用均针对复制到中性位置的DLL

因此,基本上我的方法是:

  • 只允许在一个解决方案的范围内编辑项目(基本上-决定谁“拥有”项目)
  • 将稳定副本复制/部署到实际解决方案/项目文件结构之外的中立位置,并引用这些共享代码副本
MyCode.Templates (sln)
  \MyCode.Templates.Nasqueron (proj)