Соглашение об именах пространств имен, когда [CompanyName] начинается с нижнего регистра i

Название моей компании начинается с буквы «i» в нижнем регистре. Например: iWare (это не настоящее название компании, но оно демонстрирует цели).

Из-за этого я обнаружил, что мне постоянно приходится бороться со StyleCop и Resharper из-за правил / соглашений об именах пространств имен.

Есть ли у кого-нибудь идеи, как мне называть свои пространства имен (а иногда и классы).

EG.

namespace iWare.Product.X
{
    ...
}

Как вы понимаете, большинству инструментов, показанных выше, это не нравится. Есть ли какие-нибудь предложения относительно того, какой должна быть альтернатива? Я попытался подавить ошибку, используя следующее:

[SuppressMessage("StyleCop.CSharp.NamingRules", "SA1300:ElementMustBeginWithUpperCaseLetter", Justification = "Reviewed. Suppression is OK here.")]
namespace iWare.Product.X
{
    ...
}

Но это приводит к следующей ошибке: объявление пространства имен не может иметь модификаторов или атрибутов.

Любые идеи?


person gregpakes    schedule 19.07.2012    source источник
comment
Лично я бы назвал это Iware. Имеет ли значение, что регистр между названием компании и кодом отличается? Есть ли вероятность конфликта кода между вашим кодом и настоящим Iware?   -  person Woody    schedule 19.07.2012
comment
Вуди, спасибо за это. Проблема еще больше усугубляется, когда я говорю вам, что название компании на самом деле является аббревиатурой. Так что это на самом деле iWARE. Это означало бы, что пространство имен, в котором используется ваш метод, будет: IWARE. Я думаю, что это слишком похоже на интерфейс, да и крышки блока тоже выглядят довольно плохо. ИМО.   -  person gregpakes    schedule 19.07.2012
comment
Я бы все равно выбрал Iware, соглашение об именах в коде - это просто соглашение. На одну вещь меньше искать в списке ошибок!   -  person Woody    schedule 19.07.2012
comment
Давайте посмотрим на пространства имен MS, у них есть только библиотека Microsoft.CSharp, и я думаю, что в этом нет ничего плохого, чтобы следовать за основателем .net. Ответ - IWare   -  person Denis Agarev    schedule 19.07.2012
comment
Этот вопрос лучше подходит для programmers.stackexchange.com   -  person Ramchandra Apte    schedule 21.07.2012


Ответы (2)


похоже, что вы используете iWare или название вашей компании в качестве корневого пространства имен.

В своих проектах я обычно указываю свое корневое пространство имен в / с помощью окна свойств MyProject или текстового поля MenuItem «Проект»> «Свойства»> «Приложение» - «корневое пространство имен» справа.

Таким образом, я вообще не указываю его в коде, если только я не ссылаюсь на него из другого компонента / проекта как на импорт.

person Brett Caswell    schedule 24.07.2012
comment
В этом есть смысл. В моем случае iWARE также является названием продукта. Я не совсем понимаю, как или если это изменит ситуацию, но я вижу, насколько ваше решение хорошее. - person gregpakes; 24.07.2012

Ответ Бретта решает проблему с инструментами, но для ответа на вопрос в заголовке (какое соглашение об именах пространств имен следует использовать, когда название компании начинается со строчной буквы):

Эта статья MSDN, ссылка на которую находится в этот другой ответ, гласит:

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

Таким образом, согласно Microsoft, правильное имя пространства имен в вашем примере на самом деле будет iWare.Product.X со строчной буквой «i».

person Community    schedule 13.05.2015