Как вы настраиваете свое дерево разработки .NET?[закрыто]

StackOverflow https://stackoverflow.com/questions/71608

Вопрос

Как вы настраиваете свое дерево разработки .NET?Я использую структуру, подобную этой:

-projectname
--config (where I put the configuration files)
--doc    (where I put all the document concerning the project: e-mails, documentation)
--tools  (all the tools I use: Nunit, Moq)
--lib    (all the libraries used by the solution: ninject or autofac)
--src
---app   (sourcefiles)
---test  (unittests)
solutionfile.sln
build.csproj

Знаком "-" отмечены справочники.

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

Есть какие-нибудь мысли по этому поводу?

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

Решение

Мы используем очень похожий макет, описанный в сообщении в блоге JP Boodhoo под названием Структура каталогов для проектов.

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

Древесный хирург это инструмент, который настроит для вас дерево каталогов со всеми необходимыми зависимостями и скелетным файлом nant.По этой ссылке вы также можете найти серию сообщений в блоге его первоначального создателя Майка Робертса, объясняющих некоторые преднамеренные решения, лежащие в основе структуры, которую предлагает вам TreeSurgeon, напримерпочему нормально дублировать библиотеку и инструменты, почему важно, чтобы присутствовали все зависимости и т.д.

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

Мы используем структуру, подобную этой:

  • Название компании или название проекта
    • Филиал
      • Имя ветви
        • CopyOfTrunk ( Копия транка )
    • Багажник
      • Для рабочего стола
      • Ссылочные сборки
      • Общий доступ
      • Решения
      • Тест
      • Паутины

Затем просто убедитесь, что все файлы проекта / решения используют только относительные пути и ветвление работает хорошо.Desktop / Webs предназначены для проектов соответствующих типов, Test - для любых проектов модульного тестирования, в папке Solutions есть папка для каждого решения, в которой находится только файл решения.ReferencedAssemblies содержит все сборки, которые мы не включаем в решение (иногда это локальные проекты, которые мы просто не хотим создавать каждый раз при сборке решения, или сборки сторонних разработчиков, таких как rhinomocks или log4net и т.д.Shared предназначен для любой из основных библиотек (доступ к данным, бизнес-логика и т.д.), которые используются в нескольких решениях.

На моем месте работы у нас есть несколько проектов, где каждый проект получает свой собственный подкаталог, вот так:-проект1
--проект 1.csproj
-проект2
--проект 2.csproj
-проект3
--проект 3.csproj
файл решения.sln

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

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

Что-то, что хорошо работает для нас, это:
solutionfile.sln
-src
--projectname
---config
---doc
---source files (structure representing namespaces)
-test
--testprojectname (usually, a test project per source project)
---unit test files (structure mirroing the structure in the source project)
-lib
--libraryname (containing the libraries)
-tools

У меня нет инструментов в рамках проекта.Инструменты находятся в общей сетевой папке.Да, в наши дни дисковое пространство стоит дешево, но...давай же :)

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

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

Мы также используем TreeSurgeon и вполне довольны им.Наша структура выглядит следующим образом:

Филиал

  • строить
  • библиотека
  • Src
    • < различные каталоги src для приложений, тестов, миграции БД и т.д.)
  • Инструменты

Багажник

  • То же, что и выше
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top