본문 바로가기

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

[연재 02] XAML Browser Application 만들기

1.2 개발 환경 세팅하기

WPF 애플리케이션을 작성하기 위해서는 미리 설치되어야 하는 것들이 있다.

.NET 3.0 Runtime Components,
Windows SDK
Visual Studio 2005 Extensions
Microsoft Visual Studio Code Name “Orcas” Community Technology Preview - Development Tools for .NET Framework 3.0®

이 컴포넌트들은 여러 버전이 있다. 자신의 컴퓨터에 설치된 OS에 따라 어떤 버전을 설치해야 하는지는 다음 링크에서 정리해 놓고 있다. “Orcas” 개발툴에는 WPF 폼 디자이너(코드명 “Cider”)을 포함하고 있다. 아직 제한적이긴 하지만 .NET Framework 3.0 애플리케이션 개발을 편하게 할 수 있다.

http://blogs.msdn.com/tomarcher/archive/2006/07/17/668572.aspx

현재 달봉이의 노트북은 Windows Server 2003 SP1여서 September CTP 버전의 .NET 3.0 Runtime Componets와 Windows SDK를 설치하고 있다.

2. XAML Browser Application 만들기

2.1 애플리케이션 코딩하기

WPF 애플리케이션을 코딩하는 방식에는 두 가지가 있다.
▶  XAML과 코드 비하인드 파일 사용하기
- ASP.NET의 ASPX 방식과 유사하다. XAML을 사용하여 UI(User Interface)를 디자인하고 사용자의 이벤트를 핸들링하기 위해서 코드 비하인드 페이지에서 절차 코드를 사용한다.
▶  절차 코드만 사용하기
- 경우에 따라서는 절차 코드만을 사용해서 애플리케이션을 작성할 수도 있다. 사용자 정의의 컨트롤 라이브러리를 작성할 때 그런 경우가 있을 수 있다.
또한 부분적으로 XAML과 절차 코드를 혼합해서 사용할 수도 있다.
여기서는 Visual Studio 2005로 XML과 코드 비하인드 파일을 사용하는 방식으로 간단한 “Hello world” XBAP 애플리케이션을 만들겠다. 앞의 개발환경 세팅에서 “Orcas”까지 제대로 설치가 되어 있다면 다음 절차를 따라 할 수 있다.

2.1.1 프로젝트 생성하기

프로젝트를 우선 하나 생성하자. 다음 그림처럼 프로젝트 형식을 .NET Framework 3.0으로 선택하고, 템플릿에서 XAML Browser Application(WPF)를 선택한다. 그리고 “Demo”라는 이름으로 적당한 위치에 프로젝트를 하나 생성한다.
1213728542

2.1.2 WPF 폼에 컨트롤 올리기

다음은 프로젝트를 생성한 후, 기본적으로 추가된 Page1.xaml 페이지를 더블클릭한 모습이다.
1409779226

WPF 폼 디자이너에 Label 컨트롤을 하나 끌어다 놓자. 그리고 컨트롤에 “Hello World”문자열를 출력하자. 디자이너의 하단에서 직접 XAML 태그를 수정해도 되고 오른쪽의 속성창에서 편집을 해도 된다.
1143163038

간단한 애플리케이션이긴 하지만 이제 이 녀석을 빌드하자.

2.2 “XAML” 기반의 애플리케이션 빌드하기

XAML 기반의 페이지는 빌드를 하게 되면 XAML 파일은 partial 클래스로 파싱된다. 그리고 XAML파일의 UI 요소 태그 예를 들면 XAML파일의 Button 태그는 클래스의 멤버 변수로 컨버전된다.

.xbap 확장자를 갖는 파일은 .NET 2.0의 ClickOnce 배포에서 사용되었던 .application의 역할을 한다고 볼 수 있다. 애플리케이션과 배포 매너페스트 파일에 대해서는 지난 포스트를 참조하길 바란다.

애플리케이션을 빌드하는 방법은 2가지가 있다.
Visual Studio 2005 사용하기 : 아주 편리한 방법으로서 프로젝트 파일 셋업과 디버깅등에 편리하다.
MSBuild.exe 사용하기 : 마이크로소프트의 빌드 엔진(MsBuild)를 이용하는 방법으로서, 커맨드 라인으로 빌드하기 위해서 빌드 프로세스를 지정하는 프로젝트 파일을 생성해야 한다.

Visual Studio 2005가 생성한 프로젝트를 빌드하는 MSBuild를 사용하는 것도 가능하다. 두 방법 모두동일한 포맷의 프로젝트 파일을 사용하기 때문이다. Visual Studio 2005가 생성한 프로젝트 파일은 Visual Studio 2005 내부에서 사용하는 추가적인 요소가 있기는 하지만 MSBuild는 그것들을 무시한다. 수동으로 만든 프로젝트를 빌드하는데 Visual Studio 2005를 사용할 수도 있지만 대신에 확장자는 .csproj 또는 .vbproj여야 한다.

XBAP 애플리케이션을 빌드하게 되면 관련파일이 3개 생성된다.

exe 확장자 : 실행 파일
.exe.manifest : 애플리케이션 매너페스트 파일
.xbap : 배포 매너페이스 파일(<--  이전의 .application)

1356462408

2.3 게시하기

1292692586

게시 후의 IIS 모습을 보면 다음과 같다.

1085374650

2.3.1 브라우저로 애플리케이션 실행하기

브라우저를 이용해서 “Demo.xbap" 파일을 호출하면 다음과 같은 결과를 볼 수 있다.
1014348136

앞, 뒤 네비게이션 컨트롤은 자동으로 생성된다. 브라우저에 임베딩되긴 하지만 애플리케이션 파일은 NTD처럼 Assembly/down 폴더로 내려가는 것이아니다.
1063087605

대신에 클라이언트 머신의 ClickOnce Store로 내려간다.
1240606219

3. 결론

지금까지의 개발 절차를 보면 최종 애플리케이션이 브라우저를 이용해서 실행되긴 하지만 .NET2.0에서의 ClickOnce 애플리케이션을 개발할때와 동일하다는 것을 알 수 있다. 배포 방식도 NTD를 이용하지 않고 ClickOnce를 사용한다.