我对解决方案加载时间和构建时间特别感兴趣 - 更少的解决方案是否意味着更好的性能?

请注意,我是 不是 指的是所构建应用程序的性能。

处理较少数量的项目时,加载时间和构建时间是否更高效?

作为指导,我们的 Visual Studio 解决方案中有 50-60 个项目。

有帮助吗?

解决方案

我取决于您的项目,大部分时间我的工作与10-15.该小项目的短建造时间。

项目中我通常必须是:

  • 基本项目的例外和错误的处理
  • 业务逻辑
  • 数据存取层-仓库
  • Web表单或它或WPF UI

这些我会单独为3-4个其他项目。我还有关试验项目。

其他提示

  

(我在特别感兴趣   溶液负载倍&构建时间 -   确实较少的解决方案,意味着更好的   性能?)

这里是由帕特里克Smacchia描述具有少量组件(此后少数项目)的好处相关主题。他谈到究竟如何组件的数量会影响建立时间等因素。

我鼓励你阅读帕特里克博客。他有很多的有关代码组件化的文章。

上分割码建议通过.NET组件

吸取NUnit的代码库了解到

关于如何组件化现有代码提示。

从我个人的经验,这是一个痛苦的几个几十个项目的解决方案。 IMO有超过10个项目将导致明显的维护问题,影响您的工作效率。

50-60听起来很多给我。我发现,用的大量的项目的,打开Visual Studio可以花费很长的时间。建造时间,如果你改变一个项目,很多其他项目的依赖可能是坏的,但我不知道那是10个项目中有20个班中每100个项目在每2个项目之间有什么不同。 (换句话说,我不知道每个项目的开销建设。)即使您的的改变什么,想必每个项目都有检测它是否需要重建什么 - 我无法想象那是免费的,但很难给什么更明确不使用自己的代码尝试它

我一直在有一堆的只有少数几类中的每个项目不同的公司 - 它可以很容易地被合并成一个单一的项目类别。这已维修/管理性为好,以我的经验。 (不这样做无可奈何地,当然 - 。仅仅是明智)

如果你实际上得到合理规模的项目,只是他们中的很多,考虑拆分解决了,如果可能的。如果他们都是很小的项目,可以考虑把它们组合起来。如果你没有发现自己等待的Visual Studio反正(开/建筑),那么就不要太担心。

这是一个坏主意,有您的解决方案中的项目过多。它影响的建造时间。请参见这篇文章,做的构建时间与几个编译工具的比较。根据这篇文章,Visual Studio中需要每项目2秒,即使项目不是构建的一部分。

这也符合我的经验,Visual Studio是可用的最慢的构建工具之一。 Visual Studio的6年至2006年,我的体型时间一分钟移动以5分钟为一个相对简单的C项目。

迟到了,但没有一个答案至今提到构建配置。 你可以有很多的项目,你的解决方案,而所有这些正在兴建每次运行时间。点击调试/发布组合,并创建一个新的生成配置 - 那里,你可以决定要建立或没有哪个项目

为什么这样做?我这样做,这样我可以随意“去定义”,所以我可以迅速换项目,我的身材没有通过所有添加的项目痛下去。

此外,请注意,如果你有解决方案的文件夹,你可以右键点击并建立文件夹,这将构建所有项目文件夹中的。

我看到当你创造出很多小项目的问题是:

1 /的封装:要两个项目之间共享的类,方法或属性必须是公开的,因此从随处可见。你有更多的项目,越有可能是你透露一些秘密......

2 /组件的总数:作为的阿库写的,更少的项目meens更少组件。由于每个项目的本地复制他们所使用的组件,你可以起床(N *(N - 1))在您的文件夹/ 2组件(组件1的49份,组件2的48,......)。对于50个项目,这是 1176 文件! =>好吧,你可能有很多更小(200?),但它仍然是足够多的获得复制或两个过时的在这里和那里...

我上具有大量的项目的项目工作,在50-60的境界,我已经发现,与显影剂lazyness / forgetfulnes相关联的问题相比,长的加载时间是可接受的。

项目的许多都依赖于基础库,因此需要重建时,基础库被改变。由于项目可以在任何给定的时间一些流量,让开发人员只对一个子集工作,也就是说,如果他们是懒惰的,当从CM工具收到的更新,他们不会重建整个应用程序。然后,他们可以花费大量的时间试图解决的事情,实现东西为什么被打破。这是所有解决,如果整个依赖树是由VS和快速众所周知集结一切可以让一切正常工作。

我认识到,一个优秀的开发人员知道这一点,在默认情况下做到这一点,但不是每个人是伟大的,有时甚至是伟人有休息日。

在我看来,这只是一个个人organizzation和秩序的问题。如果你觉得喜欢有很多的是同一个解决方案下以某种方式连接对方的项目,你可以做到这一点。我认为你必须要考虑,如果你真的需要它们。有没有这样的东西的每溶液项目神奇最大数目

一般实践中我尽量保持到4-5项目每解决方案。

  • 业务逻辑
  • 通信层(服务器有关的)
  • 用户界面
  • 试验项目利用/测试的其他三个项目

这通常符合我们的风格,以及我们如何去实现它。如果有必要,我们可以包括其它的东西在那里,但这些实例并不常见,因为这四个对于我们。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top