.NET 솔루션의 디렉토리 구조


16

우리는 최근 계약자 방문을 통해 프로젝트 구조화 방법론에 의문을 가졌습니다. 디렉토리 구조를 구체적으로 언급하고 있습니다. 그는 Microsoft 지침 사용을 제안했습니다. Google에서 "Microsoft 지침 .NET 프로젝트 디렉토리 구조"를 사용하고 유용한 정보를 찾을 수있을 것이라고 생각했지만 실제로는 그렇지 않습니다. 그대로 우리는 다음과 같이합니다.

[Company.System.Feature]
  |-doc
     |Sandcastle project
  |-lib
     |Nuget packages
  |-src
    |-Project1 e.g. web
    |-Project2 e.g. business logic
    |-UnittestProject1
    |-Specs

doc 폴더에는 https://www.codeproject.com/Articles/15176/Sandcastle-Help-File-Builder에 설명 된 것과 같은 Sandcastle 솔루션이 포함되어 있습니다 (절대 및 상대 경로 참조). 따라서 doc 폴더에는 생성 된 도움말 파일이 들어있는 도움말 폴더가 있습니다. lib 폴더는 모든 Nuget 패키지를 포함합니다.

솔루션 구성 방법을 권장하는 Microsoft 지침이 있습니까? 나는 여기를 보았습니다 : https : //.com/questions/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는 차이를 만듭니다.


4
디렉토리 구조는 매우 맛의 문제입니다. 프로젝트 / 조직 의도를 가장 명확하게 나타내는 폴더 구조를 사용하십시오.
Robert Harvey

5
또한 다음에 누군가가 "Microsoft 지침"을 따라야한다고 말하면 해당 사람에게 해당 지침을 제공하도록 요청하거나 지침을 찾을 수있는 곳을 보여주십시오. 그렇지 않으면 쓸모없는 조언입니다.
Robert Harvey

2
홀수 비트는 패키지 대신 lib에 nuget 패키지를 넣는 것
Ewan

1
@Ewan, nuget 패키지는 packagesdotnetcore 및 VS2017 스타일 프로젝트에 더 이상 속하지 않습니다 . 그들은 이제 프로젝트 obj디렉토리에 살고 있습니다.
David Arno

2
pff! 업그레이드?!?!? 그것이 깨질 것 같은 소리
Ewan

답변:


20

MSDN에는 매우 오래된 공식 지침이 있습니다. 그러나 이것은 구식입니다. 페이지에 나와있는 것처럼 " 이 콘텐츠는 오래되어 더 이상 유지 관리되지 않습니다. 여전히 이러한 기술을 사용하는 개인에게 무료로 제공됩니다. "따라서이 지침을 피하는 것이 좋습니다.

Project Scaffold 를 통해 공통 솔루션 구조를 정의하려는 시도가있었습니다 . 이것은 C #이 아니라 F #에 더 적합합니다. 그것은 실제로 이륙하지 않았으며 요즘 아이디어 개발의 징후는 거의 없습니다.

ASP.NET 팀의 Microsoft 개발자 인 David Fowler는 가장 적극적이고 최신 지침 을 유지 관리합니다. 이러한 지침은 Roslyn (C # 및 VB.Net 컴파일러) 팀을 포함하여 Microsoft 내 많은 사람들이 사용합니다. 따라서 이러한 접근 방식을 채택하는 것보다 훨씬 나빠질 수 있습니다.


첫 두 링크는 ​​보았지만 세 번째 링크는 보지 않았습니다. 세 번째 링크는 +1입니다. 전체 Sandcastle 프로젝트를 docs 폴더 또는 Sandcastle 프로젝트에서 생성 한 도움말 파일에 넣을까요? 이 답변이 왜 다운 보트인지 확실하지 않습니다.
w0051977

1
공평하게 말하면 Microsoft의 새로운 문서 시스템에 포함되지 않은 모든 페이지에는 "이 내용은 오래되어 더 이상 유지 관리되지 않습니다."라는 문구가 찍 힙니다. 그렇다고 유용한 정보가 없다는 의미는 아닙니다.
Robert Harvey

사양을 넣었습니까? Tests 폴더 또는 Specs 디렉토리 (src 폴더와 동일한 디렉토리)에 있습니까? 너무 중요하지 않은 것 같습니다.
w0051977

@RobertHarvey : 충분히 공평하지만, 그 페이지 만 따로 따로 백업하지 않아도 다른 폴더가 이미 설정된 경우 프로젝트 폴더 구조를 변경해야하는 이유는 아닙니다.
Flater

GitHub의 대부분의 오픈 소스 프로젝트 (예 : Enity Framework) 에서 실제로 David Fowlers 지침을 볼 수 있습니다 .
pfx 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.