2010-05-07 104 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

相關問題