스마트클라이언트 이해와 배포시나리오


#
배포하기

들어가는 말.

최근 스마트클라이언트(Smart Client)에 대해서 관심이 많다. 준비해야 할 프로젝트가 스마트클라이언트 환경이기 때문에 더욱 그렇다. 하지만 관련 자료를 구하기 힘들고 생각처럼 잘 되지 않았다.

우선 여기저기 복사해서 있는 자료들을 수집했고, 외국 블로그와 국내 유명한 개발자의 블로그를 짜집기 해서
나의 경험과 생각으로 정리를 해보고 자 합니다.



# 스마트 클라이언트란 ?

스마트 클라이언트(n) 정의: 쉽게 배포 및 관리할 수 있는 클라이언트 응용 프로그램인 스마트 클라이언트는 로컬 리소스를 활용하고 분산된 데이터 소스에 인텔리전트하게 연결됨으로써 뛰어난 적응력과 대응성을 갖춘 풍부한 대화형 경험을 제공합니다.






간단히 발전 역사와 관련이 있다. 위 그림처럼 중간에 중쳡되는 (교집합) 부분이 스마트 클라이언트의 장점이라고 보겠다.

rich client - 90년대 황금기를 가졌고, 데스크탑 환경에서 동작하는 프로그램을 말한다.
thin client - 비지니스 로직이 웹 서버에 있고, 클라이언트는 브라우징만 한다.
smart client - 틈틈이 네트웍에 접근을 해서, 서비 데이타를 긁어오고, 비지니스 로직도 클라이언트가 같이 갖고 있다.

참고 할 만한 자료
Smart Client Architecture and Design Guide on MSDN (영문자료지만 차례별로 잘 보면 이해가 된다.)


개발자가 스마트 클라이언트를 만들어야 하는 가장 중요한 10가지 이유

개발자가 스마트 클라이언트를 만들어야 하는 가장 중요한 10가지 이유 더보기








ClickOnce란





http://msdn.microsoft.com/ko-kr/library/t71a733d(VS.80).aspx

msdn의 말을 인용하면 아래와 같다.
간단히 말해 ClickOnce 응용 프로그램은 ClickOnce 기술을 사용하여 게시하는 모든 Windows Forms 또는 콘솔 응용 프로그램입니다. ClickOnce 응용 프로그램은 웹 페이지, 네트워크 파일 공유 또는 CD-ROM과 같은 미디어를 통해 게시할 수 있습니다. ClickOnce 응용 프로그램은 최종 사용자의 컴퓨터에 설치하거나 컴퓨터가 오프라인일 경우에도 로컬로 실행할 수 있고 최종 사용자의 컴퓨터에 영구적으로 설치하지 않고 온라인 전용 모드로 실행할 수도 있습니다. 자세한 내용은 ClickOnce 배포 전략 선택을 참조하십시오.

솔루션을 배포하는 부분은 알게 모르게 많은 문제와 비용이 발생한다.
하지만 이런 과정을 ClickOnce 을 이용하면 편리하게 적은 비용과 간단히 배포가 가능하다.


참고링크
 1. http://www.microsoft.com/korea/msdn/smartclient/understanding/windowsforms/2.0/features/clickonce.aspx


왜 써야하는가?
보통 기존의 Microsoft Installer 방식과 ClickOnce을 비교한 표를 보여준다. 아래 링크에서 보세요.
참고: http://kikiwaka.egloos.com/2046360
간단히 말해서 윈도우즈 권한 문제와 자동 업데이트, 안전성과 성능을 보장한다.




# ClickOnce을 통하여 배포하기



해당 URL을 호출하면 웹서버를 통해서 클라이언트에 배포된다.
프로그램(app)이 실행되지 위해서 필요한 모든 dll, exe 리소스들은 iis서버에 있고 이를 URL을 통해서 클라이언트는 서버로 접속을 하고 내려 받는 것이다. 다운받은 리소스들은 자동으로 설치가 되는 것이다.

Visual Stdio .Net에서 게시를 하면 위와 같은 화면을 볼 수있다.
현재 3rd Part로 Infragistics의 Wingrid, WinTree 등, XtraReport를 쓰고 있는 데
인프라로직스의 경우
http://devcenter.infragistics.com/Support/KnowledgeBaseArticle.Aspx?ArticleID=9692
를 보면 알수 있듯이 간단히 게시만으로도 배포가 가능하다고 나와 있다.

