在.NET项目中构建文件

时间:2016-03-14 16:24:40

标签: .net directory-structure

在MVC应用程序中,您将获得一个预定义的项目框架,其中包含模型,视图和控制器的目录。 在创建类库或控制台应用程序时,您没有这样的项目框架。

随着项目的增长,许多文件最终会累积在项目的根目录中。因此,可能会出现以某种方式对文件进行分组的愿望。

在与同事合作的项目中,我遇到了分为名为Interfaces,Enums和Extensions的目录的文件。根据这种思路,也可以使用过滤器,属性和抽象类的目录。我想这可以被称为“基于语言构建的分组”,虽然任何一致的分组可能比没有更好,我相信这种分组策略可能不是最合适的分组。

在GitHub上查看Microsoft源代码我发现接口及其实现往往位于同一目录中,并且在存在文件分组时,它不是基于语言构造完成的。我发现很难确切地指出分组策略是什么。

我意识到可能没有任何明确的答案,因为需要分组的内容可能特定于手头的特定项目。 但是,我正在寻找有用的建议和指导原则,如何找出应该分组的以及 应该如何分组。

1 个答案:

答案 0 :(得分:2)

我认为你会发现大多数项目试图1)将所有属于一起的事物放在一起(例如,特定类集使用的枚举不是分组在enums文件夹中而是在文件夹中使用这些类),以及2)将事物放置在模仿其命名空间层次结构的结构中(正如您的模型命名空间将是MVC项目中的MyProject.Areas.MyArea.Models,Areas,{{1} },MyArea都是子文件夹。

也就是说,你看到变化的原因是没有一种标准的方式来组织源代码 - 你只能决定作为一个组织。这不是一件坏事:你的小组可能会以不同于下一组的方式概念化事物,因此将有不同的项目结构。随着时间的推移,即使你从其他人的想法开始构建事物的正确方法,结构也会转变为对团队有意义的事物。