처음 만나는 실버라이트 2

번역/ScottGu's Blog 2008. 2. 22. 21:21

원문 : First Look at Silverlight 2

지난 9월에 맥용과 윈도우 용의 실버라이트 1.0과 더불어 실버라이트를 리눅스로 이식하는 계획이 발표가 되었습니다. 실버라이트 1.0은 브라우저에서 풍부한 미디어 기능을 사용하는데 초점이 맞추어져 있었으며, 자바스크립트/AJAX 프로그래밍 모델을 지원하였습니다.

이제 곧 실버라이트 2의 첫번째 공개 베타 버전이 출시됩니다. 이는 실버라이트의 메이저 업데이트이며 강력한 인터넷 애플리케이션(RIA) 개발에 촛점이 맞추어져 있습니다. 이 포스트는 앞으로 제가 몇 주 혹은 몇 달간 작성할 실버라이트를 심도 깊게 다룰 포스트 시리즈의 첫번째 입니다.

크로스 플랫폼 / 크로스 브라우저 .NET 개발

실버라이트 2는 .NET 프레임웍의 크로스 플랫폼, 크로스 브라우저 버전을 소개하고, 강력한 .NET 개발 플랫폼이 브라우저에 실행되는 것을 가능하게 합니다. 개발자는 아무 .NET 언어(VB, C#, 자바스크립트, IronPython, IronRuby 포함)나 사용하여 실버라이트 애플리케이션을 작성할 수 있습니다. 실버라이트 솔루션을 개발함에 있어 개발자와 디자이너 간의 워크플로우 통합을 지원하는 비주얼 스튜디오 2008과 익스프레션 스튜디오 툴 지원도 곧 출시될 것입니다.

이번에 출시되는실버라이트 2 베타1 릴리즈에는 RIA 애플리케이션 개발을 지원하는 강력한 기능들이 다수 포함되어 있는데, 이는 다음과 같습니다.

  • WPF UI 프레임웍 : 실버라이트 2는 강력한 웹 애플리케이션을 더욱 쉽게 만들 수 있는 강력한 WPF 기반 UI 프레임웍을 포함하고 있습니다. 이에는 강력한 그래픽과 애니메이션 엔진, 컨트롤과 같은 상위 레벨 UI 기능 지원, 레이아웃 관리, 데이터 바인딩, 스타일, 템플릿 스킨이 있습니다. 실버라이트의 WPF UI 프레임웍은 완전한 .NET 프레임웍의 WPF UI 프레임웍 기능과 호환 가능한 하위 집합입니다. 따라서 개발자는 강력한 크로스 브라우저 웹 애플리케이션과 강력한 데스크탑 애플리케이션을 개발함에 있어 기술, 컨트롤, 코드, 컨텐트 등을 재사용할 수 있습니다.
  • 강력한 컨트롤 : 실버라이트 2는 개발자와 디자이너가 신속하게 애플리케이션을 개발할 수 있게 하는 강력한 내장 컨트롤 셋을 가지고 있습니다. 이번 베타1 릴리즈는 핵심 폼 컨트롤(TextBox, CheckBox, RadioButton 등), 내장 레이아웃 관리 패널(StackPanel, Grid, Panel 등), 일반 기능성 컨트롤(Slider, ScrollViewer, Calendar, DatePicker 등), 데이터 조작 컨트롤(DataGrid, ListBox 등)을 포함하고 있습니다. 내장된 컨트롤들은 강력한 컨트롤 템플릿 모델을 지원하는데, 이는 개발자와 디자이너가 협업하여 뛰어난 솔루션을 개발하는 데 큰 도움이 됩니다.
  • 강력한 네트워킹 지원 : 실버라이트 2는 강력한 네트워킹 지원을 포함하고 있습니다. 실버라이트 2의 네트워킹은 REST, WS*/SOAP, POX, RSS, 표준 HTTP 서비스에 대한 호출을 숨깁니다. 또한 크로스 도메인 네트워크 접근도 지원합니다. (실버라이트 클라이언트가 웹 상에 있는 있는 리소스와 데이터에 바로 접근하는 것이 가능합니다.) 마지막으로 베타1은 내장 소켓 네크워킹도 지원합니다.
  • 강력한 베이스 클래스 라이브러리 : 실버라이트 2는 강력한 .NET 베이스 클래스 라이브러리의 기능(컬렉션, IO, 제네릭, 쓰레딩, 전역화, XML, 로컬 저장소 등)을 포함하고 있습니다. 또한 .NET 코드와 HTML DOM/자바스크립트 간의 통합을 가능하게 하는 풍부한 API도 포함하고 있습니다. 그리고 로컬 데이터 캐싱과 저장소 지원과 더불어 LINQ와 LINQ to XML 라이브러리 지원(이는 데이터의 변형과 질의를 용이하게 합니다.)도 포함하고 있습니다. 실버라이트의 .NET API는 완전한 .NET 프레임웍의 호환가능한 하위 집합입니다.

.NET 프레임웍이 설치되어 있지 않아도 실버라이트 2는 실행됩니다. 실버라이트 설치 다운로드는 위에서 든 모든 기능이 필요로 하는 것을 포함하고 있습니다. (잠시 후 좀 더 자세히 말씀드리겠습니다.)

실버라이트 2 베타1 릴리즈의 크기는 4.3MB이며, 설치에는 4-10초 정도가 걸립니다. 실버라이트 2가 설치되고 나면, 선택한 브라우저(IE, 파이어폭스, 사파리 등)에서 실버라이트 애플리케이션이 자동으로 실행됩니다.

실버라이트 2 실전 : 간단한 Digg 클라이언트

실버라이트 이해에 도움을 드리기 위해서, 저는 실버라이트 애플리케이션을 만들고 거기에 사용된 여러가지 프로그래밍 개념들(컨트롤, 레이아웃 관리, 네트워킹, 데이터 바인딩, 스타일, 사용자 정의 컨트롤, 템플릿 등)을 단계별로 설명하는 튜토리얼 시리즈를 작성하면 재미있겠다는 생각을 하였습니다. 또한 이 애플리케이션을 브라우저 밖으로 꺼내어 WPF와 완전한 .NET 프레임웍을 사용하는 데스크탑 애플리케이션으로 이식하는 작업에 관한 튜토리얼 포스트도 작성하였습니다.

아래는 제가 작성한 애플리케이션의 스크린샷들입니다. 이 애플리케이션은 유명한 Digg.com 사이트에 대한 간단한 검색 프론트 엔드입니다. 사용자가 검색어를 입력하면 해당하는 Digg 스토리로 이동하는 기능을 합니다.

이 애플리케이션의 모든 UI는 실버라이트의 WPF 프레임웍을 이용하여 작성하였습니다. 이 애플리케이션은 실버라이트 네트워킹 스택을 사용하며, Digg REST API에 직접 질의하기 위해 크로스 도메인 접근 지원을 사용합니다. 또한 LINQ와 LINQ to XML를 사용하여 질의를 하고 반환된 데이터를 DiggStory 객체로 변형합니다. UI는 이 DiggStory 객체에 데이터 바인딩되어 있습니다.

이 애플리케이션은 마스터/디테일 데이터 모델을 지원하므로, 사용자가 검색 리스트에서 스토리를 선택하면 상세 폼이 나타납니다. 상세 폼에서 사용자는 Digg 아티클로 바로 이동하거나, 상세 폼을 닫고 다른 상세 폼을 열 수도 있습니다.

전체 애플리케이션은 약 35줄의 C# 코드와 75줄의 XAML 페이지/사용자 정의 컨트롤 마크업을 사용하여 구현되었습니다. 모든 컨트롤과 라이브러리는 실버라이트에 내장된 것만 사용하였습니다.

제가 작성한 실버라이트 튜토리얼

아래 8개의 튜토리얼은 Digg 애플리케이션을 작성하는 방법을 설명합니다.

파트 1: 실버라이트 2와 VS 2008을 사용하여 "Hello World" 만들기 (한국어판)

파트 2: 레이아웃 관리 사용하기 (한국어판)

파트 3: 네트워킹을 사용하여 데이터를 얻어 DataGrid를 채우기 (한국어판)

파트 4: 스타일 요소를 사용하여 룩앤필을 감싸기 (한국어판)

파트 5: ListBox와 데이터바인딩을 사용하여 리스트 데이터를 표시하기 (한국어판)

파트 6: 사용자 정의 컨트롤을 사용하여 마스터/디테일 시나리오 구현하기 (한국어판)

파트 7: 템플릿을 사용하여 컨트롤의 룩앤필을 커스터마이징하기 (한국어판)

파트 8: WPF를 사용하여 Digg 데스크탑 버전 작성하기 (한국어판)

위 튜토리얼들은 순서대로 읽도록 구성되어 있으며, Digg 애플리케이션을 구축하는 방법을 단계별로(VS 2008에서 파일-> 새 프로젝트를 실행하는 것 부터 시작합니다.) 따라할 수 있도록 되어 있습니다. 각 튜토리얼은 하나 또는 그 이상의 프로그래밍 개념을 설명합니다.

WPF를 사용해 본 적이 있는 분에게는 제가 설명하는 UI 개념이 지루할지 모르겠습니다만, 아직 WPF를 사용해 보지 않은 분에게는 이 튜토리얼들이 WPF의 기초적인 프로그래밍 개념에 대한 유용한 소개가 되고, 향후 베타1이 출시되었을 때 VS 2008을 사용하여 실버라이트 2 애플리케이션 개발을 시작하는 데 좋은 길잡이가 되었으면 합니다.

베타1의 다운로드가 가능해지면 좀 더 상세한 포스트를 쓰도록 하겠습니다. 그리고 Digg 애플리케이션의 최종 버전(코드 + VS 2008에서 불러오고 편집할 수 있는 프로젝트 파일)도 제 사이트에 올리도록 하겠습니다.

   

도움이 되길 바라며,

스캇

: