Ответ 1
Мы используем очень похожий макет, как описано в сообщении блога JP Boodhoo под названием Структура каталога для проектов.
Как настроить дерево разработки .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 под названием Структура каталога для проектов.
Проверьте эти другие вопросы StackOverflow...
TreeSurgeon - это инструмент, который настроит для вас дерево каталогов со всеми необходимыми зависимостями и скелетным файлом. По этой ссылке вы также можете найти серию сообщений в блоге от своего первоначального создателя Майка Робертса, объяснив некоторые из преднамеренных вариантов структуры, которую дает вам TreeSurgeon, например, почему это нормально, чтобы иметь дублирование между lib и инструментами, почему важно иметь все зависимости и т.д.
Я не использовал его через какое-то время, поэтому не могу вспомнить, согласен ли я со всеми его вариантами, но я не думаю, что вы можете ошибиться с ним.
Мы используем такую структуру:
Затем просто убедитесь, что все файлы проекта/решения используют только относительные пути, и ветвление работает хорошо. Desktop/Webs предназначены для проектов соответствующих типов. Тест предназначен для любых проектов unit test. Папка "Решения" имеет папку для каждого решения, в которой есть только файл решения. ReferencedAssemblies содержит все сборки, которые мы не включаем в решение (иногда это локальные проекты, которые мы просто не хотим создавать каждый раз, когда мы создаем решение или сторонние сборки, такие как риномы или log4net и т.д. Shared для любая из основных библиотек (доступ к данным, бизнес-логика и т.д.), которые используются в нескольких решениях.
На моем месте работы у нас есть несколько проектов, где каждый проект получает свой собственный подкаталог, например:
-proj1
--proj1.csproj
-proj2
--proj2.csproj
-proj3
--proj3.csproj
solutionfile.sln
Остальная часть вашей настройки выглядит нормально, но я думаю, вы должны выяснить, как вы будете включать несколько проектов, например, общую библиотеку источников между несколькими решениями.
Если я правильно понимаю вашу структуру, я думаю, что у вас будет много дубликатов в дереве dev, связанных с "инструментами" и "lib". Скорее всего, это внешние инструменты и библиотеки, которые могут использоваться разными проектами.
Что-то, что хорошо работает для нас:
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
У меня нет инструментов в проекте. Инструменты находятся в сетевом ресурсе. Да, дисковое пространство в наши дни дешево, но... давай:)
Также у меня есть папка базы данных script ниже имени проекта (когда это приложение, управляемое данными)
Конечно, это не так важно, как вы настроены, но тот факт, что логический организованный стандарт используется в соответствии с проектом и соблюдается с хорошей дисциплиной. Это полезно, будь то соло или команда.
Мы также используем TreeSurgeon и очень довольны им. Наша структура выглядит так:
Branch
Магистральные