Ist es heutzutage sinnvoll, das .NET-Framework anzunehmen / zu fordern?

24

Hintergrund:

Ich habe ein Projekt, in dem ich dem Benutzer ein Download-Paket mit vertraulichen Daten zur Verfügung stellen muss. Die Daten müssen verschlüsselt werden. Nachdem sie es heruntergeladen haben, müssen sie es anzeigen können (keine Bearbeitung erforderlich). Für diese Frage wollen wir die Daten als eine Reihe statischer HTML-Dateien approximieren. Da die Daten vertraulich sind, müssen sie jedes Mal verschlüsselt werden, wenn sie sich auf der Festplatte befinden.

Wir überlegen, dem Benutzer eine Download-Option zur Verfügung zu stellen, mit der er eine Zip-Datei mit zwei Dateien erhalten kann:

  • Eine Datendatei (wir würden wahrscheinlich eine verschlüsselte Zip-Datei hinter den Kulissen verwenden) mit den Daten, nach denen sie gefragt haben
  • Eine Anwendung zum Anzeigen der Daten, die zur Eingabe einer Passphrase auffordert, die Daten entschlüsselt und über einen eingebetteten Webbrowser anzeigt.

Zusätzliche Details:

  • Benutzer sind nicht unter unserer Kontrolle. Sie sind Verbraucher.
  • Plattformübergreifend machen wir uns in dieser Frage keine Sorgen. Hier geht es nur um Windows. Für Mac-Benutzer wird ein separater Download angeboten.

Kommen Sie schon auf die Frage:

Für diese Anwendung, die wir erstellen müssen, wird intern diskutiert, ob es sinnvoll ist, dass diese Anwendung eine .NET-Winforms-Anwendung ist. Wir möchten eine einzelne EXE-Datei und einen relativ kleinen Download (z. B. 100 KB).

  • Können wir es wagen, das .NET-Framework zu verwenden (wir müssen keine besonders aktuelle Version von .NET verwenden - 2.0 wäre in Ordnung)?
  • Ist es vernünftig anzunehmen, dass die meisten Verbraucher aufgrund von Windows Update .NET auf ihren Rechnern haben?
  • Ist es sinnvoll, diejenigen zu fragen, die es nicht haben, um es zu installieren?

Wir wissen, dass nicht 100% der Benutzer .NET installiert haben. Die eigentliche Frage ist, ob es vernünftig ist , sie in der heutigen Zeit darum zu bitten.

PS Kennt jemand verlässliche Statistiken darüber, wie viel Prozent der Nutzer .NET bereits installiert haben?

Erv Walter
quelle
Denken Sie daran, .NET muss installiert sein und darf keine beschädigten / fehlenden Dateien enthalten.
GrandmasterB
Vergessen Sie nicht, Benutzer zu behandeln, die andere Betriebssysteme als Windows verwenden. Haben sie .net?
HLGEM 05.10.10
@HLGEM, wie bereits erwähnt, wird es für Mac-Benutzer einen separaten Download geben, der einen ähnlichen nativen Mac-Client enthält. Linux-Benutzer können diese optionale Unterstützung nur für den Offline-Datenzugriff verwenden und müssen die Daten nur online in ihrem Webbrowser anzeigen.
Erv Walter
Was ist mit Macs?
JeffO
Verpasst, diesen Teil zu sehen.
HLGEM 05.10.10

Antworten:

15

Standardmäßig enthält Windows XP keine Version von .NET Framework. Vista und Server 2008 enthalten .NET Framework 3.0, Windows 7 und Server 2008 R2 enthalten .NET 3.5, und Windows 2000 unterstützt keine höheren Versionen als .NET 2.0.

In diesem Sinne kommt es auf das Betriebssystem an, das in Ihrer Zielgruppe verbreitet ist. Ich würde die Anforderung auf der Downloadseite an prominenter Stelle aufführen und zusätzlich zu Ihrem Anwendungs-Download einen Link zum Abschnitt Microsoft Update / Downloads für den Framework-Download bereitstellen.

