문제

그래,그래서 나는 설치하려면 모두 하나의 클래스에서 어떤 루트 폴더에 다음 중 하나를 수행합니다.

UI
Businesslogic 를 갖습
DataAccess
BusinessObjects
인터페이스

나는 몇 가지 더할 수 있는 없는 것을 양동이 매우 잘 그래서 내가 찾는 제안

  1. 캐시 클래스를 유지 관리하는 개인 사전할 수 있는 다양한 액세스를 기반으로 하는 개체는 일부 특정 키

  2. 이벤트 Arg 니다.

또한,아래에서 프로젝트가 지금 시작을 가능하게 하는 시스템에 있는 모든 3(데이터 액세스는 사업체,busiensslogic).어떻게 휴식하는 폴더 구조는?

A.

Projectx 를
--Subsystem1
----BusinessObjects
----DataAccess
----BusinessObjects
--Subsystem2
----BusinessObjects
----DataAccess
----BusinessObjects

Projectx 를
--BusienssLogic
----Subsystem1BL
----Subsystem2BL
--DataAccess
----Subsystem1DA
----Subsystem2DA
--BusinessObjects
----Subsystem1BO
----Subsystem2BO

Projectx 를
--Businesslogic 를 갖습
--DataAccess
--BusinessObjects
(이 없는 하위 디렉터리를 위한 각 기능성 서브시스템)

도움이 되었습니까?

해결책

I try to align 내 어셈블리의 이름과 그들의 네임스페이스,그리고 사용.NET Framework 자체 지침으로.굳게 믿고와 함께 작동하는 네임스페이스 구조는 드라이브는 폴더 구조에게 훨씬 더 유지 관리 codebase.

예를 들어,내가 캐싱하는 공급자의 일부 글로벌 개발자는 프레임워크를 사용하고 있습니다.그것은에 살고있는 네임스페이스의 비슷한:

[사].핵심입니다.데이터입니다.캐싱

나 다른 관련된 데이터는 기능도 논리적으로 떨어지 밑에 데이터 기능,그래서 캐싱하는 형제자매처럼 어댑터,컨버터,발전기.그렇다고 가정하자 우리는 다음과 같은 네임스페이스:

[사].핵심입니다.데이터입니다.어댑터
[사].핵심입니다.데이터입니다.변환기
[사].핵심입니다.데이터입니다.캐싱
[사].핵심입니다.데이터입니다.발전기

이러한과 관련된 네임스페이스 라이브 어셈블리에서는 회사].핵심입니다.데이터,또한 프로젝트 이름입니다.을 찾는 것들에 솔루션은 매우 간단하는 다음이 구조입니다.말의 구조,지금은 우리가 다시 얻을 어떻게 그들은 디스크에 저장됩니다.

프로젝트 이름은 루트 폴더 이름입니다.여기에서 내 소스어 폴더"C:\Source 제어에"나는 로컬 컴퓨터:

C:\Source Control\Core[사].핵심입니다.데이터\
C:\Source Control\Core[사].핵심입니다.데이터\어댑터
C:\Source Control\Core[사].핵심입니다.데이터\캐싱
C:\Source Control\Core[사].핵심입니다.데이터\컨버터
C:\Source Control\Core[사].핵심입니다.데이터\발전기

그래서,계층으로,그것은 다음과 같은:

[솔루션]
--[사].핵심입니다.데이터
----[어댑터]
------(어댑터 파일)
----[캐시]
------(파일 캐싱)
----[컨버터]
------(변환기 파일)

나는 모든 프로젝트에서 동일한 수준을 달라 하위 사용하는 네임스페이스 폴더에 있습니다.이 방법의 네임스페이스 그리고 물리적인 구조물은 쉽게 조정.어려운 부분이 균형을 발견하기.고 싶지 않아 많은 수의 작은 어셈블리,그래서 내가 일반적으로 그룹화들이 더 높은 수준에서,그리고 결국 그것은 리팩터링을 때 하나의 트렌드를 너무 큰 경우 또는 하위 네임스페이스보다 더 자주 변경 다른 부분입니다.

내가 이것을 하고 있고,그것은 매우 편안한 자신뿐만 아니라,나만을 위한 개발자가 사용합니다.

로시키려면 다음 질문에 동의함으로 합의는 일반적으로 하는 하나의 클래스 파일당하지만,만들 것을 제외하시키려면 다음으로 클래스가 다른 클래스는 경우에 그것은 단수를 사용합니다.를 위한 다용도,내가 그들에게는 최고 논리적 관점에서 조립할 수 있도록,네임스페이스 구조에 바인딩 나의 범위 지정합니다.

다른 팁

나는 일반적으로 스틱을하는 클래스 1,1 파일 규칙,하지만 후 호출,내가 실제로를 선언하 같은 파일에는 내가 정의 대리자 또는 이벤트입니다.지 않는 한,args 에 의해 사용되는 하나 이상의 클래스 계층 구조,지 않는 경향이 나에게 일어날 자주합니다.

로시,나의 폴더에서 클래스에있는 그것을 지원합니다.

로 내가 좋아하는 좋은 조직,하나 얻을 수 있습니다 너무 항문습니다.

이것은 대부분 수 있습니다.

나는 것에 동의합 Brian Genisio 에 관한 어디를 넣어 EventArg 클래스 등등.:만 사용하는 경우에는 그들이 한 번,그들을 넣어 같은 파일에 당신이 그들을 사용합니다.에 대한 일반적인 클래스/파일은 항상'일반적으로'폴더에(어떻게 편리합니다!;-))

에 관한 폴더 구조나는 두 번째,하나는 하나은 3 계층을 유지 하위 시스템을 구분됩니다.Win-Win!

나는 단지 설명을 추가에 이름이 있습니다.나는 느낌을 단어는 비즈니스에 이르게 사용할 수도 있다.우리는 이것을 했고,지금 우리가 무엇인지 몰라 그것에 대해:도메인 논리 또는 서비스 계층입니다.나는 것 같이 이름 도메인입니다.도메인입니다.Impl(별도의 인터페이스에서 Impl) 다음 서비스를 원하는 제품을 구매하기만 하면 지속 사용하는 경우 ORM 다 다를 수 있습니다면 사용하는 다른 접근 방식을,그러나 솔직히 말해,저는 혼란에 관한 이름 businesslogic 를 갖습,DataAccess,and BusinessObjects.을 이해하지 못하겠습니다.BusinessObjects 포함해야 사업 논리,논리?또는 그들은 단지 dto 로?그때는 왜 그들은 별도의 프로젝트에서 DataAccess?

이 없다 하나의 오른쪽 작업을 수행하는 방법입니다.

다운로드 몇 가지 오픈 소스 프로젝트를 사용하여 이와 유사한 기술을 귀하의 프로젝트를 당신의 아이디어에서 그들이다.

Sorry,나는 C#태그입니다.의 예에는 좋다.NET 프로젝트에 덮여있기 .

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