是否存在会导致性能问题的最大项目数。我们现在有多达25个项目并且还在增长。我们应该引用这些二进制文件,还是将我们的应用程序逻辑分解为太多不同的项目。似乎最近开始成为一个重大的性能问题。
答案 0 :(得分:5)
拥有太多DLL文件可能会在运行时花费您,因此我建议您尝试最小化项目数量。创建多个解决方案也是一种选择,但尝试使解决方案彼此独立,这样您就不必在多个解决方案中调试和实现新功能 - 这可能很麻烦。
看一下这篇文章:Project anti-pattern: Many projects in a Visual Studio Solution File。
答案 1 :(得分:1)
所有25个项目都存在依赖关系吗?如果某些项目不依赖于其他项目,请将它们放在自己的解决方案中。
如果您不需要,则不编译整个解决方案,而通常不编译整个解决方案。通常,您可以右键单击刚修改的项目并进行编译。 VS将确定需要重新编译哪些依赖项目。
除非您计划达到断点,否则请使用“不启动调试”。
某些DLL是否稳定并且长时间没有变化?它们也不一定在你的解决方案中。
除非你真的需要,否则不要搜索整个解决方案。
真正的限制是人的头脑。一个项目中可以处理多少个文件?此外,除非您使用ndepends来跟踪依赖项,否则在一个项目中放置许多类可能会导致太多类,具体取决于其他类,从而使更改变得更加困难和风险更大。
答案 2 :(得分:1)
通常我们会尝试将解决方案中的项目数量保持在10以下.10之后,您开始慢编译时间并减慢“项目重新加载”时间。
但这里的主要问题是为什么你有26个项目?一个简单的网站只能有一个项目,同时保持数据层,业务层,表示层都在同一个项目中。
如果你只拆分这个3层的项目,我建议你修改它。例如,我们为3层提供了3个项目。我们在单独组装中有3层的原因是我们正在考虑其他软件以便在我们的项目中使用数据层。将业务层保留在主要演示项目之外使我们能够轻松地对业务层进行单元测试,同时将无用的依赖项保留在现有层之外。
因此,总体而言,将项目保持在10以下并审核是否可以将某些项目合并到一起。它将在编译时和构建时节省您的时间。管理这些DLL也会更容易。
答案 3 :(得分:0)
我会说它在构建时花费你而不是运行时。而且越少越快,但也许你并不总是建立所有这些。如果是这种情况,那么你应该减少金额。否则将它们分成不同的解决方案。然后只有构建服务器需要构建所有这些,并且每日构建都需要整晚构建; - )