Esta é uma questão filosófica.
Dado um aplicativo de área de trabalho hipotético e o desejo de fornecer atualizações automáticas (em vez de forçar as pessoas a irem a um site, verifique se há uma atualização, faça o download de uma atualização, instale), qual dos dois é mais uma abordagem de "prática recomendada"?
Como o iTunes , ele verifica se há uma nova versão e solicita ao usuário que baixe a nova versão. Nesse caso, ele baixa um executável de instalação completa (nesse caso, um arquivo do Windows Installer (.msi)) que instala a versão completa (não apenas uma atualização para a versão anterior - é demais para gerenciar se houver várias versões disponíveis) . Então, digamos, é a versão 10.1.1 - se você está instalando novo ou atualizando, usa o mesmo arquivo. Após o download, ele instrui o usuário a fechar o aplicativo e executar o arquivo de instalação.
Semelhante à outra, verifica se há uma nova versão e solicita que o usuário faça o download, mas, em vez de apenas baixar um executável e solicitar ao usuário que o execute, ele realmente executa para eles - desligando o programa que eles abriram, adquirindo a segurança necessária para instalar arquivos.
Problemas com o número 2: muitos problemas relacionados ao fechamento do programa, já que o programa pode abrir outros programas ( Outlook e Excel ) ou se o usuário estivesse no meio de alguma coisa. Também em torno da segurança, você precisa de acesso de administrador local para instalar, e se você não o possuir? Nas versões posteriores do Windows, você não pode simplesmente substituir a segurança da pessoa.
Problemas com o número 1: algumas pessoas acreditam que isso será muito difícil, muito esforço para o usuário final.
Eu preferiria ir com o número 1, pois economizará de 80 a 120 horas no meu projeto e é mais simples de implementar e manter. No entanto, temos pessoas que se sentem fortemente por todos os lados.
Qual é a melhor prática para esse tipo de coisa?
fonte
Respostas:
Pessoalmente, gosto bastante da abordagem do Google Chrome. Um diretório base com um iniciador e subdiretórios para cada versão instalada do software. O iniciador apenas procura o número de versão mais alto e o utiliza e exclui versões anteriores, conforme necessário. Uma tarefa do atualizador é executada com frequência para baixar e criar novos diretórios. Quando novas versões são instaladas, o aplicativo em execução solicita uma reinicialização para usar a nova versão.
fonte
Você não deve criar entradas de inicialização desnecessárias para verificar se há atualizações como o Adobe Flash Player (é difícil rastreá-las todas e não consigo descobrir uma maneira de desativar as verificações ...) ou o iTunes. Irrita o usuário (geeks, de qualquer maneira). Uma opção melhor seria procurar atualizações na inicialização do aplicativo, como o Firefox faz .
Um simples "Instalar atualizações?" janela não incomodará os usuários. Deixe-o atualizar em segundo plano enquanto o usuário faz outras coisas e, em seguida, inicie seu aplicativo automaticamente.
Apenas certifique-se de incluir uma opção:
Ou algo parecido.
Se vale a pena o esforço, eu diria que vá em frente. Essa é sua decisão.
fonte
Eu acho que você quer uma instalação "ClickOnce".
http://msdn.microsoft.com/en-us/library/142dbbz4(v=vs.90).aspx
O ClickOnce é uma tecnologia de implantação que permite criar aplicativos baseados no Windows com atualização automática que podem ser instalados e executados com o mínimo de interação do usuário. A implantação do ClickOnce supera três problemas principais na implantação:
Dificuldades na atualização de aplicativos. Com a implantação do Microsoft Windows Installer, sempre que um aplicativo é atualizado, o usuário deve reinstalar o aplicativo inteiro; com a implantação do ClickOnce, você pode fornecer atualizações automaticamente. Somente as partes do aplicativo que foram alteradas são baixadas e, em seguida, o aplicativo atualizado completo é reinstalado a partir de uma nova pasta lado a lado.
Impacto no computador do usuário. Com a implantação do Windows Installer, os aplicativos geralmente dependem de componentes compartilhados, com o potencial de conflitos de versão; com a implantação do ClickOnce, cada aplicativo é independente e não pode interferir com outros aplicativos.
Permissões de segurança. A implantação do Windows Installer requer permissões administrativas e permite apenas uma instalação limitada do usuário; A implantação do ClickOnce permite que usuários não administrativos instalem e concede apenas as permissões de Segurança de Acesso ao Código necessárias para o aplicativo.
fonte
Pessoalmente, apreciei aplicativos que fazem algo semelhante ao framework Sparkle . Eu acho que é apenas uma coisa do Mac, mas basicamente faz o seguinte (em cima da minha cabeça - presumo que o comportamento possa ser ajustado).
Considerando que você está falando sobre .msi, essa estrutura específica não é realmente aplicável, mas neste caso eu preferiria usar alguma solução existente do que reinventar a roda.
fonte
Eu diria que você realmente precisa conhecer seu usuário. Se eles são experientes e / ou têm um interesse intenso em manter-se atualizado, o número 1 funcionará.
Nunca subestime a preguiça de um usuário, porque quando o programa não funcionar mais porque não há mais suporte, você será inundado com as chamadas de suporte técnico mais tarde.
O tempo virá do desenvolvimento (# 2) ou do suporte (# 1).
fonte
Que tal isso?
Você não precisa incomodar o usuário, não precisa fechar nada ...
fonte
Por que não algo no meio?
Solicite o download (ou faça a opção "baixar automaticamente"), após concluir o prompt para instalar a atualização baixada (execute o arquivo .msi). Dessa forma, você nega a desvantagem do nº 2 (fechando no meio do trabalho do usuário) e ainda mantendo o conforto com o custo de mais 1 clique.
A caixa de diálogo " Fechar e instalar atualização? " Deve ser facilmente acessível (mas não irritante) quando o usuário recusar primeiro. Com "Iniciar <nome do programa>?" A caixa de seleção no final de .msi será quase como a segunda, com pouco mais trabalho
@ security Os
programas no Windows moderno podem solicitar permissão para executar ações que exigem direitos de administrador (o usuário é exibido perguntando onde ele digita a senha de administrador e, em seguida, seleciona "sim / não" para conceder a permissão)
fonte
Tenho 124 casas de penhores que usam meu aplicativo de gerenciamento de casa de penhores. Sempre que tenho uma nova atualização, transmito um email para eles, informando sobre a atualização e os detalhes dela. Então eles têm a opção de enviá-lo por FTP, entrando no meu site. Eles também têm a opção de reverter a atualização. Meu site também acompanha a versão instalada de cada casa de penhores.
fonte