Developing Silverlight 2 Application

작년 12월에 Silverlight 1.0 애플리케이션 맛보기 개발에 대한 글을 쓴 적이 있다. 어제 새벽 2시 정도에 잠을 깨는 바람에 Silverlight 2 애플리케이션 개발을 위한 튜터리얼을 보면서 실제로 개발하는 과정을 체험해보았다.

Silverlight 1.0은 Javascript 만을 지원했고, GUI 애플리케이션 개발을 위한 라이브러리에 기본적으로 포함되어있는 레이아웃이나 컨트롤(위젯)들을 포함하고 있지 않았기 때문에, 이렇다 할 애플리케이션을 개발하기가 쉽지 않았다.

Silverlight 1.1 Alpha가 2007년 9월 경에 릴리즈 되었고, 2.0으로 이름이 바뀌면서 2008년 3월에 Beta 1, 6월에 Beta 2가 릴리즈 되었다.

Silverlight 2의 가장 큰 변화는 바로 작은 크기의 CLR을 포함함으로써 Javascript 외의 .Net 언어들, 예를 들어 C#을 사용해 Silverlight 바이너리를 생성할 수 있다는 것이다. 이에 따라, .NET Base Class Library이라든가 LINQ 등의 훌륭한 기능을 활용할 수 있게 되었다.

두번째는 레이아웃이나 컨트롤들이 추가되었다는 점이다. XAML 수준에서 컨트롤 확장이 가능하다는 것도 굉장히 놀랄만한 점이다.

세번째는 Web Services나 AJAX를 위한 WebClient, HttpWebRequest 뿐만 아니라, Socket 까지 지원하는 네트워킹 지원이다. 네트워크를 통해 받은 XML, JSON, RSS/ATOM Feed등을 처리하기 위한 클래스들이나 LINQ와의 연동 등도 훌륭하다.

Silverlight 2 애플리케이션을 개발하기 위한 좋은 튜터리얼은 Silverlight 홈페이지에도 링크되어 있는 Scott Guthrie의 튜터리얼이다. 이 튜터리얼은 Visual Studio 2008을 이용해 Silverlight 2 애플리케이션을 개발하는 과정을 설명하고 있다.

Visual Studio 2008에 Silverlight Tools for Visual Studio 2008을 설치하면,

  • 프로젝트 템플릿을 이용해  Silverlight 2 관련 프로젝트를 생성할 수 있으며,
  • XAML의 Syntax Highlighting은 물론이고, XAML의 렌더링 결과를 실시간으로 확인할 수 있으며,
  • 자체 웹 서버를 통해 브라우저를 통해 Silverlight 2 애플리케이션을 실행하고 디버깅할 수 있다.

아직은 부족한 면이 어느 정도 있는 편이다.

  • XAML 디자인이나 컨트롤 속성 편집 모두 WYSIWYG 방식이 아니라 XAML을 직접 수정할 수 밖에 없다.
  • 스타일이나 데이터 바인딩 등은 XAML에서 attribute 값의 형태로 참조되는데, XAML 에디팅 과정에서 이들에 대한 Intellisense 기능을 활용할 수 없다.

WYSIWYG 디자인은 Expression Blend에서 잘 지원이 되는 듯 한데 (그래서 Expression Blend 튜터리얼도 읽어볼 예정이다), 그동안 데스크탑 애플리케이션의 WYSIWYG 디자인이 주욱 Visual Studio에서 이루어져 온 것을 생각하면, 왜 Silverlight 애플리케이션의 WYSIWYG 디자인은 Visual Studio에서 지원되지 않는 것인지 궁금하다. 아직은 베타라서 그럴 수도 있다고 생각된다.

한편, Scott의 튜터리얼에서는 WatermarkedTextBox라는 컨트롤을 사용하는데, 얼마전에 릴리즈된 베타2에서 이 컨트롤은 제외되었고, 그 기능은 TextBox 컨트롤로 이전될 예정이라고 한다. 역시 아직은 베타 상태기 때문에, 개발 상의 변화가 베타 릴리즈 마다 꽤 크게 이루어지는 것을 볼 수 있다.

팀원 중 한 분이 팀 내에서 사용하는 장비 관리 도구를 Flex로 개발한 결과물을 보면서, 웹 애플리케이션의 귀결은 역시 RIA라는 것을 확인할 수 있었다. 현재의 소프트웨어 개발자가 HTML과 웹 언어를 사용해 웹 애플리케이션을 하나 쯤 개발할 줄 아는 것처럼, RIA 기술을 사용해 웹 애플리케이션을 뚝딱 만들어낼 수 있는 세상이 오는 것인가?

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.