C#项目文件夹命名规范

14

我有一个名为Data的数据层项目,所有文件都在顶层文件夹中。我有枚举、POCOs、仓储库、部分类等。

如果我想将这些文件移动到子文件夹中,每个文件夹的首选文件夹名称是什么?是否有任何约定?

"Repositories"文件夹很明显,但我应该将POCO和枚举放在哪里?

谢谢


2
虽然这与您的问题没有直接关系,但您应该考虑将项目重命名为更有意义且符合框架设计准则的名称。现在回到您的问题:FDG还提供了关于何时以及如何构建子命名空间的建议。https://dev59.com/7nM_5IYBdhLWcg3waSX9#1389507 - Alfred Myers
5个回答

19

在SAAS / Web风格的项目中,我(当前-根据项目变化)倾向于使用以下方法来命名程序集 / 项目 / 命名空间:

  • CompanyName.
    • ProductName.
      • Data.(数据层)
      • Business.(业务层,引用数据层)
      • Model.(POCO和接口-被所有层引用)
      • Services.(WCF服务层)
      • ServiceClient.(被web客户端引用)
      • Web.(web客户端业务层)
        • ViewModel.(视图特定模型)
        • {面向客户端的产品部分} [商务、CMS、CRM、报告等]

为了解释Services/Service Client...我使用一个IoC(目前是StructureMap),它允许我的Web客户端直接与业务层通信或通过ServiceClient通过Services到达业务层。这使我能够灵活地将应用层部署到Web应用程序中,或通过WCF / SOA原则将业务层的组件(应用层)分发到不同的服务器。


10

7

我倾向于使用项目文件夹来区分子命名空间。因此,在您的情况下,可以创建一个名为“Repositories”的文件夹,其中包含在“Data.Repositories”命名空间中的类。请注意,对于部分类,每个文件都需要在同一命名空间中。


2

最佳实践是按照对象模型的意义将实体分组,而不是按类型分组。


1

如果不清楚如何按使用或对象模型意义对类进行分组,可以将它们全部放在一个文件夹中。如果子文件夹不能以有意义的方式组织类,则没有任何价值。

按类型划分文件夹,例如枚举、POCO、存储库、部分类等,可能没有什么用处。

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

还要记住,您可以在解决方案资源管理器中拥有不属于文件系统的文件夹。鉴于在某些源代码控制系统中在目录之间移动文件的成本(时间)很高,我建议您开始只使用 msdev 文件夹,直到您明确想要的结构为止。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接