본문 바로가기

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

[연재 02] ClickOnce : Enjoy The Appearance 1

이번 포스트부터는 되도록이면 목차를 자세히 잡더라도 좀 짧게 할려고 한다. 포스트가 너무 길면 지쳐서 또는 질려서 끝까지 읽어보는데도 상당한 수고가 필요할 것이라는 생각에서다.

이번 포스트에서는 ClickOnce 배포를 위해서 Visual Studio.NET 2005에서 지원해주는 내용을 "보이는대로 하라는 대로" 따라 하면서 즐기는 시간이다. 이름하여 "Enjoy The Appearance"이다. 다음 포스트도 마찬가지일 것이다. 그런 다음 그 보이는 이면을 이해하는 시간을 갖게 될 것이다. 이름하여 "Look Into The Internals" 시간을 갖겠다.

1. ClickOnce 작업 절차 개요

애플리케이션이 ClickOnce 배포 방식에 의해서 최종적으로 사용자 PC까지 다운되기 까지의 절차를 그림을 중심으로 설명한다.
1057652074

ClickOnce 배포 절차

간단히 설명하자면 우선 관리자(또는 개발자)가 개발한 애플리케이션을 서버로 게시하면 사용자는 게시한 애플리케이션을 HTTP 요청을 통해서 자동 다운받게 된다.

2. 게시

애플리케이션을 서버로 게시하는데 사용할 수 있는 툴로는 Visual Studio.NET 2005을 사용할 수도 있고, 그리고 MageUI.exe툴이나 mage.exe를 사용할 수도 있다. MageUI.exe 툴은 UI를 갖는 툴은 반면 mage.exe는 UI가 없는 커맨드 툴이다. .NET SDK와 함께 제공되는 명령창에서 mageUI.exe을 실행시켜 보면 다음과 같은 UI 툴이 실행된다. 
1152156840

mageUI.exe 실행모습 예

mageUI.exe를 통해서도 그림처럼 애플리케이션 메너페스트(.exe.manifest)와 애플리케이션 메너페스트(.application)을 직접 구성해서 만들 수도 있다. mage.exe를 사용하면 게시 툴을 직접 제작할 수도 있을 것이다. 여기서는 Visual Studio.NET 2005에서 제공하는 툴을 사용할 것이다.

1) 우선 그림처럼 ClickOnce 배포를 이용해서 게시할 EXE 프로젝트를 필요한 모든 참조들을추가해서 구성시켜 놓는다.
1004920412

ClickOnce 배포용 EXE 프로젝트 구성 예제

2. 게시

Visual Studio.NET 2005는 ClickOnce 게시를 할 수 있도록 하는 마법사를 포함하고 있다.

프로젝트 선택->빌드 메뉴->게시 선택
프로젝트 오른쪽 클릭->게시...선택

이렇게 게시 메뉴를 선택하면 다음과 같은 마법사가 실행된다.
1196100945

게시 마법사 창

애플리케이션을 게시할 서버의 경로를 입력한다. 서버의 경로로는 웹 서버 경로뿐만 아니라 파일 공유 경로, FTP 경로도 사용할 수 있다. 다음을 클릭한다.
1396373253

애플리케이션 타입 선택

이 화면은 애플리케이션을 온라인용으로만 사용할지 또는 온/오프라인용으로 사용할지에 대한 선택을 하는 화면이다. 온라인 전용으로 선택하면 항상 진입점 프로그램 EXE가 서버로부터 다운되어 시작한다. 따라서 항상 클라이언트 PC는 네트워크가 연결된 상태이어야 한다. 반면에 온/오프라인용의 애플리케이션은 클라이언트 PC에 설치되어 “프로그램 추가/제거”에 등록이 된다. 그래서 “시작” 메뉴를 통해서도 애플리케이션을 실행시킬 수 있게 된다. 마침 버튼을 클릭하면 모든 게시가 완료된다. 게시가 완료된 후의 게시 경로의 디렉토리는 다음과 비슷한 모습일 것이다.
1375144674

게시 완료 후의 디렉토리 모습

게시를 완료하면 그림처럼 publish.htm을 자동 생성해준다. publish.htm 파일은 단지 Visual Studio.NET이 편의를 위해 제공하는 페이지이다. ClickOnce 기술적인관점에서는  .application 확장자의 파일이나 기타 파일이 더 중요하다. 이런 파일에 대해서는 뒤의 고급 단계에서 다루기로 한다. Visual Studio.NET은 게시를 완료하면 자동으로 publish.htm을 호출해 준다.
1149599443

기본적으로 제공되는 웹 페이지 실행 모습

이 페이지의 실행 버튼을 클릭한다. 만약 게시하는 동안 디폴트 옵션만 선택했다면 보안 경고 창이 뜰 것이다.
1161149074

보안 경고 창

ClickOnce 애플리케이션은 기본적으로 게시자가 누구인지를 확인다. 게시자를 밝히기 위해서 디지털 사인을 필요로 하는데, 이 창은 게시자의 디지털 사인이 없다는 내용이다. 무시하고 실행을 클릭하면 게시된 애플리케이션의 모든 파일이 클라이언트 PC에 캐시되고 나서 애플리케이션이 실행된다.
1072911848

EXE 애플리케이션 최종 실행 모습

3. 필요 조건

ClickOnce 애플리케이션이 구동되기 위해서는 클라이언트 PC에 반드시 .NET 프레임워크 2.0이 설치 되어 있어야 한다. 만약 .NET V2.0이 설치되어 있지 않은 클라이언트 PC에는 Visual Studio.NET에 내장되어 있는 부트스트래퍼 기능을 이용해서 쉽게 배포할 수 있다. 이것에 대해서는 뒤에 다룬다.

서버측에서는 반드시 .NET v2.0이 설치될 필요는 없다. 단지 웹서버를 사용한다면 서버가 HTTP1.1을 지원하거나 또는 UNC경로나 FTP경로로 접근할 수 있는 파일 서버면 된다. 여기서는 다른 말이 없으면 웹서버로 IIS 6.0을 사용하는 것으로 한다.



참조 문서

ClickOnce Deployment Technology - Peter Bromberg
http://www.wise.com/Library/ClickOnce.pdf
ClickOnce : Bringing Ease and Reliability to SmartClient Deployment
http://www.code-magazine.com/article.aspx?quickid=0601041&page=1
msdn
Deploying applications
http://msdn2.microsoft.com/en-us/library/6hbb4k3e(VS.80).aspx