자체 업데이트 응용 프로그램-철학


15

이것은 철학적 인 질문입니다.

가상의 데스크톱 응용 프로그램과 사람들이 웹 사이트를 방문하도록하고 업데이트를 확인하고 업데이트를 다운로드하고 설치하지 않고 자동 업데이트를 제공하려는 경우 두 가지 중 "모범 사례"접근 방식 중 더 많은 것은 무엇입니까?

  1. iTunes 와 마찬가지로 새 버전이 있는지 확인하고 새 버전을 다운로드하라는 메시지를 표시합니다. 그렇다면 전체 버전을 설치하는 전체 설치 실행 파일 (이 경우 Windows Installer 파일 (.msi))을 다운로드합니다 (이전 버전으로의 업그레이드뿐만 아니라 여러 버전이있는 경우 관리하기에는 너무 많음) . 따라서 버전 10.1.1이라고 가정 해 보겠습니다. 새로 설치하든 업그레이드하든 동일한 파일을 사용합니다. 다운로드 후에는 사용자에게 응용 프로그램을 닫고 설치 파일을 직접 실행하도록 지시합니다.

  2. 다른 버전과 마찬가지로 새 버전을 확인하고 다운로드하라는 메시지를 표시하지만 실행 파일을 다운로드하고 실행하라는 메시지를 표시하는 대신 실제로 실행합니다. 열려있는 프로그램을 종료하고 획득합니다. 파일을 설치하는 데 필요한 보안

# 2와 관련된 문제 : 프로그램이 다른 프로그램 ( OutlookExcel )을 열 수 있거나 사용자가 무언가 중간에있는 경우 어떻게해야합니까? 또한 보안과 관련하여 설치하려면 로컬 관리자 액세스 권한이 필요합니다.없는 경우 어떻게해야합니까? 이후 버전의 Windows에서는 개인의 보안을 무시할 수 없습니다.

# 1과 관련된 문제 : 일부 사람들은 이것이 최종 사용자에게는 너무 힘들고 많은 노력을 기울일 것이라고 생각합니다.

내 프로젝트에서 80-120 시간을 절약하고 구현 및 유지 관리가 더 간단하기 때문에 # 1을 사용하는 것이 좋습니다. 그러나 우리는 사방에서 강하게 느끼는 사람들이 있습니다.

이런 종류의 일에 가장 좋은 방법은 무엇입니까?


나는 그것이 철학적이라고 확신하지 못하고, 그녀가 나에게 해결책을 찾고있는 것처럼 들립니다.

여기서 디자인 / 건축 관련 질문을하는 것은 좋지 않습니까?

제 질문은 왜 # 2 프로그램이 종료하고 다시 시작해야합니까? 보안 업데이트 인 경우 이해할 수는 있지만 일반 사용자는 하루에 한 번 이상 프로그램을 닫았다가 다시 열지 않으므로 백그라운드에서 설치하지 않는 이유는 이전 버전을 사용하여 메모리에서 프로그램을 실행하도록하십시오. 다시 시작하면 설치된 새 버전을 사용합니다. 번거롭지 않고 번거 로움도 없습니다.
Mike S

@ Mike S : Windows에서는 불가능하며 (실행중인 실행 파일을 덮어 쓸 수 없음) Linux에서도 특별한 아이디어는 아닙니다 (다른 인스턴스를 열면 이전 코드를 실행하고 새 코드를 실행하는 경우) -IPC가 발생하면 더욱 악화됩니다)
Dean Harding

경험에서 : 업데이트를 확인하는 경우 매일 자정이나 오후 3시에 프로그램을 업데이트하지 마십시오. 합리적으로 보이지만 자신의 서버에서 DDOS를 종료합니다. 최대 3600 초의 임의성을 추가하십시오. 그렇게 시급 하지 않습니다 .
MSalters

답변:


20

개인적으로 저는 Chrome의 접근 방식을 선호합니다. 실행 프로그램이있는 기본 디렉토리 및 설치된 각 버전의 소프트웨어에 대한 서브 디렉토리. 런처는 가장 높은 버전 번호를 찾고이를 사용하여 필요에 따라 이전 버전을 삭제합니다. 업데이터 작업은 자주 실행되어 새 디렉토리를 다운로드하고 생성합니다. 새 버전이 설치되면 실행중인 응용 프로그램에서 새 버전을 사용하기 위해 다시 시작을 요청합니다.