Adam Lear
quelle
7

Ich weiß nicht, ob es vernünftig ist, sie darum zu bitten oder nicht. Ich weiß jedoch, dass Kunden oft unvernünftig sind, und sehe daher keine, dass es darauf ankommt. Wenn Sie mit einer begrenzten Anzahl von Kunden zu tun haben, fragen Sie diese. Wenn Sie mit mehr Kunden zu tun haben, als Sie vernünftigerweise ansprechen können, oder wenn Sie im Laufe der Zeit Kunden abholen, stellen Sie sicher, dass diese die Anforderungen kennen, bevor Sie kaufen.

David Thornley
quelle
7

Auf welcher Windows-Version arbeiten Ihre Benutzer?

Unter Windows Vista ist standardmäßig .NET 3 installiert, unter Windows 7 Version 3.5. Quelle .

Das hilft nicht, wenn sie auf XP sind, aber da Microsoft gerade die Unterstützung für SP2 eingestellt hat, sollten sie auf SP3 sein.

Wenn Sie so etwas wie "ClickOnce" verwenden (es stehen andere Installationsprogramme zur Verfügung), können Sie die entsprechende Version des .NET-Frameworks als Voraussetzung festlegen. Es wird heruntergeladen und für Sie installiert - es ist nicht in Ihrem Installationsprogramm enthalten . Wenn Sie sich Sorgen über die Größe des Downloads machen, können Sie .NET 3.5 oder 4 verwenden und das Client-Profil erstellen, bei dem es sich um einen viel kleineren Download handelt, obwohl die .NET 4-Version flexibler ist.

ChrisF
quelle
Jeder in der Öffentlichkeit kann ein Benutzer sein. Ich würde erwarten, dass wir noch ein paar Leute auf XP haben werden.
Erv Walter
4

Vor einiger Zeit las ich einige Beiträge von Paint.NET über den Installationsprozess und wie man ihn verbessern kann. Schauen Sie sich diese beiden Blogeinträge an. Die erste beschreibt die Ungeschicklichkeit der separaten Installation von .NET Framework. Die zweite beschreibt, wie der Autor sie als Teil der Installation integriert hat.

Die Paint.NET-Installationserfahrung - Teil 1, Version 3.xx (der alte schlechte Weg)
Die Paint.NET-Installationserfahrung - Teil 2, Version 4.0 (der neue gute Weg)

Selbst wenn Sie .NET Framework benötigen und nicht sicher sind, ob die Benutzer es haben, können Sie die Installation zumindest auf eine einigermaßen schmerzfreie Weise in Ihre App integrieren.

Kyralessa
quelle
3

Viele Firmenbenutzer verwenden nicht die neueste Version von Windows (noch immer auf XP), aber ich denke, dass mehr Privatbenutzer aufgrund neuer Hardware ein Upgrade durchgeführt haben. Das Herunterladen und Installieren ist ein bisschen mühsam. Ist diese Datei normalerweise eine einmalige Angelegenheit pro Client oder werden sie auch in Zukunft Dateien erhalten?

Was sind Ihre anderen Möglichkeiten? Sind kennwortgeschützte Acrobat-Dateien ausreichend? Es wäre viel einfacher zu blockieren: Speichern, Drucken, Kopieren und Einfügen.

Scheint, als würdest du das Rad neu erfinden, aber ich habe nicht alle Einzelheiten.

JeffO
quelle
Verschlüsselte PDFs könnten eine praktikable Lösung sein, und ich halte es für sinnvoller, Acrobat Reader anzunehmen (zumindest unter Windows). Wir versuchen zu vermeiden, das Rad neu zu erfinden :) Die ideale Lösung wäre nur eine verschlüsselte Zip-Datei, aber Windows unterstützt das Entschlüsseln von Zip-Dateien, die AES-Verschlüsselung verwenden, nicht und unter der Annahme, dass Leute WinZip verwenden, ist meiner Meinung nach viel unwahrscheinlicher als .NET.
Erv Walter
PS: Es handelt sich hauptsächlich um Privatanwender, die regelmäßig aktualisierte Dateien erhalten (dh nicht nur einen einmaligen Download).
Erv Walter
Ich denke, eine .NET-Lösung würde funktionieren. Benutzer hätten Acrobat, aber ich weiß nicht, ob es auf Ihrer Seite Lizenzprobleme beim Erstellen der verschlüsselten Dateien gibt.
JeffO
3

