문제

.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이 제공하는 구조 뒤에 있는 의도적인 선택 중 일부를 설명하는 원래 작성자인 Mike Roberts의 일련의 블로그 게시물도 찾을 수 있습니다.lib와 도구 사이에 중복이 있어도 괜찮은 이유, 모든 종속성이 존재하는 것이 중요한 이유 등

나는 그것을 한동안 사용하지 않았기 때문에 그것이 내리는 모든 선택에 여전히 동의하는지 기억할 수 없지만, 당신이 그것에 대해 크게 잘못될 수 있다고 생각하지 않습니다.

우리는 다음과 같은 구조를 사용합니다.

  • 회사 이름또는 핵심 프로젝트 이름
    • 나뭇가지
      • 지점명
        • 트렁크 사본
    • 트렁크
      • 데스크탑
      • 참조된 어셈블리
      • 공유됨
      • 솔루션
      • 시험

그런 다음 모든 프로젝트/솔루션 파일이 상대 경로만 사용하고 분기가 제대로 작동하는지 확인하세요.Desktop/Webs는 해당 유형의 프로젝트용이고, Test는 모든 단위 테스트 프로젝트용이며, Solutions 폴더에는 솔루션 파일만 들어 있는 각 솔루션에 대한 폴더가 있습니다.ReferencedAssemblies는 솔루션에 포함하지 않은 모든 어셈블리를 보유합니다(때때로 솔루션을 빌드할 때마다 빌드하고 싶지 않은 로컬 프로젝트이거나 rhinomocks 또는 log4net 등과 같은 타사 어셈블리일 수도 있습니다).공유는 여러 솔루션에서 사용되는 핵심 라이브러리(데이터 액세스, 비즈니스 논리 등)에 대한 것입니다.

제가 일하는 곳에는 여러 프로젝트가 있는데, 각 프로젝트에는 다음과 같은 자체 하위 디렉터리가 있습니다.-proj1
--proj1.csproj
-proj2
--proj2.csproj
-proj3
--proj3.csproj
솔루션파일.sln

나머지 설정은 괜찮아 보이지만 여러 프로젝트(예: 여러 솔루션 간의 공유 소스 라이브러리)를 통합하는 방법을 파악해야 한다고 생각합니다.

귀하의 구조를 올바르게 이해했다면 개발 트리에 "tools" 및 "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

프로젝트 내에 도구가 없습니다.도구는 네트워크 공유에 있습니다.네 요즘은 디스크 공간이 저렴하지만...어서 해봐요 :)

또한 프로젝트 이름 아래에 데이터베이스 스크립트 폴더가 있습니다(데이터 기반 앱인 경우).

물론 설정 방법은 그다지 중요하지 않지만, 논리적으로 조직된 표준을 프로젝트에 맞게 사용하고 올바른 규율을 준수한다는 사실이 중요합니다.이는 솔로든 팀이든 유용합니다.

우리는 또한 TreeSurgeon을 사용하고 있으며 매우 만족하고 있습니다.우리의 구조는 다음과 같습니다:

나뭇가지

  • 짓다
  • lib
  • 소스
    • <앱, 테스트, DB 마이그레이션 등의 다양한 SRC 디렉토리)
  • 도구

트렁크

  • 같은 상기와
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top