Share via


Windows Presentation Foundation XAML 브라우저 응용 프로그램 개요

업데이트: 2008년 7월

XBAP(XAML 브라우저 응용 프로그램)에는 웹 응용 프로그램과 리치 클라이언트 응용 프로그램의 장점이 결합되어 있습니다. XBAP는 웹 응용 프로그램과 마찬가지로 웹 서버에 게시하여 Internet Explorer에서 시작할 수 있습니다. 또한 XBAP는 리치 클라이언트 응용 프로그램과 마찬가지로 WPF의 기능을 이용할 수 있습니다. XBAP 개발은 리치 클라이언트 개발과 거의 같습니다. 이 항목에서는 개론적인 수준에서 간단히 XBAP 개발에 대해 소개하고 XBAP 개발과 표준 리치 클라이언트 개발의 다른 점에 대해 설명합니다.

이 항목에는 다음 단원이 포함되어 있습니다.

  • XBAP(XAML 브라우저 응용 프로그램) 구현
  • XAML 브라우저 응용 프로그램 배포
  • XBAP 보안 고려 사항
  • XBAP 시작 시간 성능 고려 사항

XBAP(XAML 브라우저 응용 프로그램) 구현

새 XBAP 프로젝트를 만드는 가장 간단한 방법은 Microsoft Visual Studio를 사용하는 것입니다.

  1. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 클릭합니다.

  2. 새 프로젝트 대화 상자의 프로젝트 형식 창에서 Visual Basic 또는 Visual C#을 선택합니다. 템플릿 창에서 WPF 브라우저 응용 프로그램을 클릭합니다.

  3. 프로젝트 이름을 지정하고 확인을 클릭하여 새 프로젝트를 만듭니다.

WPF 브라우저 응용 프로그램 프로젝트 템플릿은 다음을 포함하는 XBAP 응용 프로그램 프로젝트를 만듭니다.

  • 응용 프로그램 정의, Application.xaml

  • 페이지, Page1.xaml

필요에 따라 이러한 항목을 추가할 수 있습니다.

명령줄 컴파일을 사용하는 도구로 개발하려는 경우에는 WPF 응용 프로그램 만들기(WPF)를 참조하십시오.

XBAP를 실행하면 독립 실행형 창이 아니라 브라우저 창에서 실행됩니다. Visual Studio에서 XBAP를 디버깅하면 응용 프로그램이 인터넷 영역 권한으로 실행되므로 권한이 부족하면 보안 예외가 throw됩니다. 자세한 내용은 WPF 응용 프로그램 만들기(WPF)를 참조하십시오.

XAML 브라우저 응용 프로그램 배포

XBAP를 빌드하면 MSBuild(Microsoft Build Engine)에서 최소한 다음 세 파일이 생성됩니다.

  • 실행 파일. 컴파일된 코드가 들어 있으며 확장명이 .exe입니다.

  • 응용 프로그램 매니페스트. 이 파일에는 응용 프로그램과 관련된 메타데이터가 들어 있으며 확장명이 .manifest입니다.

  • 배포 매니페스트. 이 파일에는 ClickOnce가 응용 프로그램을 배포하기 위해 사용하는 정보가 들어 있으며 확장명이 .xbap입니다.

XBAP를 웹 서버(Microsoft IIS(인터넷 정보 서비스) 이상)에 게시합니다. 웹 서버에 .NET Framework을 설치할 필요는 없지만 WPF MIME(Multipurpose Internet Mail Extensions) 형식 및 파일 확장명을 등록해야 합니다. 자세한 내용은 방법: IIS 5.0 및 IIS 6.0을 구성하여 WPF 응용 프로그램 배포를 참조하십시오.

XBAP 배포를 준비하려면 .exe 파일과 관련 매니페스트를 웹 서버로 복사합니다. 웹 페이지에서 배포 매니페스트로 이동하는 하이퍼링크를 만듭니다. 사용자가 링크를 클릭하여 .xbap 파일로 이동하면 ClickOnce에서 자동으로 응용 프로그램을 다운로드하고 시작하는 과정을 처리합니다.

캐시된 XBAP 지우기

XBAP를 다시 빌드하고 시작하면 이전 버전의 XBAP가 시작되는 경우가 있습니다. 예를 들어 XBAP 어셈블리 버전 번호가 정적이고 명령줄에서 XBAP를 시작하면 이러한 상황이 나타날 수 있습니다. 이 경우에는 캐시된 버전(이전에 시작한 버전)과 새 버전의 버전 번호가 동일하기 때문에 새 버전의 XBAP가 다운로드되지 않고 캐시된 버전이 로드됩니다.

이러한 상황에서는 명령 프롬프트에서 Mage 명령(Windows SDK와 함께 설치됨)을 사용하여 캐시된 버전을 제거할 수 있습니다.

Mage.exe -cc

이렇게 하면 캐시된 버전을 찾을 수 없기 때문에 최신 버전의 XBAP가 시작됩니다. Visual Studio 2005를 사용하여 디버깅하는 경우 F5 키를 누르면 최신 버전의 XBAP가 시작됩니다.

일반적으로 각 빌드에서 어셈블리 버전 번호를 업데이트해야 합니다.

XBAP 보안 고려 사항

XBAP는 인터넷 영역 권한 집합으로 제한되는 부분 신뢰 보안 샌드박스 내에서 실행되어야 합니다. 따라서 인터넷 영역에서 지원되는 WPF 요소의 하위 집합을 지원하도록 구현해야 합니다(Windows Presentation Foundation 보안 참조).

WebBrowser ActiveX 컨트롤(WebOC)을 Internet Explorer 브라우저 프로세스에서 호스팅하는 경우에는 다음과 같은 보안 제한 사항이 적용됩니다.

  • Internet Explorer에서는 HTML로 호스팅되는 ActiveX 컨트롤 및 DHML alert 함수의 모달 대화 상자를 차단하고 활성 탭의 스레드 이외의 스레드에서 생성된 대화 상자를 표시하지 않습니다.

  • WebOC 컨트롤을 호스팅할 경우 HTML 페이지에 XBAP가 도메인 경계를 넘어서 로드되면 예외가 발생합니다.

XBAP 시작 시간 성능 고려 사항

시작 시간은 XBAP 성능의 중요한 부분입니다. 로드되는 첫 번째 WPF 응용 프로그램이 XBAP이면 콜드 시작 시간이 10초 이상 걸릴 수 있습니다. 그 이유는 WPF에서 렌더링하는 진행률 페이지를 표시하기 위해 CLR과 WPF 모두 콜드 시작되어야 하기 때문입니다.

Visual Studio 2008 SP1부터는 배포 초기 단계에 비관리 진행률 페이지를 표시하므로 XBAP 콜드 시작 시간이 단축됩니다. 비관리 진행률 페이지는 네이티브 호스팅 코드를 통해 표시되어 HTML에 렌더링되기 때문에 응용 프로그램의 시작과 거의 동시에 표시됩니다.

또한 ClickOnce 다운로드 시퀀스의 동시성이 향상되어 시작 시간이 10%까지 향상되었습니다. ClickOnce가 매니페스트를 다운로드하고 유효성을 검사하면 응용 프로그램 다운로드가 시작되고 진행률 표시줄 업데이트가 시작됩니다.

변경 기록

날짜

변경 내용

이유

2008년 7월

XBAP 시작 시간 성능에 대한 단원이 추가되었습니다.

SP1 기능 변경