4
Google의 좋은 행동을 지적한 +1 대조적으로, 어도비 아크로뱃 리더 (Adobe Acrobat Reader)는 2 일마다 긴급하게 설치해야 할 패치가 있으며, 계속해서 업무를 방해합니다.
Ingo

나도이 접근법을 좋아한다. 단점은 고도가 필요하지 않은 사용자 별 설치에만 작동한다는 것입니다. 권한 상승 프롬프트가 표시되면 업데이트를 수행하기 위해 몇 번 더 클릭해야하는지 여부는 중요하지 않습니다 (더 이상 무음이 아님).

@Cosmin % appdata %를 사용하지 않으려면 % ProgramData %를 사용하여 다운로드 한 파일을 저장할 수 있습니다. 보다 철학적으로 올바른 방법은 아카이브를 저장하고 다음에 프로그램을 실행할 때 설치를 높이는 것입니다.
베이컨 비트

이 답변을 좋아하고 백 포켓에 넣었습니다 (현재 "Itunes"스타일 다운로드는 비용 절감을 위해 폭 넓은 호소를 얻었습니다.)
Shannon Davis

3

Adobe Flash Player와 같은 업데이트를 확인하기 위해 불필요한 시작 항목을 만들면 안됩니다 (모두 추적하기 어렵고 확인을 비활성화하는 방법을 알 수 없습니다 ...) 또는 iTunes입니다. 그것은 사용자를 괴롭 힙니다 (어쨌든 괴짜). 더 좋은 옵션은 Firefox처럼 응용 프로그램 시작시 업데이트를 확인하는 것 입니다.

방해가되지 않는 간단한 "업데이트 설치?" 창은 사용자를 귀찮게하지 않습니다. 사용자가 다른 작업을 수행하는 동안 백그라운드에서 업데이트하도록 한 다음 응용 프로그램을 자동으로 시작하십시오.

옵션을 반드시 포함하십시오 :

다음에서 업데이트를 확인하십시오.

  • 로그온 (괴짜를 괴롭 히고 싶다면)
  • 응용 프로그램 시작 ( 기본적으로 켜져 있음 )
  • 몇 주마다 ( 기본적으로 꺼져 있음 )

또는 비슷한 것.


노력할만한 가치가 있다면 나는 그것을 갈 것이라고 말하고 싶습니다. 그게 당신의 결정입니다.


2

"ClickOnce"설정을 원한다고 생각합니다.

http://msdn.microsoft.com/en-us/library/142dbbz4(v=vs.90).aspx

ClickOnce는 최소한의 사용자 상호 작용으로 설치 및 실행할 수있는 자체 업데이트 Windows 기반 응용 프로그램을 만들 수있는 배포 기술입니다. ClickOnce 배포는 배포의 세 가지 주요 문제를 극복합니다.

응용 프로그램을 업데이트하는 데 어려움이 있습니다. Microsoft Windows Installer 배포에서는 응용 프로그램이 업데이트 될 때마다 전체 응용 프로그램을 다시 설치해야합니다. ClickOnce 배포를 사용하면 업데이트를 자동으로 제공 할 수 있습니다. 변경된 응용 프로그램 부분 만 다운로드 한 다음 업데이트 된 전체 응용 프로그램이 새 병렬 폴더에서 다시 설치됩니다.

사용자 컴퓨터에 영향을줍니다. Windows Installer 배포에서는 응용 프로그램이 공유 구성 요소에 의존하는 경우가 많으며 버전 충돌이 발생할 가능성이 있습니다. ClickOnce 배포를 사용하면 각 응용 프로그램이 독립적이며 다른 응용 프로그램을 방해 할 수 없습니다.

보안 권한. Windows Installer 배포에는 관리자 권한이 필요하며 제한된 사용자 설치 만 허용합니다. ClickOnce 배포를 통해 비 관리 사용자는 응용 프로그램에 필요한 해당 코드 액세스 보안 권한 만 설치하고 부여 할 수 있습니다.


이것은 한 번의 클릭의 장단점과 MSI (많은 결론이 정확하지 않거나 불완전한)의 문제가 아니라 자동 업데이트 솔루션에 대한 모범 사례의 문제였습니다.
Christopher Painter

어쨌든이 정보에 감사하며 개발자와 정보를 공유하여 옵션으로 고려했는지 확인합니다. 아마도 업데이트 프로세스를 직접 개발해야한다고 생각했을 것입니다.

