Visual Studio大型解决方案

我有一个解决方案,我的webapplication有近12个项目和3个网站。 我有一些项目用于多个网站,如MyProject.BE / MyProject.BLL / MyProject.DAL / MyProject.Controls项目。

我的问题是,为BE / BLL / DAL /控件创建多个项目是否合适?是否更好地为BE / BLL / DAL层创建包含文件夹的1个项目?

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

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

如果您可以快速编译,运行和测试所有项目,那么将所有项目放在一个解决方案中。 Darn …然后开始谈话到“快速”,这是一个风格问题。 如果经常编译和运行测试(每分钟或更快),那么快速就是秒。 如果你每小时左右编译并运行一次,那么分钟就可以了。

答:“做对你有用的事”。

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

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

据我了解你的问题,你指的是如何组织一个解决方案,而不是如何让我更快地编译代码或如何制作VS-open-my-代码更快,对吗?

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

指定项目为您的解决方案架构提供了很大的灵活性。 考虑一下您的解决方案可能会随着时间的推移而增长多少以及未来可能存在多长时间。 考虑如何将其部署到最终用户,更重要的是 – 如何部署更新。 所有这些考虑都会影响您决定在多长时间内了解细节。

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

它是一种短期的短命工具,在开发过程中会运行几次而不会再次运行? 然后它不值得付出太多努力。 它是一个需要维护几年的工具或应用程序吗? 然后去认识SRP模式是否经过精心实施。

我推荐Microsoft Press出版的这本书: 使用Windows Presentation Foundation构建企业应用程序和模型视图ViewModel模式

这为您提供了一些有关如何构建良好项目结构的建议,建议和基础知识。

关于如何构建解决方案的另一个建议是在这个SO线程中: Mvvm应用程序和业务层的位置