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

leo*_*ora 5 c# directory structure

我试图提出项目目录结构的最佳实践.

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

  • UI
  • 的BusinessObjects
  • 商业逻辑
  • 数据访问

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

Dav*_*man 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项目提供相对于您的应用程序的名称.