Предпочтительный порядок терминов в имени пространства имен - PullRequest
0 голосов
/ 14 октября 2009

Я собираюсь приступить к разработке библиотеки классов .NET, которая будет использоваться несколькими проектами. Я достиг точки в своем проекте, когда я не уверен на 100%, в каком порядке должны быть вложены мои пространства имен. Я вижу два варианта:

В общем проекте используется

  MyCompany.Common.Web
  MyCompany.Common.Data
  MyCompany.Common.Utils

с каждым проектом, затем используя

  MyCompany.ProjectName.Web
  MyCompany.ProjectName.Data
  MyCompany.ProjectName.Utils

или я переворачиваю его и использую

  MyCompany.Web.Common
  MyCompany.Web.ProjectName
  etc

Что считается лучшей практикой / более широко используется? Я видел как вокруг в сети. Лично вариант 1 кажется более логичным.

Ответы [ 2 ]

2 голосов
/ 14 октября 2009

Рекомендуемая практика, я полагаю, такова:

Company.Product.Functionality

Если у вас есть общие функциональные возможности, это, на мой взгляд, само по себе является «продуктом». В этом случае моя привычка - называть этот продукт "Framework".

Следовательно, в настоящее время мы имеем:

Share.Framework.Data
Share.Framework.Data.Oracle
Share.Framework.IO
Share.Framework.Security

и так далее. У нас также есть,

Share.[Specific product].Windows
Share.[Specific product].Data
Share.[Specific product].Payroll

бла-бла-бла.

Вы получаете картину. (Кстати, Share это название нашей компании.)

0 голосов
/ 14 октября 2009

Я бы использовал (2), только если этот код специфичен для проекта, что почти никогда не является хорошим предположением. (3) Имеет смысл только в том случае, если они конкретно связаны с сетью; одна из замечательных особенностей .NET заключается в том, что вы можете повторно использовать свой код с приложениями WPF / Winforms или просто с чем угодно.

Я бы придерживался (1).

...