2010-07-07 6 views
2

제한된 기능으로 몇 가지 버전의 앱을 제작하고 있습니다. 더 간단한 버전에서는 필요하지 않은 코드는 생략하고 싶습니다. WinForms 앱이므로 제한된 컨트롤을 표시하지 않고 각 버전마다 UI를 변경해야합니다.UI 구성 요소 및 조건부 컴파일러 조건부 컴파일

자동 생성 된 컨트롤 & 레이아웃 코드의 일부에 조건부 컴파일 문을 주석으로 추가하려고 시도했지만 WinForms 디자이너를 통해 아무 것도 건 드리 자마자 VS에서 모든 코드를 삭제합니다.

나는 UI 컨트롤을 & 일부 이벤트 처리기를 조건부로 컴파일 할 수 있기를 바란다. 조건부 UI 코드를 디자이너 파일 외부에 쓸 수는 있지만 VS 디자이너를 사용하여 내 응용 프로그램을 편집 할 수는 없습니다.이 상황을 해결할 수있는 제안이 있습니까? 즉, 조건부로 UI 컨트롤을 컴파일합니다. &에 여전히 표시되어 있습니다. 디자이너?

감사합니다.

답변

1

UI 양식이 어쩌면 모든 버전이 기능상으로 공유하는 기본 양식을 만들 수 있는지 알지 못합니다. 그런 다음 특정 기능에 대한 양식을 사용하여 서브 클래스를 작성하십시오. 이렇게하면 한 폼 내에서 컨트롤을 켜고 끄는 대신 조건부로 하위 폼을 컴파일 할 수 있습니다. 그러나 하위 양식은 일반적으로 양식을 아래쪽으로 확장하므로 양식 전체의 직조 컨트롤이이 경우 작동하지 않을 수 있습니다.

MVC 나 MVP와 같은 프리젠 테이션 패턴을 사용하는 경우 양식에있는 논리를 최소화하고이를 구성 할 수있는 비즈니스 클래스 또는 발표자로 푸시 할 수 있습니다. 컴파일하는 버전에 따라 달라집니다. 이러한 클래스는 일부 구성에 따라 응용 프로그램에 DI를 주입 할 수 있습니다.

또 다른 옵션은 양식 컨트롤을 컴파일하는 것이 아니라 실행중인 버전에 따라 숨기고 비즈니스 클래스를 컴파일하는 것입니다. 이 방법으로 중요한 '지적'코드는 앱에 없으며 winform 디자이너와 경쟁하지 않습니다.