문제

해야의 폴더에서 솔루션에 맞는 네임스페이스?

에서 하나의 팀 프로젝트가 있는 클래스 라이브러리는 많은 하위 폴더에서 프로젝트입니다.

프로젝트 네임스페이스 및 이름: MyCompany.Project.Section.

이 프로젝트에서 여러 가지가 있는 폴더와 일치하는 네임스페이스의 섹션:

  • 폴더 Vehicles 는 클래스 MyCompany.Project.Section.Vehicles 네임스페이스
  • 폴더 Clothing 는 클래스MyCompany.Project.Section.Clothing 네임스페이스
  • etc.

이 같은 프로젝트로,다른 폴더에 악성

  • 폴더 BusinessObjects 는 클래스 MyCompany.Project.Section 네임스페이스

거기에 몇 가지 경우 다음과 같이 폴더를 만들어진"에 대한 조직의 편리함".

나의 질문은:What's 표준?에서 클래스 라이브러리지 폴더에 일반적으로 일치하는 네임스페이스 구조 또는 혼합 가방입니까?

도움이 되었습니까?

해결책

또한,당신이 사용하는 경우 내에서 템플릿 클래스를 추가하는 폴더,그것은 기본적으로 넣어야에서는 네임스페이스을 반영합니다.

이 수업을 쉽게 찾을 수있을 것입니다 그리고 혼자 있어야 이유가 충분합니다.

우리가 규칙을 따르고 있:

  • 프로젝트/어셈블리의 이름은 동일한 루트 네임스페이스로 제외한다.dll 말
  • 유일한 예외는 상기 규칙은 프로젝트이다.핵심,종료니다.핵심은 제거
  • 폴더 equals 네임스페이스
  • 한식당 파일(클래스,구조체,열거,대리인,etc.) 을 쉽게 찾을 수 있는 파일

다른 팁

No.

난 둘 다 시도했는 방법에는 크고 작은 프로젝트를 모두 하나의(나)와 개발자의 팀입니다.

내가 발견한 가장 간단하고 생산적인 경로를 가지고 있었다 하나의 네임스페이스 프로젝트와 모든 클래스로 이동하는 네임스페이스가 있습니다.당신은 다음을 넣어 클래스 파일에 어떤 프로젝트 폴더를 원합니다.없음에 대한 장난을 추가 사용하는 문장의 맨 위에 모든 파일을 같은 시간이 단지 하나의 네임스페이스가 있습니다.

그것은 중요한 소스 파일을 폴더로 내 생각에는 폴더에 사용되어야 합니다.필요로 하는 이러한 폴더도 지도를 네임스페이스는 불필요한,더 많이 만들어 작업,그리고 내가 발견했다 실제로 유해 조직이기 때문에 추가되는 부담을 권장 해체.

이 FxCop 경고 예를 들어:

CA1020:피 네임스페이스와 함께 몇 가지 유형
원인:네임스페이스 이외의 다른 글로벌 네임스페이스보다 적은 다섯 가지 유형 https://msdn.microsoft.com/en-gb/library/ms182130.aspx

이 경고를 장려버리는 새로운 파일로 일반적인 프로젝트입니다.일반 폴더 또는 프로젝트의 루트가 있을 때까지 네 개의 유사한 클래스를 정당화를 만드는 새로운 폴더에 있습니다.이는 이제까지 일어날까요?

파일 찾기

허용되는 답은"이 수업을 쉽게 찾을 수있을 것입니다 그리고 혼자 있어야 이유가 충분합니다."

내가 심는 대답을 참조하는 여러 네임스페이스 프로젝트에서는 없어도하는 폴더 구조,무엇보다는 나을 제안하는 프로젝트를 하나의 네임스페이스가 있습니다.

어떤 경우에도 동 결정할 수 없는 폴더는 클래스 파일에서는 네임스페이스에서,당신은 그것을 찾을 수 있습니다 사용하여 정의로 이동하거나 검색 솔루션 탐색기 상자 Visual Studio.또한 이것이 정말로 큰 문제이다.지 소비도 0.1%의 개발에 시간을 찾는 문제로 파일을 정당화를 최적화하다.

이름을 충돌

확인을 만드는 여러 네임스페이스 할 수 있습 프로젝트하는 두 개의 클래스로 동일한 이름입니다.하지만 정말 좋은 일입니까?그것은 아마도 다른 것을 허용되는 가능한가요?을 수행할 수 있으므로 동일한 이름의 클래스를 만들은 좀 더 복잡한 상황 90%시간의 일이 일정한 방법으로 그리고 갑자기 당신은 당신을 찾을 수 있는 특별한 경우입니다.말 당신은 두 가지 사각형 클래스에 정의 별도의 네임스페이스:

  • 클래스 Project1.이미지입니다.사각형
  • 클래스 Project1.창입니다.사각형

그것은 가능한 가을 치는 문제는 원본 파일을 요구를 모두 포함하는 네임스페이스입니다.지금 당신은 당신이 쓰는 전체 네임스페이스 어디에서나는 파일:

var rectangle = new Project1.Window.Rectangle();

또는 혼란에 대해 일부로 불쾌한 using:

using Rectangle = Project1.Window.Rectangle;

하나의 네임스페이스 프로젝트에서 당신은 강을 올라와 다른,그리고 나는 주장한 더 자세한 설명,이름은 다음과 같다:

  • 클래스 Project1.ImageRectangle
  • 클래스 Project1.WindowRectangle

