哪里存储类文件?

时间:2013-04-24 20:57:39

标签: c# conventions

我通常为我的项目创建一个单独的类库,然后将其分解为文件夹

Services
 -all my .cs files that are service(business logic)

Data
 - Mapping 
   - nhibernate mapping files

Domain
  - domain files

我还创建了其他文件夹,例如我正在使用foursquare进行操作,因此对于所有class files,它都位于名为"foursquare"的文件夹中

但我不知道放在哪里one off class files。比如我有"HtmlWhiteList" class唯一的白名单。

我不认为它应该有它自己的文件夹,因为它只是一个文件,但同时我不喜欢只在根目录中。

有什么建议将类文件放在不属于自己文件夹的位置吗?

5 个答案:

答案 0 :(得分:1)

有时我创建了一个“Utilities”文件夹,其中包含其他内容。事情通常会去那里,然后一旦他们有其他类似的类别迁移到其他地方......但有时他们会呆在那里。当然,这对个人偏好非常主观。

答案 1 :(得分:1)

作为一般的经验法则,我将新的类文件放在另一个调用它的类的根目录中。如果我得到5个或更多类似的类,我将创建一个文件夹并将它们放在同一级别的文件夹中。

答案 2 :(得分:0)

我会把它放在调用它的代码的类中。否则只要给它自己的文件夹,不能保证它永远是唯一属于那里的类。不过,我认为这是一个意见问题,而不是一个具体答案的问题。

答案 3 :(得分:0)

我们停止使用这种结构。它最终有像“枚举”,“接口”,“实体”这样的文件夹。当您为功能编写代码时,假设功能“orders”,您需要所有名称空间来获取所需的类型,因为与订单相关的类在整个地方分布。所以我们改为面向功能的结构,其命名空间如“orders”,“articles”,“users”等等。

.Net naming guidelines, Names of Namespaces中有一条建议:

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]

哪个功能属于HtmlWhiteList?安全吗?到客户会话?我不能告诉你,因为我不知道它是什么。

答案 4 :(得分:0)

如果你不知道它做了什么或者谁使用它,因此你不知道放在哪里,或者它做的事情是微不足道的,所以它不值得拥有一个地方,然后完全删除它。

如果你认为它不被认为被删除,那么它应该得到一席之地。

如果几乎​​没有使用它,那么你应该确切地知道是谁使用它以及它对它们有什么影响 - 那么你应该立即知道它放在哪里:靠近它们的地方。

如果没有这样的地方,请创建并与之共存。随着项目的发展,当一个更好的地方变得物质化时,你总能将它移动到那里。看看你的项目结构,如果它是真正的实用程序,那么服务不是用于“BusinessLogic”,而是用于服务和实用程序。如果您将BL作为“服务”,那么这是您的选择,但这并不意味着所有服务都是BL。

如果此类的分散用户太多,以至于您无法确定谁更重要或更相关,那么将其创建为新的模块/库/文件夹,因为它被大量使用,实际上很重要。