블랜드 디자이너와의 협업에 관한 짧은 글을 써볼까 합니다.
오래전부터 협업이라는 과제는 풀어도 풀어도 속시원히 해소할 수가 없었습니다.

여러가지 디자인 패턴과 협업을 위한 다양한 시도는 좋았으나 막상 이용해보고 사용해보면
어딘가 문제는 발생하게 되어있더라구요.

아.. 이런 이야기를 하려고 했던게 아니라.
실버라이트 개발자로써 디자이너를 위한 최소한의 배려를 코드로 보여주고 싶었습니다.

이미 많은 분들께서 애용하고 계시고 포스팅 글도 올라와있는 현상황에서 이글을 쓰는 이유는 도대체 뭐냐?
저희 팀블로그에는 없기때문입니다.

.....
     public class Test : UserControl
    {
        public Test()
        {
            InitializeComponent();
             ...............
        }
    }

위와 같이 저희는 생성자에 많은 코드를 집어 넣습니다.
간단한 이벤트 정의나 사이즈 조절등과 같은 코드는 블랜드 상에서 해당 컨트롤을 열었을때 문제를 일으키지 않습니다.

하지만 서비스를 호출한다거나 간접적으로 디비와 접촉을 한다거나 복잡한 수행을 한다거나 하면 어쩌면 블랜드에서
아무 이유 없이 블랜드 작업을 하다가 혹은 처음부터 혹은 비쥬얼스튜디오에서 .xaml 코드작업을 하다가 
프로그램이 비정상적으로 종료가 될 것입니다.

이런 상황을 안격어 보신분들은 모르시겠지만.. 저와 같이 개념없이 생성자에다가 많은 코드를 심어놓으면 이런 불상사를 격게 될 수도 있습니다.

빌드도 잘되고 에러도 잡히지 않습니다. 하지만 VS2010 혹은 Blend 4.0 이 뻗어버리게 되면 미쳐버립니다.
한두번도 아니고 하루에 몇십번씩 이유도 모르고 종료되는 모습을 바라만 보았습니다.

이런 상황을 방지 하기 위해서 제일 좋은 방법은 생성자에 안쓰는게 좋겠지만 어떻게 안쓸 수 있습니까..

디자이너를 위해서
if (DesignerProperties.GetIsInDesignMode(this))
               return;

간단한 코드로 분기시켜버리니깐 블랜드에서 혹은 VS2010에서 큰 오류도 없고 빌드도 잘되고 하더라구요..

짧은 코드한 줄은 서로를 화목하게 하는가 봅니다.
지금은 그럭저럭 잘 지내고 있습니다.;; ^^