2010-02-10 7 views
2

설치 유형에 따라 기능을 활성화 또는 비활성화하는 방법을 어떻게 편집해야합니까? 별도의 에디션 용으로 단일 설치를하고 설치 유형에 따라 기능을 사용할 수 있도록하는 것이 목적입니다.설치 유형에 따라 기능 활성화/비활성화

코드를 조건부로 컴파일하는 한 가지 방법은 코드를 더럽고 유지하기 어렵게 만드는 것입니다.

답변

3

모든 (또는 대부분의) 기능이 핵심 앱 기능을 확장하는 플러그인으로 구현되는 플러그인 기반 아키텍처에 의지 할 수 있습니다. 이렇게하면 에디션은 조립품이 설치/배송되는 방식/등에서 만 달라집니다.

이 방법을 사용하면 누락 된 어셈블리를 복사하여 "초보자 용"에디션을 항상 "전문가"로 만들 수 있습니다. 이 문제를 해결하려면 여전히 조건부 컴파일을 사용해야하지만 조건부로 해당 플러그인을로드하는 블록을 컴파일해야합니다.

예를 들어 전문가 용 버전을 추가하려면 기능을 추가 할 수 있다고 가정합니다. 이를 위해 별도의 IExporter 플러그인 인터페이스를 만듭니다. 다음은이 처리 방법은 다음과 같습니다 따라서, 귀하의 프로페셔널 에디션은 능력이있을 것이다

public IExporter GetExporter(FormatType format) 
{ 
#if PROFESSIONAL_EDITION 
    return ExporterRegistry.GetExporter(format); 
#else 
    return NullExporter(); 
#endif   
} 

심지어 곳에서 "전문"어셈블리, 비 - 전문 판 반면, 사용자 정의와 IExporter의를 확장 할을하지 않습니다 이 기능을 사용할 수 있습니다.

0

플래그가 하나의 옵션이지만 '조건부 컴파일'이라고 생각합니다. 설치 유형은 플래그를 기반으로 플래그를 설정하고 일부 코드는 실행되지 않습니다. 그렇지 않으면 무시됩니다.

코드의 분기가 다를 수 있습니까? 그런 식으로 각 버전에는 해당 설치 유형에 대한 관련 코드 만 있습니다. 절대로 사용하지 않을 코드를 가지고 다닐 필요가 없습니다.

+0

"분기"를 선택하면 에디션 수가 증가함에 따라 유지 관리가 어려워집니다. – Faisal

관련 문제