본문 바로가기

IT 살이/04. 기술 - 프로그래밍

09 XAML Browser Applications

이 포스트는 MSDN 메거진에 실린 아티클을 번역한 글의 일부이다.

NavigationWindow, Page,
그리고 Hyperlink는 독립형 애플리케이션에서 브라우저 스타일의 사용자 경험을 제공해 줄 수 있는 좋은 방법이다. 비록  즐겨찾기, 브라우징 탭과 같은 장식용 기능들을 가지고 있지는 않지만 NavigationWindow는 어떤 의미에서는 하나의 브라우저이다. 많은 사용자들이 브라우저에 익숙해져 있기 때문에 브라우저와 같은 기능들 또는 브라우저와 통합될 수 있는 애플리케이션에 좀 더 편안함을 느끼게 될 것이다. 만약 애플리케이션이 브라우저의 호스팅을 받고 하이퍼링크가 기반이 되는 환경을 제공받을 수 있다면 그곳이 바로 WPF XAML 애플리케이션(XBAP)이 가야 할 방향일 것이다.

예제 애플리케이션의 XBAP 버전을 만들기 위해서는 Visual Studio 2005에서 새로운 타입의 .NET Framework 3.0 웹 브라우저 애플리케이션 프로젝트를 생성해야 한다. 그리고는 NavigationWindow 버전의 애플리케이션에 있는 파일들을 복사한다. 애플리케이션 정의의 파일(App.xaml)은 제외한다. 이렇게 만들어진 애플리케이션은 그림에서처럼 IE에서 구동된다.

1200722673
그림 9 IE에서 호스팅되는 App

XBAP 애플리케이션은 웹 서버로 바로 게시되어서 인터넷 또는 인트라넷에서 바로 구동될 수 있다. 이것은 .NET Framework 3.0에 포함된 ClickOnce 배포 방식을 통해서 가능하게 되었다. ClickOnce를 이용하기 위해서, MSBuild는 사용자가 최종적으로 구동시킬 수 있는 EXE 실행 파일뿐만 아니라 두개의 추가적인 매너페스트 파일도 만들어낸다. 이 두 파일은 ClickOnce EXE 실행파일을 다운하고 구동시키는데 필요한 내용을 담고 있다. 이 중의 하나는 애플리케이션 매너페스트로 알려져 있고 .xbap 확장자를 갖는다. 이 파일은 사용자가 XBAP 애플리케이션을 구동하려고 할 때 실제로 호출해야 하는 파일이다. 구동 프로세스는 사용자 경험(user experience)에서 전혀 새롭지 않다-XBAP 애플리케이션을 브라우징하는 사용자 경험은 기존에 브라우저를 통해서 웹 애플리케이션을 브라우징하는 것과 유사하다.

XBAP 애플리케이션이 Internet으로 부터 구동되면 보안이 중요한 문제가 된다. 이런 이유로 해서 XBAP 애플리케이션은 클라이언트 PC에 인스톨되지 않는다. 그리고 XBAP 애플리케이션은 악의적인 코드로 부터 클라이언트 머신을 보호하기 위해서 애플리케이션의 보안 샌드 박스(security sand box)를 통해서 .NET 프레임워크의 Code Access Security( CAS)를 적용한다- XBAP 애플리케이션은 Internet Zone에 허락된 일만을 할 수 있다. 만약 XBAP Internet Zone 권한 밖의 일을 하려고 하면 예외가 발생하고 애플리케이션은 실행을 멈추게 된다.

Internet zone의 권한은 WPF의 능력에 상당한 제한을 가하게 된다. 예를 들어 SaveFileDialog 창을 이용한다든가 또는 레지스트리 접근 그리고 스크립트를 통한 HTML DOM(Document Object Model) 접근들을 할 수 없게 된다. XBAP 애플리케이션의 보안에 대한 이점을 얻기 위해서는 이렇게 많은 것들을 희생해야 하지만 여전히 WPF cool한 특징들을 즐길 수 있다(역주. 만약 애플리케이션을 신뢰할 수 있다면 완전한 WPF의 이점을 모두 이용할 수 있도록 설정할 수 있다)

'IT 살이 > 04. 기술 - 프로그래밍' 카테고리의 다른 글

10 Frame  (0) 2009.04.23
08 NavigationService  (0) 2009.04.23
07 NavigationWindow  (0) 2009.04.23