본문 바로가기

Development

Silverlight Architecture


Silverlight는 사용자에게 리치하고 상호작용이 가능한 웹과 미디어 콘텐츠를 제공하는데 강력한 도구이다. 뿐만 아니라 이동형, 크로스 플랫폼, 네트워크에 연결된 어플리케이션을 위한 강력한 플랫폼의 역할을 수행할 수 있다. 이미 Adobe의 Flash와 Flex가 시장을 선점하고 있지만 Silverlight가 가지는 그들만의 특징은 분명히 존재한다. 이에 앞서 RIA(Rich Interactive Application)을 위한 Silverlight의 아키텍처에 대해 살펴보도록 하자.

※ Silverlight 플랫폼
Silverlight 플랫폼은 전체 두 가지의 큰 파트와 추가로 인스톨러와 업데이트 컴포넌트로 구성된다.

컴포넌트
설명
Core 프리젠테이션 프레임워크 UI 와 사용자 입력, 사용자 상호작용(웹 어플리케이션에서의 사용을 위한 라이트웨이트 UI 컨트롤, 미디어 재생, DRM), 프리젠테이션 특징(벡터 그래픽, 텍스트, 애니메이션, 비트맵)을 가지고 있는 컴포넌트와 서비스. 또한 캔버스와 XAML에서 특정 레이아웃 표현을 Silverlight에서 하기 위한 DOM API를 포함한다.
Silverlight를 위한 .NET Framework 데이터 통합, 윈도우 컨트롤 확장, 네트워킹, BCL, 동적 언어 컴파일, CLR과 같은 컴포넌트와 라이브러리를 가지고 있는 .NET Framework의 부분 집합
인스톨러와 업데이터 사용자가 처음 어플리케이션을 설치하는데 도움을 주는 쉬운 프로세스를 가진 인스톨러와 업데이트 컨트롤. 이는 향후 쉽게 업데이트를 가능하게 지원한다.

Silverlight 아키텍처는 다음과 같다.


위에서 설명한 기본 컴포넌트들을 자세히 살펴보면 다음과 같다.

※ Core 프리젠테이션 프레임워크
특징 설명
입력 키보드, 마우스 및 기타 입력장치와 같은 하드웨어들의 입력 제어
UI 렌더링 벡터, 비트맵 그래픽, 애니메이션, 텍스트의 출력
미디어 .wmp, .mp3와 같은 다양한 형식의 오디오, 비디오 파일의 재생 및 관리
컨트롤 레이아웃 제공, 브라우저와 관련한 UI 컨트롤의 수정
DRM 미디어에 대한 DRM 기능 제공
XAML XAML을 위한 파서

※ Silverlight를 위한 .NET Framework
특징 설명
WPF 표준 웹 브라우저 컨트롤의 특징을 확장하는 리치 컨트롤의 제공. WPF는 도형, 문서, 미디어, 애니메이션 및 기타 여러 가지들을 포함
Data LINQ(Language-Integrated Query) 지원, XML을 위한 LINQ인 XLinq 지원, 이기종의 소스로부터의 데이터를 가지고 통합과 작업을 위한 간단한 프로세스 지원, XML과 데이터를 위한 클래스 동기화 지원
BCL 문자제어, 정규식, 입출력, Reflection, 컬렉션, 글로벌화와 같은 기본적인 프로그래밍을 위한 .NET Framework 라이브러리 제공.
Networking 원격 서비스와 데이터로의 간단한 접속 지원. 브라우저 객체, HTTP Request와 Response, RSS 접속, 웹 서비스 확장 등을 지원
CLR 메모리 관리, 가비지 컬렉션, 형 변환 확인 및 예외 처리를 지원
DLR JavaScript, IronPython과 같은 스크립트 언어의 동적 컴파일과 실행 지원.

※ 추가적인 Silverlight 프로그래밍 특징
특징 설명
격리된 저장소 Silverlight 클라이언트로부터 서버 파일 시스템으로의 안전한 접근을 제공. 특정 사용자를 격리하여 로컬 저장소와 캐시를 가능하게 함.
비동기 프로그래밍 사용자 상호작용을 보다 자유롭게 하기 위해 배경 쓰레드에 의한 비동기 프로그래밍을 지원.
파일 관리 안전한 파일 열기 다이얼로그 박스 제공. 안전한 파일 업로드 작성 가능.
HTML 웹 페이지의 HTML DOM에서의 UI 요소를 직접 제어. 웹 개발자는 JavaScript를 직접 호출할 수도 있고, object, property, event, method에 직접 접근 가능.
JSON JavaScript로부터 ASP.NET 기반의 웹 서비스로 직접 호출 가능.
POX 서비스 간단한 XML 기반 웹 서비스 호출 가능.
XML 라이브러리 웹 서비스로부터 XML 데이터를 이용하여 간단히 작업할 수 있도록 XMLReader와 XMLWriter 클래스 지원.


출처 : Neovis