Можно ли иметь код в корне проекта? - PullRequest
5 голосов
/ 22 ноября 2008

Я пытаюсь найти лучшие практики по структуре каталогов проекта.

Моя последняя мысль - в корневом каталоге проекта не должно быть классов. Все классы должны находиться в одной из следующих директорий

  • UI
  • 1008 * BusinessObjects *
  • BusinessLogic
  • DataAccess

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

Ответы [ 5 ]

8 голосов
/ 22 ноября 2008

Если вы говорите о C #, то я бы отделил ваш DAL, BLL, GUI от разных проектов вместо одного И есть одно решение. Это заставит каждый файл кода находиться внутри одного из проектов.

Я добавил пример:

  • Решение: ProjectName
    • Проект: DAL (Пространство имен: ProjectName.DAL)
      • Папка: хранилища (пространство имен: ProjectName.DAL.Repositories)
      • Папка: контракты (пространство имен: ProjectName.DAL.Contracts)
      • Файлы: конфигурация сопоставления вашей сущности
    • Проект: BLL (Пространство имен: ProjectName.BLL)
      • Папка: Службы (пространство имен: Project.BLL.Services)
      • Папка: Entities (пространство имен: Project.BLL.Entities)
      • Файлы: классы конфигурации IoC / общая логика бизнеса
    • Проект: Shared (Пространство имен: ProjectName.Shared)
      • Файлы: общая общая логика через все приложение (например, константа InvalidIdentifier) ​​
      • Этот проект не должен ссылаться на другие проекты в решении.
    • Проект: Веб-сайт (Пространство имен: ProjectName.Website)
      • Ваш пользовательский интерфейс asp.net
    • Проект: Winforms (Пространство имен: ProjectName.Winforms)
      • Ваш пользовательский интерфейс winforms

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

1 голос
/ 22 ноября 2008

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

0 голосов
/ 23 ноября 2008

Я всегда помещаю базовый класс для исключений моих проектов в корень.

0 голосов
/ 22 ноября 2008

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

0 голосов
/ 22 ноября 2008

Единственные файлы, которые я помещаю в корневую папку: Program.cs и Program.ico (если это исполняемое приложение).

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