Al giorno d'oggi è ragionevole assumere / richiedere il framework .NET?


24

Sfondo:

Ho un progetto in cui devo fornire all'utente un pacchetto di download contenente alcuni dati sensibili. I dati devono essere crittografati. Dopo averlo scaricato, devono essere in grado di visualizzarlo (nessuna modifica richiesta). Per questa domanda, approssimiamo i dati come una serie di file html statici. Poiché i dati sono sensibili, devono essere crittografati ogni volta che si trovano sul disco.

Stiamo pensando di fornire all'utente un'opzione di download che darebbe loro un file zip contenente due file:

  • Un file di dati (probabilmente utilizzeremo un file zip crittografato dietro le quinte) con i dati richiesti
  • Un'applicazione per visualizzare i dati che richiederebbero in modo appropriato una passphrase e gestiscono la decrittografia dei dati e la visualizzazione tramite un browser Web incorporato.

Dettagli aggiuntivi:

  • Gli utenti non sono sotto il nostro controllo. Sono consumatori.
  • Non siamo preoccupati per la multipiattaforma in questa domanda. Si tratta solo di Windows. Avremo un download separato per gli utenti Mac.

Vai alla domanda già:

Per l'applicazione che dobbiamo creare, stiamo discutendo internamente se è ragionevole che quell'app sia un'applicazione winforms .NET. Vogliamo un singolo .exe e vogliamo che il download sia ragionevolmente piccolo (ad es. 100k).

  • Osiamo usare il framework .NET (non abbiamo bisogno di usare una versione particolarmente recente di .NET - 2.0 andrebbe bene)?
  • È ragionevole supporre che la maggior parte dei consumatori abbia .NET sui propri computer ora a causa di Windows Update?
  • È ragionevole chiedere a quelli che non lo hanno di installarlo?

Sappiamo che non è installato .NET al 100% degli utenti. La vera domanda è se è ragionevole chiedere loro di averlo in questi tempi.

PS Qualcuno è a conoscenza di statistiche affidabili su quale percentuale di persone abbia già installato .NET?


Tieni presente che .NET deve essere sia un file installato che non corrotto / mancante.
GrandmasterB,

Non dimenticare di gestire gli utenti che si trovano su altri sistemi operativi oltre a Windows, ma che hanno .net?
HLGEM,

@HLGEM, come detto, avremo un download separato per gli utenti Mac che contiene un client nativo Mac simile. Gli utenti Linux non saranno in grado di utilizzare questo supporto opzionale per l'accesso ai dati offline e dovranno semplicemente visualizzare i dati online nel proprio browser web.
Erv Walter,

E i Mac?
JeffO,

Perso vedere quella parte.
HLGEM,

Risposte:


15

Per impostazione predefinita, Windows XP non include alcuna versione di .NET framework. Vista e Server 2008 includono .NET Framework 3.0, Windows 7 e Server 2008R2 includono .NET 3.5 e Windows 2000 non può supportare nulla al di sopra di .NET 2.0.

Con questo in mente, dipende dal sistema operativo diffuso nel tuo pubblico di destinazione. Vorrei elencare il requisito in modo evidente nella pagina di download e fornire un collegamento alla sezione Microsoft Update / Download per il download del framework, oltre al download dell'applicazione.


7

Non so se sia ragionevole chiedere loro di averlo o no. Tuttavia, so che i clienti sono spesso irragionevoli, quindi non vedo che sia importante. Se hai a che fare con un numero limitato di clienti, chiediglielo. Se hai a che fare con un numero di clienti superiore a quello che puoi ragionevolmente parlare, o hai intenzione di raccogliere clienti nel tempo, assicurati solo che vedano il requisito prima di acquistare.


7

Su quale versione di Windows utilizzano i tuoi utenti?

Se è Windows Vista avranno .NET 3 installato per impostazione predefinita e se è Windows 7 avranno la versione 3.5. Fonte .

Questo non aiuta se sono su XP, ma poiché Microsoft ha appena interrotto il supporto per SP2, dovrebbe essere su SP3.

