실버라이트 애플리케이션 개발에 사용할 수 있는 DI (Dependency Injection) 컨테이너로 Unity가 출시됐다. Unity는 Enterprise Library (EntLib)에서 사용하던 ObjectBuilder에 Wrapper를 제공하여 개발자에게 좀 더 편리한 API를 제공하는 DI 컨테이너이며 현재 EntLib 4.1에 함께 포함되어 배포되고 있다. (물론 DI 기능만을 원하는 사람을 위해 별도로 Unity Application Block이라는 이름으로 배포되고 있다.) Unity가 ObjectBuilder의 Wrapper 형태로 제공되다보니 일반 애플리케이션용은 ObjectBuilder 관련 dll들과 함께 배포가 되어야 하지만, 실버라이트용은 이들 기능을 하나의 Microsoft.Practices.Unit.dll 파일에 모두 담아서 좀 더 나은 배포 환경을 제공하고 있다. 아래 관련 링크에서 좀 더 자세한 사항을 확인할 수 있다.

관련 싸이트 :
http://msdn.microsoft.com/en-us/library/dd362339.aspx
http://www.codeplex.com/unity

비단 실버라이트 애플리케이션 뿐만아니라 일반 애플리케이션 개발에 있어서도 간단한 형태의 구현이라면 굳이 프레임웍을 도입하여 프로젝트 복잡성을 증가시필 필요가 있는지 꼼꼼히 살펴볼 필요가 있다. 하지만, 요즘 실버라이트 애플리케이션이 간단한 동영상 플레이어 수준을 벗어나서 엔터프라이즈 영역으로 그 적용 범위를 확장하고 있는 것은 이러한 컨테이너에 관심을 갖을 필요가 있음을 느끼게한다. 인터넷 예약 화면을 좀 더 사용자 중심적인 모습으로 제공하는 것은 기본이고, 기업내 각종 실시간 모니터링 시스템이나, 임원 정보 시스템, BI 대쉬보드 등 결코 가볍지만은 않은 애플리케이션에 점차 확산되고 있는 추세이다. 이런 면에서 볼때 DI 기능을 좀 더 편리하면서 적용할 수 있는 실버라이트 개발용  Unity 출시는 주목할 만하다.

이전 포스트에서도 언급했듯이 실버라이트용 DI 기능을 제공하는 또 다른 오픈 소스 DI 컨테이너로는 NInject가 있다. NInject는 "번개처럼 빠른 DI 기능 제공"이라는 모토를 달고 나왔으며 현재 .NET Compact Framework 까지 지원한다고 밝히고 있다.

Posted by 장현춘