Где я должен определить Enums? - PullRequest
4 голосов
/ 07 мая 2010

Я настраиваю новое приложение со слоем / сборкой репозитория, слоем / сборкой служб и сборкой пользовательского интерфейса.

Итак, я получаю такие пространства имен, как:

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

А потом у меня есть перечисления для аргументов, которые используются всеми 3 слоями. Единственное место, которое имеет смысл, - это поместить их в сборку сквозной резки. (определите их на уровне данных слишком низко, поскольку пользовательский интерфейс не должен иметь прямой ссылки на них, определенный в службах, слишком высокий для уровня репозитория, который не должен ссылаться вверх).

Но ... какое пространство имен в Common? Пространства имен должны в основном использоваться для определения проблем, а не типа ... Я всегда использовал что-то вроде:

namespace App.Common.Enums {...} 

но это всегда чувствуется как хак, который работает для меня, но не очень хорошо в большой организации, где все генерируют Enums, и если мы поместим их все в папку Enums, это усложнит понимание папки кода позже .

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 07 мая 2010

Я обычно рекомендую выделенную сборку для общих перечислений, интерфейсов и объектов значений. App.Interop или App.Shared или App.Data.Values будут моими рекомендациями для пространства имен.

0 голосов
/ 07 мая 2010

То, что я делал, - это создание сборки Contracts, и все, что там находится, находится в пространстве имен корневого приложения.Я бы включил в эту Contracts DLL обычные вещи, такие как Enums, к которым все должны иметь доступ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...