É razoável assumir / exigir a estrutura .NET atualmente?

24

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?

Erv Walter
fonte
Lembre-se de que o .NET precisa estar instalado e não arquivos corrompidos / ausentes.
GrandmasterB
Não se esqueça de lidar com usuários que estão em outros sistemas operacionais além do Windows, se eles tiverem .net?
HLGEM
@HLGEM, como mencionado, teremos um download separado para usuários de Mac que contém um cliente nativo semelhante ao Mac. Os usuários do Linux simplesmente não poderão usar esse suporte opcional para acesso a dados offline e terão que apenas visualizar os dados online em seu navegador.
Erv Walter
E os Macs?
JeffO
Senti falta de ver essa parte.
HLGEM

Respostas:

15

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.

Adam Lear
fonte
7

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.

David Thornley
fonte
7

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.

ChrisF
fonte
Qualquer pessoa do público em geral pode ser um usuário. Eu esperava que ainda tivéssemos algumas pessoas no XP.
Erv Walter #
4

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.

Kyralessa
fonte
3

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.

JeffO
fonte
PDFs criptografados podem ser uma solução viável, e acho mais razoável assumir o acrobat reader (pelo menos no Windows). Estamos tentando evitar a reinvenção da roda :) A solução ideal seria apenas um arquivo zip criptografado, mas o Windows não suporta descriptografar arquivos zip que usam criptografia AES e presumir que as pessoas tenham o WinZip é muito mais improvável que o .NET.
quer
PS São basicamente usuários domésticos e eles receberão arquivos atualizados periodicamente (ou seja, não apenas o download único).
precisa
Eu acho que uma solução .NET funcionaria. Os usuários teriam o Acrobat, mas não sei se existem problemas de licenciamento para criar os arquivos criptografados.
JeffO
3

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
Ou provavelmente as pessoas que ainda não possuem um .NET instalado nunca se incomodaram com o seu programa. Você pode estar limitando sua própria base de usuários, especialmente para novos usuários que não estão atualizando de uma versão anterior do seu programa.
Lie Ryan
Mentira, é exatamente por isso que você precisa realizar seus próprios estudos. Minha base de clientes é provavelmente muito diferente da sua. As estatísticas online também não o ajudarão.
Não, o que eu quis dizer é que se você realiza um estudo com base em seus próprios clientes, eles estão atualizando (nesse caso, eles já têm o .NET) ou são novos usuários (nesse caso, eles já aprenderam sobre o programa) requerimento). De qualquer forma, é muito provável que estudar sua própria base de clientes seja desviado para o .NET. É provável que muitos novos usuários em potencial sejam desativados quando lerem o seu programa exigido .NET e procurar outra solução. Você está limitando sua própria base de novos clientes, se basear sua decisão nisso.
Lie Ryan
Os 10.000 são apenas novos usuários que não sabiam nada sobre requisitos (eles não são publicados, apenas um link de download para um executável).
1

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.

Paul Nathan
fonte
Então "qualquer pessoa" não inclui usuários que não são do Windows? sente-se triste por não ser ninguém-
alternativa
@mathepic - o interlocutor já afirmou claramente que esta pergunta se refere à distribuição do Windows e que existem distribuições separadas para Mac e Linux sobre as quais ele não está se perguntando.
Carson63000
11
Ou coisas Delphi / VCL - mas use uma versão mais antiga. C / C ++ não é a única linguagem nativa para Windows. Ou mesmo VB6 (desculpe jurar).
Gerry
@ Greg: Verdade. :) Eu apenas não tinha ouvido Delphi fazer bandas nos últimos 8 anos, então não estou acostumado a pensar nisso.
Paul Nathan
De fato. Eu trabalho com ele há 12 anos e acho difícil encontrar emprego permanente, o que é uma pena, pois ele viu muitos aprimoramentos (Unicode completo, genéricos, métodos anônimos (fechamentos)) nos últimos dois anos,
Gerry
-4

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.

ckuetbach
fonte
7
Um aplicativo Java Web Start requer Java, que é tão ruim quanto exigir .NET. E não podemos incluir o .NET no instalador, o que tornaria o download muito grande. Como mencionado, estamos procurando um pequeno download (ou seja, 100k ou menos).
precisa
O aplicativo Java web start também é lento!
DL
Você não escreveu sobre o tamanho de download de 100K.
ckuetbach
Desculpe por não ser mais explícito (editarei), mas estava implícito por "e queremos que o download seja razoavelmente pequeno".
Erv Walter
-6

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).

P Shved
fonte
Por mais que eu veja como essa resposta (um tanto verdadeira) pode ser vista como FUD, não vejo ninguém explicando votos negativos ...
alternativa
10
Explicação do meu voto negativo: Pavel não ofereceu absolutamente nada de útil em resposta à pergunta, apenas aproveitou a oportunidade para bater o Windows.
Carson63000
11
Melhor ainda, usar uma linguagem que não requer uma enorme piscina de bibliotecas para produzir qualquer coisa vale a pena, por exemplo, Delphi no Windows;)
Gerry
11
@Gerry, o ponto principal é que os desenvolvedores querem usar uma linguagem que conhecem e consideram produtiva, o que aumentaria sua velocidade de desenvolvimento e permitiria reutilizar o esforço feito nessas bibliotecas.
usar o seguinte
11
No mundo Delphi, as bibliotecas (comercial e Open Source) normalmente são instaladas apenas nas máquinas de desenvolvimento - tudo (exceto o SO e DLLs fornecidas ocasionalmente por terceiros) é compilado em um único exe. Mas, por vezes, bibliotecas OSS-C são embrulhados em DLLs para chamar de Delphi
Gerry