C# VisualStudio大型解决方案

C# VisualStudio大型解决方案,c#,visual-studio,C#,Visual Studio,我已经为我的Web应用程序找到了一个解决方案,其中包括近12个项目和3个网站。 我在多个网站上使用了一些项目,比如MyProject.BE/MyProject.BLL/MyProject.DAL/MyProject.Controls项目 我的问题是,为BE/BLL/DAL/Controls创建多个项目好吗?当然,为BE/BLL/DAL层创建一个带有文件夹的项目好吗 “大”是一个相对的问题。在软件开发中,主要的问题是你的电脑有多好。如果您可以在1秒内编译并运行100个项目,那么解决方案中的100个

我已经为我的Web应用程序找到了一个解决方案,其中包括近12个项目和3个网站。 我在多个网站上使用了一些项目,比如MyProject.BE/MyProject.BLL/MyProject.DAL/MyProject.Controls项目

我的问题是,为BE/BLL/DAL/Controls创建多个项目好吗?当然,为BE/BLL/DAL层创建一个带有文件夹的项目好吗

“大”是一个相对的问题。在软件开发中,主要的问题是你的电脑有多好。如果您可以在1秒内编译并运行100个项目,那么解决方案中的100个项目是“小的”。所以这真的是一个什么对你有用的问题

我目前的工作方案中有大约130个项目。是的,我们可以打破它,但我们有一些令人印象深刻的盒子,可以处理这一点,所以有130个项目的成本是中等到较低的,优势大于成本

如果您可以快速编译、运行和测试所有项目,那么将所有项目放在一个解决方案中是一个好办法。该死的。。。然后开始讨论什么是“快”,这是一个风格问题。如果您经常编译和运行测试(每分钟或更快),那么quick就是秒。如果您每小时编译并运行一次,那么几分钟就可以了

回答:“做适合你的事”


注:考虑解决方案文件夹。

< P>我认为有多个项目确实更好。例如,如果您需要构建一个WinForms UI,该UI将使用BE和DAL层中的一些现有类,那么您需要做的就是引用WinForms项目中的那些项目。

就我了解您的问题而言,您指的是如何组织解决方案,而不是如何更快地编译代码或如何更快地打开我的代码,对吗

如果是这样,我会说,将解决方案中的类分解为多个项目,这些项目的名称可以清楚地说明它们的用途。您已经使用您给出的“BE/BLL/DAL/Controls”示例开始了类似的方法

有了指定的项目,您就可以灵活地使用解决方案体系结构。想一想你的解决方案会随着时间的推移增长多少,以及它在未来会存在多久。考虑一下您将如何向最终用户部署它,更重要的是,您将如何部署更新。所有这些考虑因素都会影响你的决定,你会深入到细节的多少

分析您的代码并检查是否有可能应用经过时间验证的设计模式,如单一责任模式

它是一个短期的工具,在开发过程中运行几次,以后就不再运行了吗?那就不值得付出太多努力了。它是需要维护几年的工具还是应用程序?然后让sue确认SRP模式得到了认真的实施

我推荐微软出版社出版的这本书:

这将为您提供一些关于如何构建良好项目结构的建议、建议和基础知识


关于如何构建解决方案的另一个建议是在这个SO线程中:

如果您将它们合并为一个,您将如何在其他项目中引用它,当前的一个似乎很好,但它是实际问题吗?几乎有12个项目,即11个项目?多个项目完全可以。我已经完成了大约60个项目的解决方案。visual studio在构建我的项目时非常慢,这就是为什么我认为最好是有一个带有子文件夹的项目,而不是projects@Leon卡伦斯。。。VS2010的性能如何?我的上一家公司在一个解决方案中有超过350个项目。大多数项目都是在另一个项目中引用的类库。虽然该解决方案有350个项目,但这并不意味着这是一个大型解决方案。由于每个项目的复杂性和代码量,这是一个很大的解决方案。正如Rob Smyth所说,这都是相对的。我们发现构建整个解决方案是危险的,所以我们只构建我们必须构建的项目。也就是说,我们只构建了我们所做更改的项目。+1有助于了解“大型”解决方案可能是什么,还有+1有助于文件夹使用建议。通过“好电脑”,您主要谈论的是RAM(大小和速度)?还是硬盘访问速度更重要?嗨,马修。我想你会问什么是加速计算机的首要问题。如果是的话。。。我不能回答这个问题。如果您担心您电脑的性能,请监控内存使用情况、CPU等,并修复处于/接近其极限的问题。根据我的经验,记忆的使用应该是