Zu diesem Thema habe ich einige Nachforschungen angestellt, indem ich Daten zu über 10000 Installationen auf der ganzen Welt für eine Desktop-Anwendung mit dem Ziel .Net Framework 3.5 sp1 nachverfolgt habe. Nur ein Haufen (ungefähr 10) hatte nicht das richtige Framework installiert. Ich habe die schwere .net Framework-Installationsdatei aus dem Installationsprogramm entfernt und noch kein Problem festgestellt.

Ich empfehle Ihnen dringend, die gleiche Studie in Ihrem Markt durchzuführen und basierend auf den Ergebnissen zu entscheiden, anstatt auf Antworten, die Sie in solchen Communities erhalten könnten.


quelle
Oder wahrscheinlich haben sich Leute, die noch kein .NET installiert haben, nie mit Ihrem Programm befasst. Sie können Ihre eigene Benutzerbasis einschränken, insbesondere für neue Benutzer, die kein Upgrade von einer früheren Version Ihres Programms durchführen.
Lie Ryan
Lüge, genau deshalb musst du deine EIGENEN Studien durchführen. Mein Kundenstamm unterscheidet sich wahrscheinlich erheblich von Ihrem. Online-Statistiken helfen Ihnen auch nicht.
Nein, ich meinte, wenn Sie eine Studie auf Ihrer eigenen Kundenbasis durchführen, entweder während des Upgrades (in diesem Fall haben sie bereits .NET) oder als neue Benutzer (in diesem Fall haben sie bereits etwas über Ihr Programm gelernt) Anforderung). In jedem Fall ist es sehr wahrscheinlich, dass das Studium Ihrer eigenen Kundenbasis in Richtung .NET verzerrt ist. Viele potenzielle neue Benutzer werden wahrscheinlich deaktiviert, wenn sie das für Ihr Programm erforderliche .NET lesen, und suchen nach einer anderen Lösung. Sie begrenzen Ihre eigene Neukundenbasis, wenn Sie Ihre Entscheidung darauf gründen.
Lie Ryan
Die 10.000 sind nur neue Benutzer, die nichts über Anforderungen wussten (sie werden nicht veröffentlicht, nur ein Download-Link zu einer ausführbaren Datei).
1

Hängt von Ihrer Demografie ab ...

Wenn ich wollte , dass jemand [1] es verwenden kann, würde ich eine 32-Bit-App entwickeln, die unter Win98 und W7 ausgeführt werden kann.

Das bedeutet wahrscheinlich C ++ / MFC-Zeug.

[1] Jeder mit einem Computer, der jünger als 12 Jahre ist und über eine Internetverbindung verfügt, auf der Windows 98+ ausgeführt wird.

Paul Nathan
quelle
Also schließt "jemand" keine Nicht-Windows-Benutzer ein? -fühlt sich traurig an, dass ich niemand bin-
Alternative
@mathepic - Der Fragesteller hat bereits deutlich gemacht, dass diese Frage die Windows-Distribution betrifft und dass es separate Mac- und Linux-Distributionen gibt, nach denen er in dieser Frage nicht fragt.
Carson63000
1
Oder Delphi / VCL-Zeug - aber benutze eine ältere Version. C / C ++ ist nicht die einzige Muttersprache für Windows. Oder sogar VB6 (tut mir leid zu schwören).
Gerry
@ Gerry: Stimmt. :) Ich hatte Delphi in den letzten 8 Jahren nur selten gehört, deshalb bin ich es nicht gewohnt, daran zu denken.
Paul Nathan
Tatsächlich. Ich habe seit 12 Jahren mit ihm gearbeitet, und ich finde es schwer dauerhafte Beschäftigung zu finden, was schade ist , da es viele Erweiterungen (volle Unicode, Generika, anonyme Methoden (Verschlüsse)) in den letzten paar Jahren gesehen hat,
Gerry
0