HOWTO:Deploy a VS2005 Windows Forms application with NetAdvantage controls using ClickOnce deployment

Step-By-Step Example

Use the following steps to configure your application's NetAdvantage references to include these files as part of ClickOnce deployment.

1) Access the project’s properties interface by right-clicking on the project in Solution Explorer and selecting properties or through Visual Studio 2005’s main toolbar’s Project -> (Your project name) Properties.

2) Click on the Publish tab.

3) Click on the Application Files button.

4) In the interface that appears, you will find the NetAdvantage assemblies that are referenced. Change their Publish Status to Include.




특별히 다른 배포를 할 필요가 있으면 Bootstrapper Manifest Generator 을 이용하여 배포할때 필요한 구성에 추가를 하면된다.
http://www.davidguyer.us/BMG/publish.htm   여기에서 다운로드 받을 수 있다.
msi파일로 만들어서 같이 배포를 하면 되기 때문에 같이 쓰면 유용하다.



# 마무리
솔찍히 스마트클라이언트로 만들고 ClickOnce로 배포하는 로직을 구현했으나
대 실패하였다. 하지만 관련정보를 애써 모았던 기억이 나고 다음에 쓸 기회가 있다는 생각에 적어두었습니다.
배포하는 방법은 ClickOnce가 참 좋던데 IE에서 exe파일을 독립적으로 호출 할때 차후 문제가 많이 될거라 생각되어서 손땟습니다.

ClickOnce가 원하는 위치에 배포하지 않기때문에 자동업그래이드도 직접구현하여서 처리하는 방향으로 가닥을 잡았습니다.
잘 관리하면 초기배포비용을 줄일수있을거 같은데 쉽지 않네요. 유료배포툴인 인스톨쉘이 더 좋은건 사실인거 같습니다.

바탕화면으로 바로가기 아이콘 뽑아내기, CAS 등 권한 자동으로 설정등 팁이 있지만 여전히 힘듬




참고사이트
http://springpopup.me/33   ☆☆☆☆☆ 추천! (실무자 다운 면모)
http://kikiwaka.egloos.com/2046360 ☆☆☆ (읽어볼것. 개념정리에 좋음)





# 추가


1. CAS권한 msi로 배포하기
http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=18&MAEULNO=8&no=1067&page=20


참고
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=18&MAEULNo=8&no=1075&ref=1075

작성자 우영식

ClickOnce 배포

ClickOnce 배포를 사용하면 간단한 설치를 위해 웹 서버나 네트워크 파일 공유에 Windows 기반 응용 프로그램을 게시할 수 있습니다. Visual Studio는 ClickOnce를 사용하여 배포되는 응용 프로그램의 게시 및 업데이트를 완벽하게 지원합니다. ClickOnce 배포는 Visual Basic, Visual C# 및 Visual J#을 사용하여 만드는 프로젝트에 사용할 수 있지만 Visual C++에는 해당되지 않습니다. Visual C++ 응용 프로그램 배포에 대한 자세한 내용은 Visual C++ 응용 프로그램의 ClickOnce 배포를 참조하십시오.

다음 항목에서는 ClickOnce 배포에 대해 자세히 설명합니다.

단원 내용

ClickOnce 배포 개요

ClickOnce 배포 기술 및 관련 개념에 대해 소개합니다.

ClickOnce 배포 전략 선택

ClickOnce 응용 프로그램을 배포하기 위한 여러 가지 옵션을 설명합니다.

ClickOnce 업데이트 전략 선택

ClickOnce 응용 프로그램을 업데이트하기 위한 여러 가지 옵션을 설명합니다.

ClickOnce 배포 및 보안

ClickOnce 배포의 보안 관련 문제에 대해 설명합니다.

ClickOnce 응용 프로그램 게시

이 단원에는 ClickOnce 배포와 관련된 일반적인 작업을 수행하는 방법에 대해 설명하는 작업 항목이 포함되어 있습니다.

ClickOnce 응용 프로그램 보안

ClickOnce 배포의 보안 기능과 코드 액세스 보안 및 보안 영역의 역할에 대해 설명합니다.