Se usi qualcosa come "ClickOnce" (ci sono altri programmi di installazione disponibili) puoi rendere la versione pertinente del framework .NET un prerequisito e lo scaricherà e installerà per te - non è incluso nel tuo programma di installazione . Se sei preoccupato per le dimensioni del download, puoi andare su .NET 3.5 o 4 e creare il profilo client che è un download molto più piccolo, sebbene la versione .NET 4 sia più flessibile.


Chiunque nel pubblico in generale potrebbe essere un utente. Mi aspetto che avremo ancora gente su XP.
Erv Walter,

4

Qualche tempo fa ho letto alcuni post da Paint.NET sul processo di installazione e su come migliorarlo. Dai un'occhiata a questi due post di blog. Il primo descrive l'imbarazzo dell'installazione di .NET Framework separatamente; il secondo descrive come l'autore l'ha integrato come parte dell'installazione.

L'esperienza di installazione di Paint.NET - Parte 1, versione 3.xx (la vecchia cattiva strada)
L'esperienza di installazione di Paint.NET - Parte 2, versione 4.0 (la nuova buona via)

Quindi, anche se hai bisogno di .NET Framework e non sei sicuro che gli utenti lo abbiano, puoi almeno integrare la sua installazione con la tua app in modo ragionevolmente indolore.


3

Molti utenti aziendali non fanno parte dell'ultima versione di Windows (ancora su XP), ma penso che più utenti domestici abbiano effettuato l'aggiornamento a causa del nuovo hardware. Scaricare e installare è un po 'una seccatura. Questo file è in genere una tantum per client o continueranno a ricevere file in futuro?

Quali sono le tue altre opzioni? I file Acrobat protetti da password sono sufficienti? Sarebbe molto più facile da bloccare: salvare, stampare, copiare e incollare.

Sembra che tu stia reinventando la ruota, ma non ho tutti i dettagli.


I PDF crittografati potrebbero essere una soluzione praticabile e penso che sia più ragionevole assumere Acrobat Reader (almeno su Windows). Stiamo cercando di evitare di reinventare la ruota :) La soluzione ideale sarebbe solo un file zip crittografato, ma Windows non supporta la decrittografia dei file zip che utilizzano la crittografia AES e supponendo che le persone abbiano WinZip è molto più improbabile di .NET credo.
Erv Walter,

PS Sono in gran parte utenti domestici e riceveranno periodicamente file aggiornati (ovvero non solo download una tantum).
Erv Walter,

Penso che una soluzione .NET funzionerebbe. Gli utenti avrebbero Acrobat, ma non so se ci sono problemi di licenza da parte tua per creare i file codificati.
JeffO,

3

Ho fatto alcune ricerche sull'argomento monitorando i dati su oltre 10000 installazioni in tutto il mondo per un'applicazione desktop destinata a .Net Framework 3.5 sp1. Solo un gruppo (circa 10) non aveva il framework corretto installato. Ho rimosso il file di installazione del framework .net pesante dal programma di installazione e non ho ancora riscontrato alcun problema.

Ti consiglio vivamente di condurre lo stesso studio nel tuo mercato e di decidere in base ai risultati piuttosto che alle risposte che potresti ottenere su comunità come questa.


O probabilmente le persone che non hanno già installato .NET non si sono mai preoccupate del tuo programma. Potresti limitare la tua base di utenti, in particolare per i nuovi utenti, che non eseguono l'aggiornamento da una versione precedente del programma.
Lie Ryan,

Bugia, è esattamente per questo che devi condurre i tuoi studi PROPRI. La mia base di clienti è probabilmente molto diversa dalla tua. Le statistiche online non ti aiuteranno neanche.

No, ciò che intendevo è se conduci uno studio sulla tua base di clienti, o si stavano aggiornando (nel qual caso, hanno già .NET) o sono nuovi utenti (nel qual caso, hanno già imparato qualcosa sul tuo programma Requisiti). In entrambi i casi, è molto probabile che studiare la propria base di clienti sia distorta rispetto a .NET. È probabile che molti potenziali nuovi utenti vengano disattivati ​​quando leggono il programma richiesto .NET e cercano un'altra soluzione. Stai limitando la tua nuova base di clienti, se basi la tua decisione su quello.
Lie Ryan,

I 10.000 sono solo nuovi utenti che non sapevano nulla dei requisiti (non sono pubblicati, solo un link per il download di un eseguibile).