.NET 4 ist jetzt Teil des Windows-Updates (die KB wurde im Juli 2010 veröffentlicht). Solange der Computer über die Windows-Updates auf dem Laufenden ist, haben Sie so gut wie die Garantie, dass .NET 4 installiert ist.

Muad'Dib
quelle
-4

Wenn Sie wissen, dass es 100% Ihrer Kunden nicht gibt, warum haben Sie die Anwendung mit .net codiert?

Sie hätten Java verwenden und eine Web-Start-Anwendung erstellen können.

Tatsächlich können Sie das .net-Framework jedoch mit dem Installationsprogramm bündeln. Wenn der Kunde Ihnen bei der Installation Ihrer Anwendung vertraut, installiert er auch .net.

ckuetbach
quelle
7
Eine Java-Webstartanwendung würde Java erfordern, was genauso schlecht ist wie .NET. Und wir können .NET nicht in das Installationsprogramm aufnehmen, da dies den Download zu groß machen würde. Wie bereits erwähnt, suchen wir einen kleinen Download (dh 100k oder weniger).
Erv Walter
Java Web Start-Anwendung ist auch langsam!
DL
Sie haben nicht über die 100K-Downloadgröße geschrieben.
ckuetbach
Es tut mir leid, dass dies nicht expliziter ist (ich werde es bearbeiten), aber es wurde impliziert durch "und wir möchten, dass der Download einigermaßen klein ist."
Erv Walter
-6

Stellen Sie einfach sicher, dass das von Ihnen gelieferte Paket eine Abhängigkeit von der erforderlichen Version des Frameworks enthält. Anschließend ruft der Paketmanager, den der Benutzer hat, die erforderliche Framework-Version ab und installiert sie vor Ihrem Paket.

Oh, das Betriebssystem, auf das Sie abzielen, hat ein sehr verkrüppeltes Paketverwaltungssystem, das dies nicht kann? Es sollte dann ein schlechtes Betriebssystem sein. Nun, dann haben Sie nur eine Option: Sie müssen dieses Framework installiert haben und den Link für den Benutzer bereitstellen, um dies zu tun. Ich sehe keinen Nutzen für die Benutzer, wenn ein merklicher Teil der Arbeit der Entwickler auf die unbrauchbare Kompatibilität mit "Standard" -Tools des Betriebssystems gerichtet ist (diese Zeit könnte stattdessen für die Behebung von Fehlern und das Hinzufügen von Funktionen verwendet werden).

P Shved
quelle
So sehr ich sehe, wie diese (etwas wahrheitsgemäße) Antwort als FUD angesehen werden kann, ich sehe niemanden, der Ablehnungen erklärt ...
Alternative
10
Erklärung meiner Ablehnung: Pavel bot absolut nichts Hilfsbereites zur Beantwortung der Frage an, ergriff nur die Gelegenheit, Windows zu schlagen.
Carson63000
1
Verwenden Sie eine Sprache, die keinen großen Bibliothekspool benötigt, um etwas Wertvolles zu produzieren, z. B. Delphi unter Windows;)
Gerry
1
@Gerry, der springende Punkt ist, dass Entwickler eine Sprache verwenden möchten, die sie kennen und für produktiv halten, was ihre Entwicklungsgeschwindigkeit steigern und es ihnen ermöglichen würde, den Aufwand, der in diese Bibliotheken gesteckt wird, wiederzuverwenden.
P Shved
1
In der Delphi-Welt werden Bibliotheken (kommerziell und Open Source) normalerweise nur auf den Entwicklungsmaschinen installiert - alles (außer Betriebssystem und gelegentlich von Drittanbietern bereitgestellte DLLs) wird in einer einzigen Exe kompiliert. Aber manchmal werden OSS-C-Bibliotheken in DLLs eingeschlossen, um von Delphi
Gerry