Когда вы добавляете новый проект для вложенного пространства имен? - PullRequest
1 голос
/ 31 марта 2009

У меня есть много проектов, которые названы в соответствии с типами пространств имен под

alt text

Когда вы добавляете новое подпространство имен, как вы решаете,
• создать новую папку в проекте
- или -
• создать новый проект в решении?

Какие недостатки / преимущества я должен учитывать для каждого сценария?

Ответы [ 2 ]

5 голосов
/ 31 марта 2009

Вопрос, который вы должны задать себе, заключается в следующем: два логических раздела кода логически сочетаются как единое целое? Если так, держите их в том же проекте. Если нет, разделите их.

Честно говоря, я бы редко создавал новый проект для "вложенного" пространства имен - он, кажется, обычно так не работает. В частности, подумайте, хотите ли вы получить доступ к «вложенному» пространству имен из «внешнего» и наоборот - если они будут разумно ссылаться друг на друга, то они должны быть в одном проекте.

1 голос
/ 01 апреля 2009

Просто добавив мои 2 цента к этому вопросу, чтобы расширить ответ Джона с некоторым опытом "был там - сделал это":

Я использовал в нескольких решениях, по крайней мере, два проекта, названных пространством имен (ну, вроде). Например, работая над решением MyApp, я бы получил MyApp.Web и MyApp.Web.Controls.

Или: MyApp.Service, MyApp.Core, MyApp.Core.Entities и так далее. Довольно известное соглашение об именах, где корневое пространство имен выглядит как MyCompany.MyApp.Service etc...

Преимущество : - нашел его очень полезным при работе в команде, чтобы выделить зависимости между модулями приложения. Если ваш Web.Controls модуль (это всего лишь пример, не выбирайте его :) доступен для общего доступа через веб-интерфейс, вы обычно не хотите, чтобы специфичный для приложения код использовался в ваших пользовательских элементах управления. Хранение модуля child / nested отдельно (на которое ссылается основной проект) обеспечивает это. - по крайней мере, если подумать, это поможет вам создать лучшую структуру проекта. Какое пространство имен входит в отдельный проект, а какое нет? Ответ на один вопрос достаточно полезен.

Неудобство : - очень легко получить «триггер» и создать сотню проектов вместо создания соответствующих папок / пространств имен.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...