Est-il raisonnable de supposer / exiger le framework .NET de nos jours?


24

Contexte:

J'ai un projet où je dois fournir à l'utilisateur un package de téléchargement contenant des données sensibles. Les données doivent être cryptées. Après l'avoir téléchargé, ils doivent pouvoir le visualiser (aucune modification requise). Pour cette question, rapprochons les données sous la forme d'une série de fichiers html statiques. Parce que les données sont sensibles, elles doivent être chiffrées chaque fois qu'elles se trouvent sur le disque.

Nous pensons proposer à l'utilisateur une option de téléchargement qui lui donnerait un fichier zip contenant deux fichiers:

  • Un fichier de données (nous utiliserions probablement un fichier zip crypté dans les coulisses) avec les données demandées
  • Une application pour afficher les données qui inviteraient de manière appropriée une phrase secrète et gérerait le décryptage des données et leur affichage via un navigateur Web intégré.

Détails supplémentaires:

  • Les utilisateurs ne sont pas sous notre contrôle. Ce sont des consommateurs.
  • Nous ne sommes pas inquiets de multiplateforme dans cette question. Il s'agit juste de Windows. Nous aurons un téléchargement séparé pour les utilisateurs Mac.

Obtenez déjà à la question:

Pour cette application que nous devons créer, nous discutons en interne s'il est raisonnable que cette application soit une application WinNETs .NET. Nous voulons un seul .exe, et nous voulons que le téléchargement soit raisonnablement petit (par exemple 100k).

  • Oserons-nous utiliser le framework .NET (nous n'avons pas besoin d'utiliser une version particulièrement récente de .NET - 2.0 serait bien)?
  • Est-il raisonnable de supposer que la plupart des consommateurs ont désormais .NET sur leurs machines en raison de Windows Update?
  • Est-il raisonnable de demander à ceux qui ne l'ont pas de l'installer?

Nous savons que pas 100% des utilisateurs auront installé .NET. La vraie question est de savoir s'il est raisonnable de leur demander de l'avoir de nos jours.

PS Quelqu'un connaît-il des statistiques fiables sur le pourcentage de personnes qui ont déjà installé .NET?


Gardez à l'esprit que .NET doit être à la fois installé et non corrompu / manquant.
GrandmasterB

N'oubliez pas de gérer les utilisateurs qui sont sur d'autres systèmes d'exploitation que Windows, s'ils ont .net?
HLGEM

@HLGEM, comme mentionné, nous aurons un téléchargement séparé pour les utilisateurs Mac qui contient un client natif Mac similaire. Les utilisateurs de Linux ne pourront tout simplement pas utiliser cette prise en charge facultative pour l'accès aux données hors ligne et devront simplement visualiser les données en ligne dans leur navigateur Web.
Erv Walter

Et les Mac?
JeffO

Manqué de voir cette partie.
HLGEM

Réponses:


15

Par défaut, Windows XP n'inclut aucune version du framework .NET. Vista et Server 2008 incluent .NET Framework 3.0, Windows 7 et Server 2008R2 incluent .NET 3.5 et Windows 2000 ne peut rien prendre en charge au-dessus de .NET 2.0.

Dans cet esprit, cela se résume à la propagation du système d'exploitation dans votre public cible. Je voudrais énumérer l'exigence bien en évidence sur la page de téléchargement et fournir un lien vers la section Microsoft Update / Downloads pour le téléchargement du cadre, en plus du téléchargement de votre application.


7

Je ne sais pas s'il est raisonnable de leur demander de l'avoir ou non. Cependant, je sais que les clients sont souvent déraisonnables, donc je ne vois pas que cela importe. Si vous avez affaire à un nombre limité de clients, demandez-leur. Si vous traitez avec plus de clients que vous ne pouvez raisonnablement en parler, ou si vous allez chercher des clients au fil du temps, assurez-vous qu'ils voient l'exigence avant d'acheter.


7

Sur quelle version de Windows sont vos utilisateurs?

Si c'est Windows Vista, ils auront .NET 3 installé par défaut et si c'est Windows 7, ils auront la version 3.5. Source .

Cela n'aide pas s'ils sont sous XP, mais comme Microsoft vient d'arrêter la prise en charge de SP2, ils devraient être sur SP3.

