соглашения об именах пространства имен - PullRequest
48 голосов
/ 28 мая 2009

Для тех из вас, кто пишет многократно используемые компоненты, что вы считаете лучшей практикой, если расширяете функциональность .NET Framework?

Например, я сейчас создаю библиотеку Pop3, так как в .NET ее нет. Создать собственное пространство имен или использовать System.Net.Mail?

Ответы [ 2 ]

62 голосов
/ 28 мая 2009

Из правил именования пространств имен 1002 *:

Общее правило именования пространств имен это использовать название компании с последующим название технологии и, возможно, особенность и дизайн следующим образом. копия Код

CompanyName.TechnologyName[.Feature][.Design]

Как правило, начинать включать вещи в пространство имен по умолчанию платформы или библиотеки - это действительно плохая практика. Это может вызвать путаницу с точки зрения того, является ли новое пространство имен частью существующей библиотеки, которая является частью инфраструктуры, распространяемой для всех, или частью пользовательской структуры, которая была добавлена ​​кем-то другим.

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

Это относится не только к Microsoft, но и к Java. Пространства имен в Java, называемые «пакетами», имеют следующее соглашение :

Префикс уникального имени пакета: всегда пишется строчными буквами ASCII буквы и должны быть одним из доменные имена верхнего уровня, в настоящее время com, edu, gov, mil, net, org или один из Английские двухбуквенные коды, идентифицирующие страны, указанные в стандарте ISO 3166, 1981.

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

Итак, если бы у меня было суперское программное обеспечение, оно может быть в пакете net.coobird.superawesomesoftware.

И использование имен пакетов, которые содержат пакеты по умолчанию java., javax., com.sun., является большим нет-нет.

16 голосов
/ 07 января 2011

Также ознакомьтесь со следующей статьей MSDN, в которой приведены рекомендации по именованию пространств имен

Имена пространств имен

Имя, выбранное для пространства имен, должно указывать на выполненную функциональность доступны по типам в пространстве имен. Например, Пространство имен System.Net.Sockets содержит типы, которые позволяют разработчикам использовать сокеты для общения по сетям.

Общий формат имени пространства имен выглядит следующим образом:

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]

Например, Microsoft.WindowsMobile.DirectX.

...