1

Dipende dai dati demografici ...

Se volessi che qualcuno [1] fosse in grado di usarlo, avrei creato un'app a 32 bit che sarebbe stata eseguita su Win98 e W7.

Ciò probabilmente significa roba C ++ / MFC.

[1] Chiunque abbia una macchina di età inferiore ai 12 anni con una connessione Internet che esegue Windows 98+.


Quindi "chiunque" non include utenti non Windows? -Sente triste che io non sono nessuno-
alternativa

@mathepic - l'interrogante ha già affermato chiaramente che questa domanda riguarda la distribuzione di Windows e che ci sono distribuzioni separate per Mac e Linux che non sta ponendo in questa domanda.
Carson63000,

1
O roba Delphi / VCL - ma usa una versione precedente. C / C ++ non è l'unica lingua nativa per Windows. O anche VB6 (mi dispiace giurare).
Gerry,

@Gerry: True. :) Negli ultimi 8 anni Delphi non avevo sentito parlare di banditi, quindi non sono abituato a pensarci.
Paul Nathan,

Infatti. Ci ho lavorato per 12 anni e trovo difficile trovare un lavoro a tempo indeterminato, il che è un peccato dato che ha visto molti miglioramenti (Unicode completo, generici, metodi anonimi (chiusure)) negli ultimi due anni,
Gerry,


-4

Se sai che il 100% dei tuoi clienti non ce l'ha, perché hai codificato l'applicazione con .net?

Avresti potuto usare Java e creare un'applicazione Web-Start.

In realtà, è possibile raggruppare il framework .net con il programma di installazione. Se il Cliente si fida che tu installi la tua Applicazione, installerà anche .net.


7
Un'applicazione di avvio Web Java richiederebbe Java che è altrettanto grave quanto richiedere .NET. E non possiamo includere .NET nel programma di installazione, il che renderebbe il download troppo grande. Come accennato, stiamo cercando un piccolo download (cioè 100k o meno).
Erv Walter,

Anche l'applicazione Java Web Start è lenta!
DL

Non hai scritto della dimensione di download di 100 KB.
ckuetbach,

Mi dispiace che non sia più esplicito (lo modificherò), ma è stato implicito da "e vogliamo che il download sia ragionevolmente piccolo".
Erv Walter,

-6

Assicurati solo che il pacchetto che spedisci contenga una dipendenza dalla versione richiesta del framework. Quindi il gestore dei pacchetti che l'utente avrà tirerà la versione del framework necessaria e la installerà prima del pacchetto.

Oh, il sistema operativo che scegli come target ha un sistema di gestione dei pacchetti molto paralizzato, che non può farlo? Dovrebbe essere un cattivo sistema operativo quindi. Bene, allora hai solo un'opzione: richiedi che questo framework sia installato e fornisci il collegamento all'utente per farlo. Non vedo i vantaggi per gli utenti, se una parte notevole di ciò che fanno gli sviluppatori è dedicata alla inutile compatibilità con strumenti del sistema "standard" (questa volta potrebbe essere speso per correggere bug e aggiungere funzionalità).


Per quanto vedo come questa risposta (alquanto veritiera) possa essere vista come FUD, non vedo nessuno che spieghi i voti negativi ...
alternativa

10
Spiegazione del mio downvote: Pavel non ha offerto assolutamente nulla di utile in risposta alla domanda, ha appena colto l'occasione per colpire Windows.
Carson63000,

1
Ancora meglio, usa un linguaggio che non richiede un enorme pool di librerie per produrre qualcosa di utile, ad esempio Delphi su Windows;)
Gerry

1
@Gerry, il punto è che gli sviluppatori vogliono usare un linguaggio che conoscono e trovare produttivo, che aumenterebbe la loro velocità di sviluppo e consentire di riutilizzare lo sforzo messo in queste librerie.
P:

1
Nel mondo di Delphi le librerie (commerciali e Open Source) sono normalmente installate solo sulle macchine di sviluppo - tutto (tranne OS e occasionali DLL fornite da terze parti) è compilato in un unico exe. Ma a volte le librerie OSS-C sono racchiuse in DLL da chiamare da Delphi
Gerry
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.