Si vous utilisez quelque chose comme "ClickOnce" (il existe d'autres programmes d'installation disponibles), vous pouvez faire de la version appropriée du framework .NET une condition préalable et il la téléchargera et l'installera pour vous - elle n'est pas incluse dans votre programme d'installation . Si vous êtes préoccupé par la taille du téléchargement, vous pouvez aller à .NET 3.5 ou 4 et créer le profil client qui est un téléchargement beaucoup plus petit, bien que la version .NET 4 soit plus flexible.


N'importe qui dans le grand public peut être un utilisateur. Je m'attends à ce que nous ayons encore des gens sous XP.
Erv Walter

4

Il y a quelque temps, j'ai lu quelques articles de Paint.NET sur le processus d'installation et comment l'améliorer. Jetez un œil à ces deux entrées de blog. Le premier décrit l'inconvénient d'installer séparément le .NET Framework; le second décrit comment l'auteur l'a intégré dans le cadre de l'installation.

L'expérience d'installation de Paint.NET - Partie 1, version 3.xx (l'ancienne mauvaise méthode)
L'expérience d'installation de Paint.NET - Partie 2, version 4.0 (la nouvelle bonne méthode)

Donc, même si vous allez avoir besoin du .NET Framework et que vous ne savez pas si les utilisateurs l'auront, vous pouvez au moins intégrer son installation à votre application d'une manière raisonnablement indolore.


3

De nombreux utilisateurs d'entreprise ne sont pas sur la dernière version de Windows (toujours sous XP), mais je pense que davantage d'utilisateurs à domicile ont mis à niveau en raison du nouveau matériel. Le téléchargement et l'installation sont un peu pénibles. Ce fichier est-il généralement une seule fois par client ou continuera-t-il d'obtenir des fichiers à l'avenir?

Quelles sont vos autres options? Les fichiers Acrobat protégés par mot de passe sont-ils suffisants? Il serait beaucoup plus facile de bloquer: enregistrer, imprimer, copier et coller.

On dirait que vous réinventez la roue, mais je n'ai pas tous les détails.


Les fichiers PDF cryptés pourraient être une solution viable, et je pense qu'il est plus raisonnable de supposer un lecteur acrobate (au moins sous Windows). Nous essayons d'éviter de réinventer la roue :) La solution idéale serait simplement un fichier zip crypté, mais Windows ne prend pas en charge le décryptage des fichiers zip qui utilisent le cryptage AES et en supposant que les gens ont WinZip est beaucoup plus improbable que .NET je pense.
Erv Walter

