2008-10-06 5 views
2

다른 프로젝트에서 사용할 수있는 공용 유틸리티 라이브러리를 구성하는 가장 좋은 방법은 무엇일까? 나는 닷넷과 C#을 사용하고있다.공용 유틸리티 라이브러리를 만드는 가장 좋은 방법은 무엇입니까?

로깅, 인증, 엑셀 등의 각 유틸리티에 대해 별도의 프로젝트를 만들고 종속성과 함께 개별적으로 릴리스해야합니까? 아니면 하나의 공용 유틸리티 어셈블리에 모든 유틸리티를 포함시켜 모든 종속성을 묶어서 필요한 것을 참조해야합니까? 공통 유틸리티를 사용하는 프로젝트의 종속성?

답변

2

나는 (적어도 일반적으로) 제공하고자하는 기능을 파악한 다음 그 주위에 논리 네임 스페이스 계층을 정의 할 것입니다. 가장 중요한 정의를 얻었 으면 모든 라이브러리 파일을 만들고 구조화 모듈을 구성하여 "모든 것"라이브러리를 갖지 않아도되지만 "파일/디렉토리 도우미" 어셈블리 ".dll", DB 래퍼 어셈블리 ".dll", "UI 구성 요소 어셈블리".dll 등이 있습니다.

1

두 가지 사항에 따라 다릅니다.

먼저, 함께 묶는 것의 관계는 무엇입니까? 그들을 함께 도서관에 집어 넣는 것이 이치에 맞습니까?

둘째, 사용 모델은 무엇입니까? 모든 프로젝트와 연결되는 표준 유틸리티 집합이라면 함께 사용하는 것이 합리적입니다.하지만 기능을 제공하기 위해 동적으로 다른 모듈을로드하는 런타임 플러그인 스타일 모델을 사용하는 경우 더 많은 분리가 필요할 수 있습니다.

1

마스터 ProductivityLibrary를 만드는 길을 간략히 살펴 보았습니다. 예를 들어 내가 가장 많이 사용하고있는 클래스의 하위 집합과 디자인의 장대 한 계획을 가지고 있다는 것을 알기 위해서만, pattern-swiss-army-knife는 여러 아이디어가 나올 때마다 항상 다시 컴파일되었습니다. 그것은 모든 것을위한 플러그 - 인을 만들 때 이같은 미스 매쉬가 된 것처럼 말이되지 않습니다.

하나의 문제를 해결하는 개별 어셈블리를 빌드하십시오. 관리가 더 쉽습니다.

0

내 프로젝트간에 공통된 소스 코드와 유틸리티를 공유하는 좋은 방법을 발견했습니다! 각각의 새 프로젝트에서 공통 소스 파일의 동일한 저장소를 가리키는 "Junction Point"폴더를 만듭니다. 그런 다음 Visual Studio의 프로젝트 트리에서 필요한 파일에 "모든 파일 표시"및 "포함"을 선택합니다. 이것은 정말 잘됩니다! 쉽고 강력한 ...

모든 종류의 코드가있는 모 놀리 식 common.dll 대신 일부 프로젝트에서는 사용하지 않을 수도 있지만 정확히 필요한 파일을 추가하면 단일 exe 파일이 생깁니다. 느슨한 dll 파일을 많이 사용하지 않아도됩니다.

또 다른 팁은 EncryptionUtils.cs 및 NetworkUtils.cs와 같이 부분 정적 유틸리티 유틸리티 클래스가 다른 파일을 사용하는 것입니다. 동일한 정적 클래스에서 모두 액세스 할 수있는 경우 유틸리티에서 코드를 쉽게 찾을 수 있습니다. 필자가 정말로 필요로하는 파일 만 포함하기 때문에 Utilities 클래스에서 이러한 유틸리티를 얻습니다.