Я настраиваю новое приложение со слоем / сборкой репозитория, слоем / сборкой служб и сборкой пользовательского интерфейса.
Итак, я получаю такие пространства имен, как:
App.UI
App.Biz.Services
App.Data.Repositories
А потом у меня есть перечисления для аргументов, которые используются всеми 3 слоями. Единственное место, которое имеет смысл, - это поместить их в сборку сквозной резки. (определите их на уровне данных слишком низко, поскольку пользовательский интерфейс не должен иметь прямой ссылки на них, определенный в службах, слишком высокий для уровня репозитория, который не должен ссылаться вверх).
Но ... какое пространство имен в Common? Пространства имен должны в основном использоваться для определения проблем, а не типа ... Я всегда использовал что-то вроде:
namespace App.Common.Enums {...}
но это всегда чувствуется как хак, который работает для меня, но не очень хорошо в большой организации, где все генерируют Enums, и если мы поместим их все в папку Enums, это усложнит понимание папки кода позже .
Есть предложения?