Вопрос

Проблема:

Для приложений ASP.NET MVC я игнорирую папку домена и пишу модель домена в отдельном библиотечном проекте.

Visual Studio, с таким библиотечным проектом, будет пространством имен в папке по папке. Например, если мой библиотечный проект называется:

Es.elearning.domain

И у меня есть папка, называемая службами, она будет автоматической пространством имен всех классов в папке Services As:

Es.elearning.domain.services

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

Поэтому я просто вручную редактировать имена пространства имен на имя проекта, т.е.

Es.elearning.domain

Таким образом, при разработке передней части проект доменной модели - это просто черный ящик, который обеспечивает, ну, доменная модель. И я не вижу точки связывания имен пространства имен с структурой папки Projects, в отличие от того, чтобы рассматривать ее как один функциональный блок.

Итак, возникают два вопроса:

  1. Это плохая практика? Если так, почему? Помните: это небольшие и средние проекты.

  2. Есть ли способ сказать против 2010 года, как назвать мои пространства имен?

Спасибо

Примечание. В моем названии проекта ES является клиентом, Elearning является приложением, домен является компонентом

PS: Другие вопросы об именах именованиях, которые я нашел, поэтому решают разные вопросы. Так что, насколько я могу определить, не дубликат.

Это было полезно?

Решение

Чтобы предотвратить определенную папку, заставляющую его содержимое использовать имя папки в качестве части пространства имен, вы можете щелкнуть правой кнопкой мыши папку, выбрать «Свойства» и затем изменить «Провайдер имен» на False. Анкет Это должно быть сделано для всех папок, к которым они применяются, поэтому я не уверен, что это действительно ответит на ваш вопрос полностью.

Редактировать: похоже Решарпер добавляет эту функциональность.

Другие советы

Уговорить свою IDE, чтобы использовать соглашение об именах, которое подходит вашей конкретной среде, является хорошей практикой. Вы можете использовать поле пространства имен по умолчанию на вкладке «Приложение» свойств проекта, чтобы изменить пространство имен, которое автоматически вставляет в файлы класса.

Я не уверен, возможно ли настроить в VS2010, чтобы отключить это ... но я бы этого не сделал.

Если ваш кодовый файл размещен в папке домена, его пространство имен должно быть Company.Domain. Если домен имеет Subpler Services, пространство имен должно быть company.domain.services. Это хорошее (и что важно - обычная практика).

Вам лучше придерживаться правил, за то, что они их нарушали :)

Мои предложения использовать единственное окончание во время названия именов, папок и классов. Например

namespace ES.eLearning.Domain.Services

будет предварительно

ES.eLearning.Domain.Service // <-- note missing "s"

И еще один пример использования в исходном коде:

ES.eLearning.Domain.Constants.FileTypes.Text

может быть «лучше», чтобы понять как

ES.eLearning.Domain.Constant.FileType.Text

Это все личные предпочтения, и это не правило. Просто небольшая вещь, которая может сделать код (пространство имен) короче и легче читать одновременно.

Пса С другой стороны, ASP.NET MVC не следует за этим «правилом»:

Content
Controllers
Models
Scripts
Views

Но ничто не заставляет вас «переименовать» их в исходном коде.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top