Fundo:
Eu tenho um projeto em que preciso fornecer ao usuário um pacote de download com alguns dados confidenciais. Os dados precisam ser criptografados. Depois de baixá-lo, eles precisam poder visualizá-lo (não é necessária edição). Para esta pergunta, vamos aproximar os dados como uma série de arquivos html estáticos. Como os dados são confidenciais, eles precisam ser criptografados sempre que estiverem no disco.
Estamos pensando em fornecer ao usuário uma opção de download que daria a ele um arquivo zip contendo dois arquivos:
- Um arquivo de dados (provavelmente usaríamos um arquivo zip criptografado nos bastidores) com os dados solicitados
- Um aplicativo para exibir os dados que solicitariam uma senha de maneira adequada e manipular a descriptografia dos dados e exibi-los por meio de um navegador da Web incorporado.
Detalhes adicionais:
- Os usuários não estão sob nosso controle. Eles são consumidores.
- Não estamos preocupados com a plataforma cruzada nesta questão. Isso é apenas sobre o Windows. Teremos um download separado para usuários de Mac.
Chegue à pergunta já:
Para esse aplicativo que precisamos criar, debatemos internamente se é razoável que esse aplicativo seja um aplicativo .NET winforms. Queremos um único .exe e queremos que o download seja razoavelmente pequeno (por exemplo, 100k).
- Ousamos usar a estrutura .NET (não precisamos usar uma versão particularmente recente do .NET - 2.0 seria bom)?
- É razoável supor que a maioria dos consumidores tenha o .NET em suas máquinas agora devido ao Windows Update?
- É razoável perguntar a quem não o tem para instalá-lo?
Sabemos que nem 100% dos usuários terão o .NET instalado. A verdadeira questão é se é razoável pedir-lhes para tê-lo hoje em dia.
PS Alguém sabe de estatísticas confiáveis sobre qual porcentagem de pessoas já possui o .NET instalado?
fonte
Respostas:
Por padrão, o Windows XP não inclui nenhuma versão da estrutura .NET. Vista e Server 2008 incluem .NET Framework 3.0, Windows 7 e Server 2008R2 incluem .NET 3.5 e Windows 2000 não pode suportar nada acima do .NET 2.0.
Com isso em mente, tudo se resume à disseminação do SO no seu público-alvo. Eu listaria o requisito com destaque na página de download e forneceria um link para a seção Microsoft Update / Downloads para o download da estrutura, além do download do aplicativo.
fonte
Não sei se é razoável pedir que eles o tenham ou não. No entanto, eu sei que os clientes geralmente não são razoáveis, então não vejo que isso importe. Se você estiver lidando com um número limitado de clientes, pergunte a eles. Se você estiver lidando com mais clientes do que você pode razoavelmente conversar ou se vai buscar clientes ao longo do tempo, verifique se eles veem o requisito antes de comprar.
fonte
Em qual versão do Windows seus usuários estão?
Se for o Windows Vista, o .NET 3 será instalado por padrão e, se for o Windows 7, a versão 3.5. Fonte .
Isso não ajuda se eles estiverem no XP, mas como a Microsoft acabou de interromper o suporte ao SP2, eles devem estar no SP3.
Se você usar algo como "ClickOnce" (existem outros instaladores disponíveis), poderá tornar a versão relevante da estrutura .NET um pré-requisito e ela será baixada e instalada para você - ela não está incluída no instalador . Se você está preocupado com o tamanho do download, acesse o .NET 3.5 ou 4 e faça o Client Profile, que é um download muito menor, embora a versão do .NET 4 seja mais flexível.
fonte
Há algum tempo, li algumas postagens do Paint.NET no processo de instalação e como melhorá-lo. Dê uma olhada nessas duas entradas do blog. O primeiro descreve o constrangimento de instalar o .NET Framework separadamente; o segundo descreve como o autor o integrou como parte da instalação.
A experiência de instalação do Paint.NET - Parte 1, versão 3.xx (a antiga maneira ruim)
A experiência de instalação do Paint.NET - Parte 2, versão 4.0 (a nova maneira boa)
Portanto, mesmo que você precise do .NET Framework e não tenha certeza se os usuários o possuirão, você pode pelo menos integrar sua instalação ao seu aplicativo de uma maneira razoavelmente indolor.
fonte
Muitos usuários corporativos não estão na versão mais recente do Windows (ainda no XP), mas acho que mais usuários domésticos foram atualizados devido ao novo hardware. Baixar e instalar é um pouco trabalhoso. Esse arquivo geralmente é uma coisa única por cliente ou eles continuarão recebendo arquivos no futuro?
Quais são as suas outras opções? Os arquivos Acrobat protegidos por senha são suficientes? Seria muito mais fácil bloquear: salvar, imprimir e copiar e colar.
Parece que você está reinventando a roda, mas eu não tenho todos os detalhes.
fonte
Eu fiz algumas pesquisas sobre o assunto, rastreando dados em mais de 10.000 instalações em todo o mundo para um aplicativo de desktop direcionado ao .Net Framework 3.5 sp1. Apenas um grupo (cerca de 10) não possui a estrutura adequada instalada. Eu removi o arquivo pesado de instalação da estrutura .net do instalador e ainda não notei nenhum problema.
Eu sugiro que você conduza o mesmo estudo em seu mercado e decida com base nos resultados, e não nas respostas que você pode obter em comunidades como esta.
fonte
Depende da sua demografia ...
Se eu quisesse que alguém [1] pudesse usá-lo, criaria um aplicativo de 32 bits que seria executado no Win98 e W7.
Isso provavelmente significa coisas em C ++ / MFC.
[1] Qualquer pessoa com uma máquina com menos de 12 anos que tenha uma conexão com a Internet executando o Windows 98 ou superior.
fonte
O .NET 4 agora faz parte da atualização do Windows (a KB foi emitida em julho de 2010). Desde que a máquina esteja atualizada nas atualizações do Windows, você tem quase certeza de que eles têm o .NET 4.
fonte
Se você sabe que 100% dos seus clientes não o possuem, por que você codificou o aplicativo com .net?
Você poderia usar o Java e criar um aplicativo de início na Web.
Mas, de fato, você pode agrupar a estrutura .net com o instalador. Se o Cliente confiar em você para instalar seu Aplicativo, ele também instalará .net.
fonte
Apenas verifique se o pacote que você envia contém uma dependência da versão necessária da estrutura. Em seguida, o gerenciador de pacotes que o usuário possui obterá a versão de estrutura necessária e a instalará antes do seu pacote.
Ah, o sistema operacional que você segmenta possui um sistema de gerenciamento de pacotes muito prejudicado, o que não pode fazer isso? Deve ser um sistema operacional ruim então. Bem, você tem apenas uma opção: exija essa estrutura instalada e forneça o link para o usuário fazer isso. Não vejo como os usuários se beneficiam, se uma parte notável do que os desenvolvedores fazem é dedicada à compatibilidade inútil com as ferramentas "padrão" do sistema operacional (esse tempo pode ser gasto para corrigir bugs e adicionar recursos).
fonte