2011년 11월 2일 수요일

Castle.Windsor에서 Fluent Registration 사용하기

Castle.Windsor 하면, xml 형식의 configuration 파일만 주로 사용하는 제게 Fluent Registration API 는 아주 가끔…
  1. 특정 인터페이스의 모든 구현 클래스 등록하기
  2. 사용자 요청에 의해 동적으로 등록하기 (사용 빈도가 낮음)
을 사용하고 있었습니다.
요즘 Silverlight 를 하는 관계로 Castle.Windsor 를 Silverlight 에 사용하기 위해 코드를 작성하는 중에 엥? Silverlight 가 System.Xml Namespace의 클래스들을 제공하지 않아, Castle.Windsor Configuration 중에 Xml로 표현한 것을 파싱하는 XmlInterpreter 를 지원하지 않는다는 것을 알았습니다.
헐~ Silverllight 에서 System.Xml 을 지원하던가, Castle.Windsor에서 System.Xml.Linq 로 변경하던가 해야 할 듯 한데… .NET 2.0 을 생각한다면 System.Xml 을 버릴 수도 없고 참… Microsoft 사가 좀 더 호환성에 신경 썼더라면 하는 생각입니다… 생각 같아서는 #if SILVERLIGHT … #endif 로 구현할 수도 있겠지만, 글쎄요… 어떻게 할지…
자 지금까지는 기존 사용하던 xml 형식의 Component 정의에 대한 얘기라면, 지금부터는 Fluent API 를 이용하여, 컴포넌트를 등록하는 방법에 대한 정보를 보겠습니다.
  1. Fluent Registration API
  2. Registrering components one-by-one
  3. Conditional component registration
  4. Registrering components by conventions
  5. Registering Interceptors and ProxyOptions
  6. Fluent Registration API Extensions
  7. Windsor Installers
  8. XML configuration reference
Fluent API 로 Component 를 등록하는 방식은 아주 간단한 경우만 해봐서리, 저도 고급 방식에 대해서는 공부를 해야 했는데, 그 동안은 자로가 없어서 (핑계지만…) 못했었습니다… 이번에 Castle.Windsor 위키 사이트에 많은 내용이 올라와 있네요…
Xml configuration 과 비교될 수 있으면 비교한 예를 추가해 줬다면, 쉽게 이해가 될 부분도 있을 텐데…

결론은 Silverlight 에서는 Fluent Registration API 를 이용해라 입니다.^^ 앞으로는 .NET 에서도 죽~~
xml configuration 파일이 운영상에서는 장점이 더 많다고 생각하긴 하는데… 좀 더 생각해봐야 할 듯 하네요.

댓글 없음: