C#项目文件夹命名约定

时间:2009-09-07 13:35:08

标签: c# .net naming-conventions

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

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

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

由于

5 个答案:

答案 0 :(得分:10)

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

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

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

答案 1 :(得分:6)

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

Design Guidelines for Developing Class Libraries有一组Guidelines for Names

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

答案 2 :(得分:5)

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

答案 3 :(得分:2)

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

答案 4 :(得分:1)

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

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

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

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

没有需要将每个枚举放在自己的文件中,如果枚举只是由一个类使用,将它放在同一个文件中是有效的作为班级。例如,PersonSex枚举可以放在person.cs文件中。同样,如果你有很多密切相关的类,请考虑将它们放在同一个文件中。