将解决方案拆分为逻辑层时,何时最好使用单独的项目而不仅仅是按文件夹分组?

===============>>#1 票数:18 已采纳

默认情况下, 始终只在同一项目中创建新文件夹

  • 你将获得单人组装(没有额外的ILMerge体操)
  • 更容易混淆(因为你将拥有更少的公共类型和方法,理想情况下根本没有)

将源代码分成多个项目只有在你...时才有意义。

  • 将源代码的某些部分作为项目的一部分但默认情况下不可部署(或单元测试,额外的插件等)
  • 更多的开发人员参与其中,您希望将他们的工作视为可消耗的黑匣子。 (不是很推荐)
  • 如果您可以清楚地将项目分离为隔离的层/模块,并且您希望确保它们不能交叉使用内部成员。 (也不推荐,因为你需要决定哪个方面最重要)

如果您认为源代码的某些部分可以重用,仍然不要将其创建为新项目。 只要等到你真的想在另一个解决方案中重复使用它,并根据需要将其从原始项目中分离出来。 编程不是乐高,重用通常非常困难,往往不会按计划进行。

===============>>#2 票数:8

将功能分离到项目中通常是YAGNI架构优化。 你经常重复使用那些单独的项目吗? 如果不经常发生,那么您的开发,构建,部署和维护会使理论重用变得复杂。

我更喜欢分离到文件夹(使用适当的命名空间),并在您拥有真实的重用用​​例时重构为单独的项目。

===============>>#3 票数:6

denny写道:

我个人认为,如果将可重用代码拆分为项目,则使用其他位置比使用文件夹更简单。

我真的同意这一点 - 如果你可以重复使用它,它应该在一个单独的项目中。 有了这个说,它也很难有效地重用:)

在SO,我们试图通过三个项目非常简单:

  • MVC Web项目(默认情况下可以很好地将图层分成文件夹)
  • 我们的数据库源控制的数据库项目
  • 针对MVC模型/控制器的单元测试

我不能代表所有人,但我很高兴我们保持这么简单 - 真正加快了构建速度!

===============>>#4 票数:4

我通常为GUI做一个项目,一个用于业务逻辑的项目,一个用于数据访问的项目和一个用于单元测试的项目。

但有时,基于服务进行分离是明智的(如果您使用的是面向服务的体系结构),例如身份验证,销售等。

我认为我所处理的经验法则是,如果你能将它视为一个明确分离关注点的组件,那么一个不同的项目可能是谨慎的。 但我认为文件夹与项目可能只是一种偏好或哲学。

我个人认为,如果将可重用代码拆分为项目,则使用其他位置比使用文件夹更简单。

===============>>#5 票数:0

将您的源代码分成多个项目只有在您...时才会有意义......更多的开发人员参与其中并且您希望将他们的工作视为可消耗的黑盒子。 (不是很推荐)......

为什么不推荐这个? 我发现它是一个非常有用的方法来管理一个应用程序与几个开发人员在不同的部分工作。 使签入更容易,主要是通过几乎消除合并。 很少有两个开发人员同时在同一个项目上工作。

===============>>#6 票数:0

如果您确实要创建多个项目,请确保为解决方案添加代码的每个人都充分了解他们的意图,并尽一切可能让他们了解项目之间的依赖关系。 如果你曾经试图解决这个问题,当有人去了,并添加了不应该在那里的参考文献并且侥幸逃脱了几个星期你会理解这一点

===============>>#7 票数:0

我真的认为拆分项目也更好,但这一切都取决于项目的规模和工作人数。

对于大型项目,我有一个项目

  • 数据访问(模型)
  • 服务
  • 前端
  • 测试

我得到了Rob Connery的模型和他的店面应用......似乎工作得非常好。

MVC的店面

  ask by Dan translate from so

未解决问题?本站智能推荐: