将代码放在项目的根目录中是否可以?

时间:2008-11-22 12:06:14

标签: c# directory structure

我正在尝试提出项目目录结构的最佳实践。

我最近的想法是项目的根目录中不应该有类。所有类必须位于以下目录之一

  • UI
  • 的BusinessObjects
  • BusinessLogic
  • 数据访问

我想听听其他人的想法是否有用于将事情放在根级别的用例或找到不适合的类

5 个答案:

答案 0 :(得分:8)

如果您正在谈论C#,那么我会将您的DAL,BLL,GUI分离到不同的项目而不是一个项目。并有一个解决方案。这将强制每个代码文件都在其中一个项目中。

我添加了一个例子:

  • 解决方案:ProjectName
    • 项目:DAL(命名空间:ProjectName.DAL)
      • 文件夹:存储库(命名空间:ProjectName.DAL.Repositories)
      • 文件夹:合同(命名空间:ProjectName.DAL.Contracts)
      • 文件:您的实体映射配置
    • 项目:BLL(命名空间:ProjectName.BLL)
      • 文件夹:服务(命名空间:Project.BLL.Services)
      • 文件夹:实体(命名空间:Project.BLL.Entities)
      • 文件:IoC配置类/一般业务逻辑
    • 项目:共享(命名空间:ProjectName.Shared)
      • 文件:整个应用程序中的常规共享逻辑(例如InvalidIdentifier常量)
      • 此项目不应引用解决方案中的其他项目..
    • 项目:网站(命名空间:ProjectName.Website)
      • 您的asp.net网站用户界面
    • 项目:Winforms(命名空间:ProjectName.Winforms)
      • 您的winforms UI

如果可能,您应该向网站和winforms项目提供与您的申请相关的名称。

答案 1 :(得分:1)

这个blog应该为你提供一些有趣的阅读,尽管已经三岁了。除了目录结构之外,它可能会给你一些想法。

答案 2 :(得分:0)

我放入根文件夹的唯一文件是 Program.cs Program.ico (如果它是可执行应用程序)。

答案 3 :(得分:0)

我不这样做,但它与目录结构无关(对我来说)。我希望我的所有代码都在有意义的命名空间中。

答案 4 :(得分:0)

我总是把我的项目的基类放在根目录中。