Visual Studio 2005의 새로운 기능 ClickOnce

ClickOnce와 관련된 MSDN 링크 입니다.

https://msdn.microsoft.com/smartclient/understanding/windowsforms/2.0/features/clickonce.aspx

https://msdn.microsoft.com/msdnmag/issues/04/05/clickonce/default.aspx

........

이번 새로운 VS 2005 와 .NET Framework 2.0 - whidbey - 에 새로 들어간 기능 중에 ClickOnce라는 기능이 있습니다.

이름이 암시하는것 처럼 이 ClickOnce 라는 기능은 windows based application 혹은 smart client application의 배포를 web application 배포 만큼 쉽게 하기 위한 기능입니다.

아시다 시피, 요즘 많은 회사들이 인트라넷용 application을 web based로 만들고 있습니다. 가장 큰 이유중에 하나가 바로 배포와 업데이트의 용이함입니다.

window application은 web application에 비해 좀 더 다양한 유저 사용 환경을 제공 할수 있습니다만, 새로운 버젼이나 버그 픽스가 나올때 마다 새 버젼을 배포 하는것이 여간 까다롭지 않습니다. 그에 비해 web application의 경우는 실제 application이 있는 서버들만 업데이트 하면 되기 때문에, 관리적 측면에서 훨씬 다루기가 용이 합니다.

바로 window application의 이 약점을 보완 하기 위해 새로 들어간 기능이 ClickOnce입니다.

간단하게 동작 원리를 설명하면, 일단 ClickOnce에는 2개의 모드가 있습니다. 첫번쨰는 launched mode이고 하나는 installed mode 입니다.

일단 launched mode에 대해 설명 하면, 이건 자바의 applet 처럼, 실행 되는 client machine을 전혀 건드리지 않는 경우 사용하는 모드 인데, 자바 처럼, 클릭 하면 바로 실행 됩니다.

installed mode의 경우, 실제 MSI - windows installer - 를 이용하는것 처럼, 새 시작 메뉴를 등록 한다던지, 파일을 세이브 한다던지 하는 일반적인 작업을 할 수 있습니다. 이 경우는 맨 처음 파일을 인스톨 하려 할 경우 사용자에게 프로그램을 인스톨 할 것인지 물어봅니다.

여기까지만 보면 별로 새로운게 없습니다. 중요한것은 그 다음입니다.

우선 launched mode인 경우는 무척 제한된 환경에서 실행 되기 때문에 security에 대한 걱정은 별로 안하셔도 됩니다. 실행된 프로그램은 사용자 컴퓨터를 전혀 못 건드린다고 봐도 과언이 아닙니다. 자바의 applet의 실행 환경에 대해 아시는 분은 거의 비슷하다고 보면 됩니다.

installed mode의 경우, 겉으로 보기에는 요즘 많이 보는 Active X나 그와 유사한 웹으로 부터 다운로드 받아 인스톨 하는 프로그램들과 비슷해 보일지 모르지만, 내부적으론 실제 실행 되는 환경이 다릅니다. Active X와 같은 경우, 일단 사용자가 허락하여 인스톨이 되면, 현 시스템의 모든 부분을 아무런 제약 없이 건드릴수 있습니다. 하지만 ClickOnce의 installed mode의 경우는, install mode 일지라도 지극히 제한적인 부분에 대해서만 사용자 시스템 - Sandbox - 을 건드릴수 있습니다. 다시 말해 기존의 Active X와 같은 경우와 비교해서는 보안이 훨씬 높습니다.

그렇지만 여기 까지만 본다면 맨 위의 ClickOnce의 목표인 배포의 용의성과는 아무런 연관이 없습니다.

정작 중요한 배포에 관한 부분은 그 다음입니다. 일단 ClickOnce의 installed mode로 배포 되어진 프로그램은 .NET Framework에 새로 들어간 기능중 하나인 deployment API를 이용하여, 쉽고 간단하게 프로그램을 update 할수 있습니다.

다시 말해, 개발자가 따로 updater를 만들 필요가 없이,유연한 update를 위한 기본 매카니즘이 자동으로 제공되어 집니다.

요약하면

.Net window application을 ClickOnce를 이용해서 package하고 배포 하면, VS 2005가 자동으로 windows application을 구동하기 위한 prerequisite - .Net Framework, MDAC, etc - 들을 MSI로 만들어 주고, 배포를 위한 웹페이지를 자동으로 생성해 주고, windows application이 update 되었을 경우, 각각의 사용자들이 프로그램을 실행 시켰을때 자동으로 새로운 버젼으로 update 시켜 주는 일련의 모든 작업들을 대신 해 주게 됩니다.

회사 내부 인트라넷용 어플리케이션을 개발하는 경우, ClickOnce는 개발자들에게 많은 시간을 절약 시켜줄수 있습니다.

오늘은 여기 까지...

..............

ClickOnce가 실제 어떻게 작동하는가는 나중에 다시 올리도록 하겠습니다.