과 사용은 어디에서나 동일한,당신은 처리하지 않은 특별한 경우 파일을 모두 사용하는 유형입니다.

를 사용하여 문의

using Project1.General;  
using Project1.Image;  
using Project1.Window;  
using Project1.Window.Controls;  
using Project1.Shapes;  
using Project1.Input;  
using Project1.Data;  

using Project1;

쉽게 있지 않음을 추가하는 네임스페이스의 모든 시간이 쓰는 동안 코드입니다.그것은 걸리는 시간은 정말로,그것은 휴식에서의 흐름 작업을 수행 할 필요없이 그것은 단지 채우 파일 많이 사용하여 문이-무엇을?그것은 그것의 가치가 무엇입니까?

변화하는 프로젝트 폴더 구조

는 경우 폴더를 네임스페이스에 매핑된 다음 프로젝트 폴더의 경로를 효과적으로 하드 코딩은 각 소스 파일입니다.이미 모든 이동하거나 이름을 바꾸 파일 또는 폴더의 프로젝트에서 필요한 실제 파일의 내용을 변경합니다.모두 네임스페이스의 선언은 파일에는 폴더에 사용하는 문장 전체에 무리의 다른 파일을 참조하는 클래스에서는 폴더에 있습니다.는 동안 스스로 변화하는 사소한으로 장식새김,그것은 일반적으로 결과에 큰 commit 으로 구성된 많은 파일이 있는 클래스지 않았더라도 변경되었습니다.

하나의 네임스페이스 프로젝트에서 변경할 수 있습니다 프로젝트 폴더 구조 그러나지 않고 당신이 원하는 모든 소스 파일을 스스로 수정되고 있습니다.

Visual Studio 자동으로도의 네임스페이스는 새로운 프로젝트에 파일을 폴더에서 생성

불행한 일이지만,내가 찾는 번거로움을 수정 네임스페이스 미만의 번거 로움에 있습니다.더 보기또한 난 습관으로의 복사하여 붙여넣 기존 파일에 사용하기보다는 추가->새로운.

Intellisense 개체 브라우저

에서 가장 큰 장점 내의 의견을 사용하여 여러 네임스페이스가 있는 대규모 프로젝트에서는 여분의 조직을 볼 때 클래스에 어떤 장식새김을 표시하는 클래스에서는 네임스페이스는 계층 구조로 구성됩니다.심지어 문서입니다.분명 하나의 네임스페이스 프로젝트에서 결과에서 모든 클래스에 표시되는 하나의 목록보다 깨진으로 범주가 있습니다.그러나 개인적으로 나는 본 적이 없습니다 난처한 또는 지연의 부족 때문에 이 그래서 나는 그것을 찾을 수 없는 충분히 큰 혜택을 정당화하려는 여러 네임스페이스입니다.

하지만 만약 내가 쓰는 큰 공용 클래스 라이브러리음 아마도 사용하여 여러 네임스페이스 프로젝트에서는 어셈블리를 깔끔한에서 툴링 및 설명서가 포함되어 있습니다.

내 생각,표준다.NET,하려고 할 때 그것을 가능하지만,없을 만드는 불필요하게 깊은 구조물을 그냥을 준수하는것으로 하는 규칙.내 따라 프로젝트 네임스페이스==구조물 규칙의 100%,시간 때로는 그냥 세탁기술자/나이에 같은 규칙이 있습니다.

Java 없는 선택입니다.나가라고 부르는 고전의 경우 어떤 작품에서는 이론 대 어떤 작품이다.

@lassevk:동의함 이러한 규칙을 하나 더 추가 할 수 있습니다.

가 중첩된 클래스,난 여전히 그들을 분할 아웃당하는 파일입니다.다음과 같다:

// ----- Foo.cs
partial class Foo
{
    // Foo implementation here
}

// ----- Foo.Bar.cs
partial class Foo
{
    class Bar
    {
        // Foo.Bar implementation here
    }
}

나는 그렇습니다.

첫째로,그것을 쉽게 찾을 수있을 것입니다 실제 코드는 파일에 다음 아래의 네임스페이스(예를 들어,누군가가 이메일을 벗은 예외를 호출 스택).당신이 당신의 폴더로 이동 동기화하는 네임스페이스,파일 찾기에서 큰 코드베이스가 받고 피곤하다.

둘째,대를 생성하는 새로운 클래스를 만들고 폴더에서 동일한 네임스페이스는 상위 폴더의 구조입니다.로 결정한 경우 수영에 대하여,그것은 단지 하나가 될 것입니다 더 많은 배관하는 작업을 할 때 매일 추가하는 새로운 파일이 있습니다.

물론,이것은 말할 필요도 없는 한 보수적 방법에 대해 깊은 xis 폴더/네임스페이스 계층 간다.

네 그들은 해야,이를 혼란지 않습니다.

What's 표준?

이 공식적인 표준이 그러나 통상적으로 폴더를 네임스페이스에 매핑 패턴은 가장 널리 사용됩니다.

에서 클래스 라이브러리지 폴더에 일반적으로 일치하는 네임스페이스 구조 또는 혼합 가방입니까?

예,대부분의 클래스 라이브러리 폴더를 네임스페이스와 일치에 대한 조직의 용이함.

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