2010-05-07 108 views
4

我正在设置一个新的应用程序,其中有一个存储库层/程序集,一个服务层/程序集和一个UI程序集。我应该在哪里定义枚举?

所以我最终的命名空间,如:

App.UI App.Biz.Services App.Data.Repositories

然后我有一个由所有3使用的ARGS枚举层。只有有意义的地方是把它们放在十字切割组件中。 (在数据层中将它们定义得太低,因为UI中不应直接引用它们,在服务中定义,对于存储库层来说定义太高,不应该向上引用)。

但是...哪个命名空间在Common?命名空间应该主要被用来定义的担忧,而不是类型...我一直使用的都是一样的东西:

namespace App.Common.Enums {...} 

但它总是感觉有点为我的作品黑客攻击,但没有很好地在大org,其中每个人都生成Enums,如果我们把它们全部放在Enums文件夹中,它会让代码文件夹更难以理解。

有什么建议吗?

回答

0

我一直在做的是创建一个Contracts程序集,其中的所有东西都在根应用程序命名空间中。我在这个Contracts DLL里放置了一些常见的东西,比如所有需要访问的枚举。

另一个很好的用处是接口。

2

我通常会为共享枚举,接口和值对象推荐一个专用程序集。 App.InteropApp.SharedApp.Data.Values将是我的命名空间建议。

+0

谢谢 - 我认为这反映了我已经在做的事情(虽然我使用的是Common而不是Shared,并且看到Values只是共享而不是Data,因为它们都用于所有图层: XAct.Common程序集包含 XAct.Common.Enums XAct.Common.Entities(仅用于接口 - 不是POCO或其他 - 既不是实体也不是ValueObjects ...不能打扰处理XAct.Common.Entities.ValueObjects ) XAct.Common.Exceptions XAct.Services - 对服务的接口 XAct.Data.Repositories - 用于库的接口 没有做足够的互操作,以了解这部分的格式 – Ciel 2010-05-07 08:27:48

+0

woops。 .. – Ciel 2010-05-07 08:28:06

相关问题