5

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

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

  • 用户界面
  • 业务对象
  • 商业逻辑
  • 数据访问

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

4

5 回答 5

8

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

我添加了一个示例:

  • 解决方案:项目名称
    • 项目: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)
      • 你的 winform 用户界面

如果可能,您应该为网站和 winforms 项目指定一个与您的应用程序相关的名称。

于 2008-11-22T12:58:55.567 回答
1

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

于 2008-11-22T12:13:24.693 回答
0

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

于 2008-11-22T12:16:37.603 回答
0

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

于 2008-11-22T13:45:39.170 回答
0

我总是将我的项目异常的基类放在根目录中。

于 2008-11-23T15:46:12.813 回答