Пространства имен C # / Папки: когда становится слишком организованным / создание слишком большого количества пространств имен не правильно? - PullRequest
6 голосов
/ 12 июля 2009

Мне нравится пытаться оставаться организованным при разработке, группировка связанных * .cs объединяется в их собственные папки:

->Project
--->Enums
--->Exceptions
--->Extensions
--->Providers
--->Configuguration
--->Design
--->etc.
  Manager.cs

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

Company.Product.Enums.MyEnumClass.cs
...
Company.Product.Exceptions.ExceptionBase.cs
etc.

У которого есть плюсы ... и минусы.

Хорошая сторона в том, что с intellisense становится легко понять, как была спроектирована сборка: вы видите все части и только те части, которые вам нужны (по сравнению с каждым отдельным классом, перечислением, статическими расширениями, бизнесом). субъект, менеджер, поставщик и т. д. все в одном пространстве имен.

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

using Company.project.Enums;
using Company.project.Model;
using Company.project.Extensions;
...
etc.

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

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

Официальная документация MSDN по пространствам имен не дает рекомендаций о том, куда идти: http://msdn.microsoft.com/en-us/library/893ke618(VS.71).aspx

Поэтому, прежде чем я изменю свое мнение, меня очень интересует, что делают другие, и почему ... что вы делаете и почему именно?

1 Ответ

9 голосов
/ 12 июля 2009

Я думаю, вы организовали это неправильно. Не организуйте по тому, что перечисление / расширение и т. Д. Организуйте по тому, как используется тип. Соедините связанные типы.

Кроме того, ссылки, на которые вы ссылались, относятся ко времени .NET 1.1! Подсказка - V7.1 в URL. Правильная ссылка: Имена пространств имен , которая является частью Руководства по проектированию для разработки библиотек классов .

...