2010-05-07 2 views
4

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

Так что я в конечном итоге с пространствами имен, таких как:

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

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

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

namespace App.Common.Enums {...} 

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

Любые предложения?

ответ

0

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

Другим хорошим использованием для этого места является интерфейс.

2

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

+0

Спасибо, я думаю, что зеркало несколько то, что я уже делаю (хотя я использую Common, а не Shared, и вижу значения просто Shared, а не Data, так как они используются на всех слоях: XAct.Common сборка, содержащая XAct.Common.Enums XAct.Common.Entities (только для интерфейсов - не POCOs или другой - как для обоих объектов, так и для объектов ValueObject ... не может быть связано с XAct.Common.Entities.ValueObjects) XAct.Common.Exceptions XAct.Services - для интерфейсов служб XAct.Data.Repositories -. для интерфейсов Хранилища не делать достаточно Interop, чтобы знать о том, что часть – Ciel

+0

Woops на форматирование.. .. – Ciel

Смежные вопросы