Недавно мы посетили подрядчика, который поставил под сомнение нашу методологию структурирования проектов. Обратите внимание, что я специально имею в виду структуру каталогов. Он предложил использовать рекомендации Microsoft. Я подумал, что смогу найти в Google «структуру директорий Microsoft .NET Project каталогов» и найти что-то полезное, однако это оказалось не так. В таком виде мы делаем что-то вроде этого:
[Company.System.Feature]
|-doc
|Sandcastle project
|-lib
|Nuget packages
|-src
|-Project1 e.g. web
|-Project2 e.g. business logic
|-UnittestProject1
|-Specs
Папка doc содержит решение Sandcastle, подобное описанному здесь: https://www.codeproject.com/Articles/15176/Sandcastle-Help-File-Builder (см. Абсолютные и относительные пути). Поэтому папка doc содержит папку Help, в которой содержится сгенерированный файл справки. Папка lib содержит все пакеты Nuget.
Существуют ли какие-либо рекомендации Microsoft, в которых рекомендуется, как структурировать решение? Я посмотрел здесь: /programming/789389/project-structure-for-c-sharp-development-effort/789554?noredirect=1#comment86756309_789554 среди других мест. Кажется, что большинство статей и вопросов, которые я прочитал, созданы в 2007-2009 гг. Я считаю, что Nuget был представлен в 2010 году. Существуют ли какие-либо рекомендации Microsoft? Я читал о чем-то, что называется Tree Surgeon, но, похоже, этого больше не существует: https://archive.codeplex.com/?p=treesurgeon .
Я использую TFS; Круиз-контроль и DDD это то, что имеет значение.
источник
packages
, для проектов в стиле dotnetcore и VS2017. Сейчас они живут вobj
каталогах проектов .Ответы:
На MSDN есть очень старые официальные правила . Они устарели, хотя. Как говорится на странице: « Этот контент устарел и больше не поддерживается. Он предоставляется в качестве любезности лицам, которые все еще используют эти технологии». Поэтому я рекомендую вам избегать этих рекомендаций.
Была предпринята попытка определить общую структуру решения с помощью Project Scaffold . Это больше ориентировано на F #, а не на C #. Это действительно не взлетело, хотя и есть небольшие признаки развития идей в эти дни.
Наиболее активный и актуальный набор руководств поддерживается Дэвидом Фаулером, разработчиком Microsoft в команде ASP.NET. Эти рекомендации используются многими в Microsoft, включая команды Roslyn (компилятор C # и VB.Net). Поэтому вы могли бы сделать намного хуже, чем принять такой подход.
источник