C#项目文件夹命名约定

我有一个名为Data的项目,它是一个数据层。 在此项目中,所有文件都位于顶部文件夹中。 我有枚举,POCO,存储库,部分类等。

如果我想将这些文件移动到子文件夹中,每个文件夹的优先文件夹名称是什么? 有没有约定?

“存储库”文件夹非常明显,但我应该在哪里保留POCO和枚举?

谢谢

我倾向于使用项目文件夹作为分离子命名空间的方法。 因此,在您的情况下,可能是一个名为Repositories的文件夹,它在Data.Repositories命名空间中具有类。 注意,对于部分类,每个文件都需要位于同一名称空间中。

我(当前 – 基于项目的更改)在SAAS / Web样式项目中命名程序集/项目/命名空间时倾向于使用此方法

  • 公司名。
    • 产品名称。
      • 数据。
      • 商业。 (参考数据)
      • 模型。 (POCO和接口 – 全部引用)
      • 服务。 (WCF服务层)
      • ServiceClient。 (由Web客户端引用)
      • 网页。 (Web客户端业务层)
        • 视图模型。 (查看具体型号)
        • {面向客户的产品细分} [商务,CMS,CRM,报告等]

为了解释服务/服务客户端……我使用IoC(当前的StructureMap),它允许我的WebClient直接与业务层对话,或者通过ServiceClient通过服务向业务层重新定向。 这使我可以灵活地将我的应用层部署到我的Web应用程序,或者通过WCF / SOA原则将我的业务层(应用层)的各个部分分发到不同的服务器。

一个好的做法是在项目名称后面命名文件夹。

开发类库的设计指南有一套名称指南

最后一项应该是特别感兴趣的:

  • 程序集和DLL的名称
  • 命名空间的名称
  • 类型和命名空间

最佳prectice是按对象模型含义而不是按类型划分文件夹中的实体。

如果不清楚如何按用法或对象模型含义对类进行分组,只需将它们全部保存在一个文件夹中即可。 如果子文件夹不以有意义的方式组织类,则不使用子文件夹。

按类型划分文件夹,例如枚举,POCO,存储库,部分类等不太可能有用。

您可能希望将子文件夹用于不应编辑的生成代码。

还记得您可以在解决方案资源管理器中包含不属于文件系统的文件夹。 考虑到某些源代码控制系统在目录之间移动文件的成本(及时),我会考虑开始只使用msdev文件夹,直到你清楚你想要的结构。

没有必要将每个枚举放在它自己的文件中,如果枚举仅由一个类使用 ,则将它放在与该类相同的文件中是有效的。 例如,PersonSex枚举可以放在person.cs文件中。 同样,如果您有很多密切相关的类,请考虑将它们放在同一个文件中。