ClickOnce 매니페스트 서명

응용 프로그램 및 배포 매니페스트를 서명하는 방법에 대해 설명합니다.

ClickOnce를 사용하여 COM 구성 요소 배포

응용 프로그램 및 배포 매니페스트를 서명하는 방법에 대해 설명합니다.

명령줄에서 ClickOnce 응용 프로그램 빌드

MSBuild를 사용하여 명령줄에서 응용 프로그램을 배포하는 방법에 대해 설명합니다.

System.Deployment.Application을 사용하는 ClickOnce 응용 프로그램 디버깅

고급 ClickOnce 배포 기능을 제공하는 System.Deployment.Application 네임스페이스의 요소를 구현하는 응용 프로그램을 디버깅하는 방법에 대해 설명합니다.

Troubleshooting ClickOnce Deployment

ClickOnce 배포에서 발생할 수 있는 일반적인 문제의 해결 방법에 대한 정보를 제공합니다.

관련 단원

배포 전략 선택

ClickOnce와 Windows Installer 배포를 비교합니다.

배포의 새로운 기능

ClickOnce 배포 및 64비트 응용 프로그램 배포와 같은 Microsoft Visual Studio 2005의 새로운 기능을 나열합니다.

64비트 응용 프로그램 배포

ClickOnce 또는 Windows Installer 배포를 사용하여 64비트 응용 프로그램을 배포하는 방법에 대한 정보를 제공합니다.

사용자 지정 필수 구성 요소 추가

사용자 지정 필수 구성 요소(부트스트래퍼에 기본적으로 포함되지 않는 시스템 구성 요소)를 설치하는 방법에 대해 설명합니다.

Windows Installer 배포

이 단원에서는 설치 프로젝트를 사용하여 기존 배포 기술인 Windows Installer에 대해 설명합니다.

배포 오류 메시지

ClickOnce 및 Windows Installer 배포와 관련된 오류 메시지에 대해 설명합니다.




이 글은 "씨디맨" 의 동의 없이 전문 재배포 금지. 링크 및 트랙백은 허가 없이 무제한 허용 *  [자세히보기]

질문 또는 댓글을 남겨 주세요.

질문글은 무조건 답변 드리겠습니다. 이곳에 질문을 올려주세요.
이 글과 연관이 없는 급한 질문은 빠른 질문/답변을 이용해 주세요!

댓글 입력 폼