크리스토퍼, MS와 직접 대화 해보세요. MSDN에서 직접 가져 왔습니다. 정말 유용한 의견이기도합니다.

배포 기술로 코딩 할 때 MSDN에 게시 한 사람이 잘못했을 때 나를 놀라게하지 않습니다. 이 내용을 실제로 이해하는 전문가는 거의 없습니다.
Christopher Painter

2

개인적으로 Sparkle 프레임 워크 와 비슷한 기능을하는 응용 프로그램에 감사하게되었습니다 . 나는 그것이 Mac 일 뿐이라고 생각하지만 본질적으로 다음을 수행합니다 (머리 꼭대기에서-행동을 조정할 수 있다고 가정합니다).

  1. 업데이트 확인 (일반적으로 응용 프로그램 시작시)
  2. 하나가있는 경우, 별도의 창이 멋지게 형식화 된 변경 로그와 함께 표시됩니다
  3. 그런 다음 사용자는 해당 버전을 건너 뛰거나 설치하거나 나중에 알림을 받도록 선택할 수 있습니다
  4. 그가 응용 프로그램을 설치하기로 결정하면 진행률 표시 줄이 변경 ​​로그 아래에 표시됩니다
  5. 다운로드 후 사용자는 응용 프로그램을 종료하고 즉시 설치하거나 응용 프로그램을 종료 한 후 설치하기로 결정할 수 있습니다.

.msi에 대해 이야기하고 있다는 것을 고려할 때이 특정 프레임 워크는 실제로 적용 할 수는 없지만이 경우 바퀴를 재발 명하는 것보다 기존 솔루션을 사용하는 것이 좋습니다.


1

나는 당신이 정말로 당신의 사용자를 알아야한다고 말하고 싶습니다. 그들이 정통하고 최신 정보에 관심이 있다면 # 1이 효과가있을 것입니다.

더 이상 지원되지 않기 때문에 프로그램이 더 이상 작동하지 않으면 나중에 헬프 데스크에 전화를 걸기 때문에 사용자의 게으름을 과소 평가하지 마십시오.

시간은 개발 (# 2) 또는 지원 (# 1)에서 나옵니다.


1

이건 어때?

  • 응용 프로그램 시작시 새 버전을 확인하고 (선택적으로 사용자에게 요청한 후) 다운로드하십시오.
  • 다운로드가 완료되면 응용 프로그램을 다시 설치하고 다시 시작할 수있는 사용자를위한 단추를 제공하십시오 (업데이트가 중요하지 않은 경우 대화 상자 사용 안 함).
  • 응용 프로그램 종료시 (선택적으로 사용자에게 요청한 후) 설치 프로그램을 시작하십시오. 사용자가이 시점에서 설치를 거부하는 경우 (아마도 급한 경우) 다음에 응용 프로그램을 시작하기 전에 설치하십시오.

사용자를 귀찮게 할 필요가 없으며 아무것도 닫을 필요가 없습니다 ...


1

왜 중간에 뭔가가 아닌가?

다운로드 한 업데이트를 설치 하라는 메시지 가 표시되면 .msi를 실행하여 다운로드 하라는 메시지 가 표시 됩니다 (또는 "자동으로 다운로드"옵션 선택 ). 이렇게하면 # 2의 단점을 무시하고 (사용자 작업 중간에 닫히는) 1 클릭의 비용으로 편안함을 유지합니다.

은 " 닫기 및 업데이트 설치? 사용자가 처음으로 감소 할 때"대화 상자가 쉽게 접근 할 (하지만 성가신되지 않음)이어야한다. "<프로그램 이름>을 시작 하시겠습니까?" .msi의 끝에있는 확인란은 더 이상 작업하지 않고 거의 # 2와 같습니다.

@ security
최신 Windows의 프로그램은 관리자 권한이 필요한 작업을 수행 할 수있는 권한을 요청할 수 있습니다 (사용자에게는 관리자 암호를 입력하라는 메시지가 표시되고 권한 부여 여부는 "예 / 아니오"선택).


1

전당포 관리 데스크탑 앱을 사용하는 전당포가 124 명입니다. 새로운 업데이트가있을 때마다 업데이트 및 세부 정보를 알리는 이메일을 브로드 캐스트합니다. 그런 다음 내 웹 사이트에 로그인하여 FTP로 전송할 수 있습니다. 업데이트를 롤백하는 옵션도 있습니다. 내 웹 사이트는 또한 전당포 설치 버전을 추적합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.