visual-studio - 如何使用解决方案/项目/文件夹组织大型项目?

标签 visual-studio projects-and-solutions solution

我们正在开发一个非常大的 VS 项目。

我们希望项目结构能够“提示”开发人员了解逻辑组件和设计。

为此,最好:

  • 一个具有许多子文件夹和命名空间的项目
  • 根据类的逻辑分组拆分为多个项目。将所有项目与解决方案文件夹放在同一个解决方案中。
  • 与 #2 相同,但有多个解决方案,而不是一个带有子文件夹的解决方案。
  • 最佳答案

    我的项目很大。

    我们将每个“模块”分隔在不同的程序集中,创建类库。像这样的东西:

    Client.ProjectName (Solution)
        Client (Class Library)
            - SectionHandler...
            - ComponentModels...
            - Utilities...
    
        Client.Web (Class Library)
            - Handelrs
            - Extenders
    
        Client.Net (Class Library)
            - MailQueue
    
        Client.Blog.WebControls.UI (Class Library)
            - TopContent.ascx
            - PostsList.ascx
    
        Client.News.WebControls.UI (Class Library)
            - TopContent.ascx
            - PostsList.ascx
    
        Client.Website
    

    每个Class Library是解决方案Client.ProjectName下的一个项目或在其他一些共享解决方案下。

    文件系统如下所示:
    Client
    |- Framework
       |- Client
          |- files...
       |- Client.Web
          |- files...
       |- Client.Net
          |- files...
    |- SolutionName
       |- Client.Blog.WebControls.UI
       |- Client.News.WebControls.UI
       |- Website
    

    共享客户端库直接位于 Client\Framework 下文件夹,它旨在用于此客户端的所有项目。具体项目属于解决方案。我们还有一个名为 Company 的文件夹我们为任何客户保留可用于任何其他项目的项目,就像公司框架一样。

    我们使用的解决方案:
  • 一为公司架构
  • 一个用于客户端框架
  • 每个客户一个解决方案

  • 同一个项目可以在多个解决方案中引用,因此您不一定需要创建所有这些解决方案。

    使用这种格式,我们可以在其他项目中使用很多东西,只需引用一个 DLL。如果没有这种结构,某些项目将无法在给定时间内完成。

    关于visual-studio - 如何使用解决方案/项目/文件夹组织大型项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5476679/

    相关文章:

    c# - 如何在Visual Studio中为不同的编译宏设置不同的资源?

    c# - 发现现有项目的最佳方式是什么?

    c++ - 更改 .cpp、.h 文件的 Visual Studio 默认路径

    C# 解决方案 - 有多少个项目?

    C 中凯撒代码的结果附加字母

    c# - 单个项目中的多个命名空间

    visual-studio - 如何在 Visual Studio 中控制 TypeScript 格式

    visual-studio - 颠覆 : How to organize svn tags for Visual Studio solutions -- or -- How to version an entire VS solution

    visual-studio - Window Installer 自定义操作失败,说自定义操作失败,即使它成功了

    c# - 在 EnvDTE 中重新加载卸载的项目