SilverlightOverview&Silverlight2.0
김도영(동영상본부 동영상개발팀)
1. 서론
★ 요즘 RIA형 서비스가 증가하면서 사용자 요구사항도 증가하고 있으며 이를 위한 플랫폼도 쏟아지고 있습니다.
★ 대표적인 플랫폼으로 Adobe사의 Flesh, Flex, Air 등이 시장에 많은 부분을 차지하고 있습니다.
★ 저는 MS사에서 2005년부터 개발하고 작년부터 본격 오픈을 시작한 Silverlight에 대해 간략한 소개를 드릴까합니다.
2 What's Silverlight?
★ 필자에게 Silverlight는 무엇입니까? 라고 질문을 하시는 분이 있다면 가장 간단하게 RIA를 개발할 수 있는 환경을 제공하는 Microsoft사(이하 MS사)의 RIA 플랫폼이라고 답변을 드리고 싶습니다.
2-1 MS사의 설명
★ Microsoft Silverlight는 웹에서 사용할 차세대 .NET 기반 미디어 환경 및 풍부한 대화형 애플리케이션을 제공하기 위한 다중 브라우저, 다중 플랫폼 플러그인입니다.
★ 원문 : http://www.microsoft.com/korea/msdn/asp.net/bb187358.aspx
3. RIA
★ RIA는 Rich Internet Application의 약자로 2002년 MacroMedia사에서 처음 소개 되었으며 HTML 표현의 한계를 극복하고 웹 한 페이지 내에서 동작 될 수 있는 웹 어플리케이션입니다.
3-1 RIA의 장점
★ 네트워크 효율성 증가
☆ Ajax의 기본개념인 전체 페이지가 아닌 갱신이 필요한 데이터만 서버에 요청하여 페이지를 변경하기 때문에 네트워크 효율성 증가 및 서버의 기능을 향상을 기대할 수 있습니다.
★ 인터페이스 향상
☆ HTML, Javascript에서는 표현이 어려운 인터페이스 및 애니메이션도 쉽게 개발 및 표현이 가능합니다.
3-2 RIA의 단점
★ 사용자 경험의 재고
☆ RIA는 체크 박스를 둥글게 만든다거나 버튼을 세모로도 표현이 가능하기 때문에 사용자는 기존의 사용자경험이 무시되고 다른형식의 어플리케이션에 대한 경험을 통해 RIA에 적응해야 하는 상황이 발생할 수도 있습니다ㅏ.
★ 검색의 제한
☆ Silverlight의 경우 XAML(자믈 or 재믈)이라고 불리는 XML 형태의 파일 또는 DLL로 구현되는 RIA용 언어는 검색엔진에 노출되기 힘든 단점을 가지고 있습니다.
4 Silverlight의 시작 코드명 WPF/E(Windows Presentation Foundation/Everywhere)
★ '''05년''' .Net Framework 3.0버전이 개발되면서 WPF(Windows Presentation Foundation)라는 새로운 기능이 공개 되었고 WPF의 기능을 웹상에서 표현 가능하게 하자는 최초 의도로 개발되었습니다.
4-1 WPF의 대표기능
★ WPF는 금번 TechNote의 주제와는 벗어나지만 최초 WPF/E의 코드명으로 개발된 Silverlight의 변화에 쉽게 접근하기 위해 간단한 기능만 다루도록 하겠습니다.
4-1-1 백터표현방식의 그래픽표현
★ WPF에서는 기존의 점을 이용한 표현방식에서 탈피하여 선의 단위로 표현가능한 벡터 표현방식을 지원합니다.
★ WPF라는 단일 기술을 통해 광범위한 기능을 제공하면 최신 사용자 인터페이스를 훨씬 쉽게 구현할 수 있다는 장점이 있습니다
★ 아래의 그림은 벡터표현방식으로 구성된 WPF App의 화면입니다.
5 Silverlight ver 1.0
★ 2007년 4월 Silverlight 1.0 베타버전 오픈
★ 당시에는 런타임 사이즈가 1.5MB로 타 MS사이트 설치 런타임 사이즈에 비해 많은 경량화를 이룬 버전이라고 할 수 있습니다.
★ 1.0버전은 2007년 11월 정식버전 오픈
5-1 1.0 버전의 특징
5-1-1- Javascript
★ Silverlight의 최초버전은 Javascript로만 동작하도록 되어 배포되었습니다.
★ 아래 소스코드는 Silverlight 1.0 버전을 포함한 웹페이지에서 Silverlight를 로딩할 수 있도록 해주는 코드입니다.
★ (아래 js파일은 Visual Studio에서 Silverlight 프로젝트를 생성할 때 자동포함되는 파일입니다.)
{{{
<script type="text/javascript" src="Silverlight.js"></script>
<script type="text/javascript" src="createSilverlight.js"></script>
}}}
5-1-2 XAML
★ 앞서 잠시 언급되었던 XAML(자믈 또는 재믈 코드라 불림)코드가 1.0 버전부터 등장하게 되며
★ 실제 Microsoft사의 사이트 내에서 사용되기 시작한 버전이기도 합니다.
★ XAML코드는 아래와 같이 흔히 볼수 있는 Html 코드와 비슷하며 XAM형태로 구성되어 있어 가독성과 개발이 쉽습니다.
★ 이러한 형태의 코드는 Adobe사의 Flex의 코드와도 매우 비슷합니다.
5-2 1.0 버전에서 발견된 단점
★ 1.0버전은 런타임 사이즈를 경량화 하여 1.5MB대로 낮추었지만 실제 개발시에 제공되는 Namespace나 컨트롤은 현저하게 부족한 상태로 오픈이 되었습니다.
★ 당시에는 이벤트 핸들링 또는 서비스 호출등에 Javascript를 통해야 했기때문에 생산성도 떨어졌습니다.
6 Silverlight ver 1.1 (Alpha Refresh)
★ 2007년 5월 Silverlight 1.1 알파버전 오픈
★ Silverlight 1.0 베타 버전이 출시되고 1달 후 1.1알파 버전이 출시되어 많은 사람의 혼란을 초래한 버전이기도 했습니다.
★ 1.0버전은 2007년 9월 1.1 Alpha Refresh 버전 오픈
6-1 1.1 버전의 특징
6-1-1 CLR / DRL 추가
★ 기존의 1.0 Beta버전의 기능 포함
★ Silverlight 1.1 Alpha 에서는 MS사 .Net 런타임 언어인 CLR기능이 추가되어 일부 .Net의 기능을 사용할 수 있수 있습니다.
★ 루비, 파이선 등의 언어를 사용하여 개발이 가능하도록 DLR(Dynamic Language Runtime)을 지원하였습니다.
6-1-2 미디어 기능 강화 및 실제 서비스 등장
★ Flash가 대부분의 웹 동영상 플래이어 시장을 독식하다 시피하는 상황에서 Silverlight 1.1버전의 미디어 기능 제공은 새로운 경쟁구도를 만드는 계기가 되었습니다.
★ 1.1버전이 출시 되면서부터 실제 서비스가 등장하기도 했습니다. (SBS, M-net, Nexon 등)
★ 아래는 실제로 서비스되고 있는 SBS의 NView 서비스 링크 입니다.
[ http://news.sbs.co.kr/nview/nview_index.jsp?news_id=N1000396923 ]
6-2 1.1 버전에서 발견된 단점
★ Silverlight 1.1버전에서 .NET의 런타임 언어를 지원하면서 .Net Framework가 설치되어야 실행되는 단점이 있습니다.
7 Silverlight ver 2.0 베타
★ 2008년 3월 6일 Silverlight 2.0 Beta 공개
★ Silverlight가 공개된지 약 1년. 그간 공개된 버전은 1.0 Beta, 1.1 Alpha, 1.1 Alpha Refresh, 1.0 정식(오픈날짜 순) 입니다..
★ 그러나 지난 3월초 1.1정식이 아닌 2.0이 공개되었습니다. 국내 많은 Silverlight개발자 및 관심을 가졌던 사람들은 당황하였습니다.
7-1 왜 갑자기 2.0 인가?
★ 최초 1.0버전과 1.1버전을 동시 개발중이던 MS에서는 1.0을 정식 오픈하고 차후 버전이라 생각한 1.1버전을 개발중에 1.0버전에 비해서는 너무 많은 변화를 시도했기 때문에 1.1이 아닌 2.0으로 출시 했다는 애기입니다.
7-2 무엇이 변하였는가?
★ 처음부터 읽으신 분들은 Silverlight의 코드명을 기억하실 것입니다. '''WPF/E!!''' 그러나 1.0, 1.1버전 설명에서는 코드명과 무관 하다는것을 느낄수가 있는데요. 2.0 Beta가 공개되면서 원래 코드명과의 컨셉이 비슷해지기 시작했습니다.
7-2-1 런타임의 변화
★ 1.0 버전은 Javascript에 의해 구동되었으며 1.1 버전은 CLR/DRL에 의해 구동되었었습니다.
★ 2.0에서는 .Net Framework를 필요기능만 추출하여 간소화하면서 Silverlight용 Framework를 탑재 하였습니다.
★ 기존의 1.0버전의 1.5MB의 용량보다는 많고 .Net Framework 3.0에 종속되었다는 1.1버전(4.5MB)보다는 경량화된 4.3MB으로 최초 공개 되었습니다.
★ Silverlight 2.0 Runtime 설치 [ http://www.microsoft.com/silverlight/resources/installationFiles.aspx?v=2.0 ]
7-2-2 WPF UI 프레임워크 지원
★ Silverlight 2에서는 보다 쉽게 RIA형 Application을 만들수 있도록 WPF기반의 자체 UI Framework를 포함합니다.
★ 강력한 그래픽표현, 애니메이션 엔진의 제공하며 컨트롤, 레이아웃 도구, Data Binding, 스타일 등 상위레벨의 UI기능을 제공합니다.
★ 또한, .Net Framework 3.0이상버전의 WPF UI 프레임워크의 일부기능과 호환 가능합니다. (Silverlight 자체 Framework에 의해)
7-2-3 풍부한 컨트롤 제공
★ 1.0버전은 정식 오픈을 했지만 컨트롤을 10개미만으로 제공하며 심지어 버튼기능도 없어 개발자가 직접 만들어 써야 하였습니다.
★ 이런 불편함을 해소하기 위해 2.0버전에서는 WPF의 대부분 컨트롤을 지원합니다. (아래 표 참고)
1.1 (Alpha) | 1.1 (planned = 2.0) | WPF | |
Button | Sample | Yes | Yes |
TextBox | No | Yes | Yes |
Scrollbar | Sample | Yes | Yes |
Slider | Sample | Yes | Yes |
ListBox | Sample | Yes | Yes |
CheckBox | No | Yes | Yes |
RadioButton | No | Yes | Yes |
ComboBox | No | Yes | Yes |
TreeView | No | No | Yes |
RichTextBox | No | No | Yes |
DataGrid | No | No | 3rd party |
UserControl | Yes | Yes | Yes |
Canvas | Yes | Yes | Yes |
Grid | No | Yes | Yes |
StackPanel | No | Yes | Yes |
ViewBox | No | Yes | Yes |
Mouse Event | No | Yes | Yes |
Keyboard Event | Partial | Yes | Yes |
Resource dictionary | Partial | Yes | Yes |
Data binding | No | Yes | Yes |
Styling | No | Yes | Yes |
3D vector graphics | No | No | Yes |
GPU 하드웨어 가속 | No | No | Yes |
Out of browser | No | No | Yes |
Cross 플랫폼 | Yes | Yes | No |