PS Il s'agit en grande partie d'utilisateurs à domicile et ils obtiendront périodiquement des fichiers mis à jour (c'est-à-dire pas seulement un téléchargement unique).
Erv Walter

Je pense qu'une solution .NET fonctionnerait. Les utilisateurs auraient Acrobat, mais je ne sais pas s'il y a des problèmes de licence de votre côté pour créer les fichiers cryptés.
JeffO

3

J'ai fait quelques recherches sur le sujet en suivant les données de plus de 10000 installations à travers le monde pour une application de bureau ciblant le .Net Framework 3.5 sp1. Seul un groupe (environ 10) n'avait pas le cadre approprié installé. J'ai supprimé le fichier d'installation du framework .net lourd du programme d'installation et je n'ai pas encore remarqué de problème.

Je vous suggère fortement de mener la même étude sur votre marché et de décider en fonction des résultats plutôt que des réponses que vous pourriez obtenir sur des communautés comme celle-ci.


Ou probablement que les gens qui n'ont pas déjà installé un .NET ne se sont jamais souciés de votre programme. Vous limitez peut-être votre propre base d'utilisateurs, en particulier pour les nouveaux utilisateurs, qui ne mettent pas à niveau une version précédente de votre programme.
Lie Ryan

Mensonge, c'est exactement pourquoi vous devez mener vos propres études. Ma clientèle est probablement très différente de la vôtre. Les statistiques en ligne ne vous aideront pas non plus.

Non, ce que je voulais dire, c'est que si vous menez une étude sur votre propre base de clients, soit ils effectuaient une mise à niveau (dans ce cas, ils ont déjà .NET), soit ils sont de nouveaux utilisateurs (dans ce cas, ils ont déjà entendu parler de votre programme exigence). Quoi qu'il en soit, l'étude de votre propre base de clients est très susceptible d'être biaisée vers l'utilisation de .NET. De nombreux nouveaux utilisateurs potentiels seront probablement désactivés lorsqu'ils liront votre programme .NET et recherchent une autre solution. Vous limitez votre propre base de nouveaux clients, si vous basez votre décision sur cela.
Lie Ryan

Les 10 000 ne sont que de nouveaux utilisateurs qui ne connaissaient rien aux exigences (ils ne sont pas publiés, juste un lien de téléchargement vers un exécutable).

1

Cela dépend de vos données démographiques ...

Si je voulais que quelqu'un [1] puisse l'utiliser, je créerais une application 32 bits qui fonctionnerait sur Win98 et W7.

Cela signifie probablement des choses C ++ / MFC.

[1] Toute personne possédant une machine de moins de 12 ans disposant d'une connexion Internet exécutant Windows 98+.


Donc, "n'importe qui" n'inclut pas les utilisateurs non Windows? -se triste que je ne sois personne-
alternative

@mathepic - l'interrogateur a déjà clairement indiqué que cette question concerne la distribution Windows et qu'il existe des distributions Mac et Linux distinctes qu'il ne demande pas dans cette question.
Carson63000,

1
Ou des trucs Delphi / VCL - mais utilisez une version plus ancienne. C / C ++ n'est pas la seule langue native pour Windows. Ou même VB6 (désolé de jurer).
Gerry

@Gerry: C'est vrai. :) Je n'avais pas entendu parler de Delphi au cours des 8 dernières années, donc je n'ai pas l'habitude d'y penser.
Paul Nathan du

Effectivement. Je travaille avec lui depuis 12 ans et j'ai du mal à trouver un emploi permanent, ce qui est dommage car il a vu de nombreuses améliorations (Unicode complet, génériques, méthodes anonymes (fermetures)) au cours des deux dernières années,
Gerry


-4

Si vous savez que 100% de vos clients ne l'ont pas, pourquoi avez-vous codé l'application avec .net?

Vous auriez pu utiliser Java et créer une application de démarrage Web.

Mais en fait, vous pouvez regrouper le framework .net avec le programme d'installation. Si le Client vous fait confiance pour installer votre Application, il installera également .net.


7
Une application de démarrage Web Java nécessiterait Java qui est tout aussi mauvais que nécessitant .NET. Et nous ne pouvons pas inclure .NET dans le programme d'installation, ce qui rendrait le téléchargement trop volumineux. Comme mentionné, nous recherchons un petit téléchargement (c'est-à-dire 100k ou moins).
Erv Walter

L'application de démarrage Web Java est également lente!
DL

Vous n'avez pas écrit sur la taille de téléchargement de 100 Ko.
ckuetbach

Désolé de ne pas être plus explicite (je vais modifier), mais cela a été sous-entendu par "et nous voulons que le téléchargement soit raisonnablement petit".
Erv Walter

-6

Assurez-vous simplement que le package que vous expédiez contient une dépendance à la version requise du framework. Ensuite, le gestionnaire de packages dont dispose l'utilisateur tirera la version de framework nécessaire et l'installera avant votre package.

Oh, le système d'exploitation que vous ciblez a un système de gestion de paquets très paralysé, qui ne peut pas faire cela? Ce devrait être un mauvais système d'exploitation. Eh bien, vous n'avez qu'une seule option: exiger que ce cadre soit installé et fournir le lien pour que l'utilisateur le fasse. Je ne vois pas comment les utilisateurs en bénéficient, si une partie notable de ce que font les développeurs est consacrée à une compatibilité inutile avec les outils de système d'exploitation "standard" (ce temps pourrait être consacré à la correction de bogues et à l'ajout de fonctionnalités à la place).


Autant que je vois comment cette réponse (quelque peu véridique) pourrait être considérée comme du FUD, je ne vois personne expliquer les votes négatifs ...
alternative

10
Explication de mon downvote: Pavel n'a offert absolument rien d'utile en réponse à la question, vient d'en profiter pour dénigrer Windows.
Carson63000

1
Encore mieux, utilisez un langage qui ne nécessite pas un énorme pool de bibliothèques pour produire quelque chose qui en vaille la peine, par exemple Delphi sur Windows;)
Gerry

1
@Gerry, le fait est que les développeurs veulent utiliser un langage qu'ils connaissent et trouvent productif, ce qui augmenterait leur vitesse de développement et permettrait de réutiliser l'effort mis dans ces bibliothèques.
P Shved

1
Dans le monde Delphi, les bibliothèques (commerciales et Open Source) ne sont normalement installées que sur les machines de développement - tout (autre que le système d'exploitation et les DLL fournies par des tiers occasionnels) est compilé en un seul exe. Mais parfois, les bibliothèques OSS-C sont enveloppées dans des DLL pour appeler de Delphi
Gerry
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.