s;s s;s

     이미지 업로드

  1. 이름이동기 2009.02.25 09:57 신고

    헙.... 뭔가 대단한일을 하고 계시는군요 !!!!!

    perm. |  mod/del. |  reply.
    • 엔돌슨 2009.02.25 22:05 신고

      꼭 그런건 아니고 하다보니 조금 알게 된거 뿐이에요 ^^ㅋㅋ

      perm. |  mod/del. | 
  2. 구차니 2009.02.25 10:03 신고

    머머머머먼가 어려워요!!!

    대충 읽어 보니(읽어도 무슨소리인지 모를뿐이고!)
    예전에 IBM 연구소에서 검색되서 나왔던 autonomous environmnet가 떠오르네요
    자기 스스로 최적화 하고
    자기 스스로 고치고
    자기 스스로 방어하고
    자기 스스로 업그레이드 하는 개념인데

    어떻게 보면 지금의 윈도우즈 업데이트나
    yum을 사용한 리눅스 자동 업데이트 방식과 상당히 유사하다는 생각이 듭니다.

    아 무료 인스톨러 필요 하시면 NSIS 인가? Null soft에서 winamp 배포하기 위해 만든 패키지 프로그램을 사용해 보시면 어떨까요? 그 외에 몇가지 무료 인스톨러가 있었는데 사용해보지는 못했네요 ^^;

    NSIS http://nsis.sourceforge.net/Download
    InstallFactory http://user.chol.com/~chosmos/
    InnoSetup http://www.jrsoftware.org/

    perm. |  mod/del. |  reply.
    • 엔돌슨 2009.02.25 22:05 신고

      와우~ NSIS 처음들어봤는 데 이런것도 있네요
      자동적으로 구현되는게 참 좋은거 같아요.

      자동업데이트로 구현해두지 않으면 나중에 유지보수하기 곤란하니깐 필수기는 하죠 ^^
      좋은정보 참고할께요

      perm. |  mod/del. | 
    • 엔돌슨 2009.03.02 11:37 신고

      와우!!!
      Installshield 만 좋은줄 알았더니
      이렇게 좋은 오픈소스가 있네요.
      저는 전혀 몰랐습니다. 그런데 사용법이 조금 어렵기는 한데 예제 따라서 조금씩만들어 보아야 할거 같습니다.

      perm. |  mod/del. | 
    • 씨디맨 2009.03.02 11:40 신고

      좋은 정보 감사해요 ^^

      perm. |  mod/del. | 
  3. 예또보 2009.02.25 13:30 신고

    무슨 말쌈이신지??
    저 잘모르겠어영 ㅜ.ㅜ..
    이제 시대에 밀려 컴맹이 되는건가???ㅠ.ㅠ..

    perm. |  mod/del. |  reply.
    • 엔돌슨 2009.02.25 22:06 신고

      전에 세미나갔더니...
      스마트클라이언트로 ClickOnce로 배포한다고 했더니..
      그거 망한 프로젝트라고 들었어요. 쩝;
      MS에서 독자적으로 했기는 했지만
      CAS권한 설정이라던지 걸리는 게 많아서 쉽지 않은거 같더라구요.
      요즘 대세는 WPF인건 확실한거 같아요.
      익스플로우에서 바로 실행되는 밥(bap)도 신기하고요

      좋은 기술이 나와도 실무에는 다 적용되는 게 아닌걸 보면 성공적인 사례가 나올때 적용하는 것도 바람직하다고 봐요 ~

      perm. |  mod/del. | 
  4. 2009.02.25 14:44

    비밀댓글입니다

    perm. |  mod/del. |  reply.
    • 엔돌슨 2009.02.25 22:10 신고

      참고한 링크따라가면 정말 설명 잘되어있죠.
      세미나가서 클릭원스로 배포한다니깐 걱정한것이 이겁니다.
      뭐냐면 클라이언트에 닷넷프레임이 설치되어있어야 하는데 이걸 불특정다수가 다받는 동안 기다리기 힘들다는 거죠.
      하지만 저의경우 고객이 정해져있기때문에 설치해야 한다고 하고 말해두면 가능한거죠..

      InstallShield 같은 유료툴을 이용하면 ClickOnce보다 더 좋습니다. 경로 지정도 가능하고요.
      사용법도 찾아보면 쉽게 구할수있죠.

      초대장은 cdmanii님이 주실겁니다. ^^

      perm. |  mod/del. | 
    • 씨디맨 2009.02.25 22:35 신고

      초대장 보내려니 이미 존재하는 이메일이라고 나오네요
      초대장 받으신건가요 ?

      perm. |  mod/del. | 
  5. 머니야 머니야 2009.02.25 16:15 신고

    아~..혹시 사이트에 나가시나봐여~ 스마트 클라이언트는 아직 생소해서 함 읽어봤어요... 읽다보니 머리에 쥐가 좀 나지만.. db 쓰리티어랑 비슷한거 같기두 하궁..ㅠㅠ.. 좋은정보 감사합니다@!

    perm. |  mod/del. |  reply.
    • 엔돌슨 2009.02.25 22:07 신고

      티어개념도 참 어렵던데요 ㅠㅠ
      좀 지난거 같기는 하지만 스마트클라이언트관련자료는
      한번 봐두면 도움이 될것도 같습니다.

      perm. |  mod/del. | 
  6. 건강정보 2009.02.25 17:58 신고

    역시 전 컴맹인가봅니다.
    이렇게 정리를 잘 해주셨는데도 순간 멍~때리고 말았습니다^^

    perm. |  mod/del. |  reply.
  7. 수우º 2009.02.26 00:09 신고

    저... 저 컴맹인가요 ?;;
    머엉... 요러고 있어요 ㅋㅋ

    perm. |  mod/del. |  reply.
  8. 빛이드는창 2009.02.26 09:26 신고

    다시한번 꼼꼼하게 봐야겠어요...ㅋㅋ

    즐거운 하루 되세요~

    perm. |  mod/del. |  reply.
  9. 마음의 꿀단지 2009.02.26 18:26 신고

    약간은 생소하고 좀 ..ㅎㅎ 하네요 ..^^
    쉬운 배포 기능과 밀접한 관련 있는 듯 싶은데 ..
    설치된 하드웨어 자원도 긁어 올수 있을 것 같기도 하구여 ..

    잘 보았습니다

    perm. |  mod/del. |  reply.
    • 엔돌슨 2009.02.26 21:05 신고

      솔찍히 하면서 많이 부딪힌걸 정리하고 자 했지만
      모두다 정리된것은 아닙니다 ^^;
      참고 블로그에 내용이 더 좋은건 사실이구
      여거저기 관련내용을 종합해 보고 싶었습니다.

      배포관련된 부분이 맞습니다. 그리고 하드웨어쪽은 잘 모르겠구요. 윈도우즈입장에서 브라우져에서 실행해도 되는지 여부를 알아야 하니깐
      CAS 실행권한 부분이 추가됩니다.
      그리고 서드파티의 경우 windows\assambly 폴더에 등록됩니다. 그래서 자체배포되면서 실행이 되죠.

      하지만 전에 세미나 갔을때도 들었지만
      이런 자체배포기능이 좋은건 아닌것이
      불특정다수가 닷넷프레임을 설치하고 서드파티를 설치하는건 옳지 않고 다운로드 하는 동안 기다리기때문에 좋지 않습니다.
      고객이 정해져있을경우 좀 기다리라고 하면되는거죠 ^^

      배포로직이 별로 중요치 않을거 같지만
      고객입장이나 제공하는 입장에서도 유지보수 비용도 줄이고 전화도 안해도 되고 참좋죠^^

      perm. |  mod/del. | 
  10. 심플러 2009.02.27 09:22 신고

    네 초대장을 이미 받았네요~^^ 신경써주셔서 고맙습니당!
    그런데 한번 설치되는지 테스트하고 수정하구 다시 해보니 이미 설치가 되었다고 오류가 뜨는데;;
    삭제하는법을 모르겠네요;;ㅠ
    you can uninstall it and reinstall it from location http://127.0.0.1/CasSet/CasSet.application. If you reinstall the application, be aware that you might lose any customizations that you made to the application.

    perm. |  mod/del. |  reply.
    • 엔돌슨 2009.03.03 08:36 신고

      ClickOnce로 배포했을때 이미 설치되었다는 메세지가 뜬다는 이야기신가요?

      배포된것은 버전이 다르지 않으면 배포하지 않는 걸로 알고있는 데요. 음;;

      perm. |  mod/del. | 
  11. 리카르도 2009.04.14 20:01 신고

    저도 이 기술 알고 깜짝 놀랐었습니다. 이전에 어도비 쪽에서 나온 플래쉬의 에어 도 비슷한
    메카니즘의로 사용되는 거라고 알고 있습니다.

    근데 생각외로 이 기술을 이용한 싸이트가 잘 보이지가 않더군요.
    기업들에게만 쓰이는건지..

    한편으론 좀 아쉬운 마음도 듭니다.

    perm. |  mod/del. |  reply.
    • 엔돌슨 2009.05.21 08:29 신고

      클릭원스를 많이는 쓰지 않는 거 같습니다.
      MS쪽에서 만들어서 편하게 쓰라는 기술이지만,
      대부분 현업에서는 auto upgrade 프로그램을 만들어서
      필요한 ocx, dll를 등록, 배포하고 있죠~

      한번클릭으로 cs가 웹에서 설치 배포되니 참좋은데
      일부에서는 망한 프로젝트라는 말도 있네요 ;;

      perm. |  mod/del. | 
  12. dfd 2009.06.05 10:51 신고

    ddd

    perm. |  mod/del. |  reply.
  13. 엔돌슨 2011.04.19 18:13 신고

    http://springpopup.tistory.com/entry/ClickOnce%EC%97%90%EC%84%9C-%EB%B3%80%EA%B2%BD%EB%90%98%EC%A7%80-%EC%95%8A%EC%9D%80-%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%EC%9D%98-%EB%8B%A4%EC%9A%B4-%EC%97%AC%EB%B6%80-%ED%85%8C%EC%8A%A4%ED%8A%B8

    perm. |  mod/del. |  reply.