Sollte ich nur 32-Bit- oder sowohl 32- als auch 64-Bit-Versionen für Windows bereitstellen?

13

Ich habe eine plattformübergreifende Anwendung, die in einer kompilierten Sprache geschrieben ist.

  • Für Linux ist es üblich, dass sowohl amd64- als auch i386-Builds für Benutzer verfügbar sind, sodass der Benutzer eine Version auswählen kann, die für die aktuelle Umgebung geeignet ist.
  • Unter Mac ist es üblich, Universal Binary zu erstellen, sodass mehrere Versionen von Apple-Computern unterstützt werden können. Oder stellen Sie einfach eine 64-Bit-Version bereit, da alle aktuellen Apple-Computer eine 64-Bit-Architektur und ein 64-Bit-Betriebssystem verwenden.

Ich möchte die Benutzer nicht verwirren, indem ich sie frage: "Welche Architektur haben Sie?", Aber die Bereitstellung von nur 32-Bit ist eine schlechte Idee, da dieses Programm einige 64-Bit-Optimierungsmagie verwendet und auf diesen Computern viel schneller ausgeführt wird.

Meine Ideen:

  • Installieren Sie sowohl die 32- als auch die 64-Bit-Version der Anwendung und wählen Sie diese zur Laufzeit aus. (Erfordert Wrapper, daher ist es schwierig, eine Click-and-Launch-Anwendung (wie uTorrent) zu erstellen.)
  • Ermitteln Sie die Architektur mithilfe User-agentder Website, damit der Benutzer die entsprechende Version automatisch herunterladen kann (und einen Link zu "alternativen Versionen" erstellen kann). (Es ist im Google Chrome-Stil)
  • Benutzer zur Verwendung einer 32-Bit-Anwendung zwingen und die 64-Bit-Version als "Nur für Experten" festlegen? (wie VLC)

Was soll ich in Windows tun?

Alexander Shishenko
quelle
Profitiert Ihre Anwendung von einem 64-Bit-Prozess?
CodesInChaos
Ja, es wird eine kryptografische Bibliothek verwendet, die in 64-Bit schneller ausgeführt wird.
Alexander Shishenko
Wie viel schneller?
Robert Harvey,
2
Gibt es in Visual Studio keine AnyCPU-Build-Option? blogs.microsoft.co.il/sasha/2012/04/04/…
Robert Harvey
1
Ich hätte erwähnen sollen, dass kompiliert Native-Code ist (ich schreibe in C ++, ohne C ++ / CLI-Erweiterungen), nicht .NET.
Alexander Shishenko

Antworten:

16

Ich glaube nicht, dass es für den Endbenutzer sehr komplex ist, beim Herunterladen entweder eine 32-Bit- oder eine 64-Bit-Option zu wählen. Wenn Sie jedoch die User-Agent-Zeichenfolgen verwenden können, um einen Vorschlag zu unterbreiten, umso besser.

Eine andere Möglichkeit besteht darin, dass Ihr Installationsprogramm die richtige Binärdatei für die Plattform des Benutzers erkennt und installiert. Das führt zu einem größeren Download, aber dann muss der Benutzer nicht mehr darüber nachdenken. Wenn Sie diesen Ansatz wählen, möchten Sie dem Benutzer eine Möglichkeit bieten, die Erkennung zu überschreiben, falls er aus irgendeinem Grund einen bestimmten Build benötigt.

GroßmeisterB
quelle
7
Wenn Ihre Benutzer nicht technisch sind, werfen Sie große Worte auf sie (kein Wortspiel beabsichtigt).
user253751
3
@GrandmasterB Nicht-technische Benutzer würden den Unterschied zwischen einer 32-Bit-Version und einer 64-Bit-Version nicht kennen und würden nicht wissen, welche sie benötigen.
Philipp
3
@Philipp Das Problem lässt sich leicht lösen, indem zwei einfache Ausdrücke hinzugefügt werden, z.
5gon12eder,
1
@Philipp: nein, ganz im Gegenteil (für die zweite Option). Das Installationsprogramm wählt automatisch die richtige Version aus, ohne dass technische Details angezeigt werden müssen. Möglicherweise gibt es eine Schaltfläche "Erweiterte Installationsoption" (aber solange der Benutzer nicht darauf drückt, wird nichts wie eine 32- oder 64-Bit-Version angezeigt.
Doc Brown
1
@ 5gon12eder Tatsächlich funktioniert die 64-Bit-Version in den meisten Fällen einwandfrei. Werfen wir einen Blick auf Steam Survey-Statistiken . Es zeigt, dass auf über 83% der Windows-Computer ein 64-Bit-Betriebssystem ausgeführt wird.
Alexander Shishenko
7

Stellen Sie zunächst fest, ob die Verwendung einer 64-Bit-Version jemals von Vorteil ist:

  • Könnte der verarbeitete Datensatz jemals groß genug sein, um einen 64-Bit-Adressraum zu benötigen?
  • Ist die 64-Bit-Version jemals effizienter oder schneller?
  • Gibt es Interoperabilitätsszenarien, die sich auf die Bitness Ihres Programms auswirken? Eine Änderung der Benutzeroberfläche, um sie unempfindlich gegen Bitness zu machen, ist keine Option, und die Bitness kann sowieso nicht von Ihnen vorgegeben werden.

Wenn die Antwort "Nein" lautet, sollten Sie erwägen, überhaupt keine 64-Bit-Version zu verwenden.

Wenn die Verwendung von 64-Bit einen greifbaren Vorteil hat, wenn Sie können:
Machen Sie es Ihren Benutzern so angenehm wie möglich, ohne diejenigen, die es wissen, unangemessen zu bestrafen.

  • Stellen Sie einen einzelnen Download bereit, wenn dies nicht zu viel Overhead bedeutet, wodurch standardmäßig die beste Version installiert wird (erlauben Sie das Überschreiben mit einer Befehlszeilenoption oder dergleichen für Experten, die 32-Bit auf 64-Bit aufbauen möchten).
  • Andernfalls stellen Sie beide separate Downloads bereit (wenn der potenzielle Vorteil der Verwendung von 64-Bit gering genug ist, verbergen Sie diesen ein wenig).
  • Sie könnten zwar einen Downloader für die Auswahl und den Download nur der benötigten Teile bereitstellen, der die Downloadgröße möglicherweise um Größenordnungen verringern kann, wenn riesige optionale Teile vorhanden sind. Markieren Sie dies jedoch als einen Online-Installer und verlinken Sie auch zu einem Offline-Installer.
    (Sie können (und sollten wahrscheinlich) zulassen, dass das, was heruntergeladen wird, erneut verwendet wird. Sie können auch alles herunterladen, zumindest wenn Sie kein vollständiges Offline-Installationsprogramm bereitstellen.)
Deduplizierer
quelle
4

Heutzutage neigen Menschen und Websites dazu, sich selbst darum zu kümmern und dem Benutzer zu überlassen, ob er dies möchte . Die Verwendung von User-agentSaiten ist also ein guter Weg. IMO, das auch Ihre Anwendung und Site professioneller macht (Leute mögen Dinge mehr, wenn sie in der Lage sind, entsprechende Anpassungen selbst vorzunehmen).

Das Platzieren eines Versionsauswahllinks / einer Versionsauswahl ist gut, da einige Experten oder Personen, die eine andere Version erhalten möchten , diesen Link abrufen können.

Sie können auch eine Kurznotiz auf der Seite für die Versionsauswahl platzieren (ähnlich der hier ), in der erläutert wird, wie die Benutzer den Betriebssystemtyp überprüfen können (auch als Rechtsklick bezeichnet Computerund Eigenschaften auswählen, bla bla ...), damit neugierige Menschen dies überprüfen und sicher sein können Das, was Sie anbieten, ist die richtige Version.

Betriebssystemtyp

Gefallener Engel
quelle
3

Habe einen 32bit Installer, der die ausführbare Datei nicht enthält. Lassen Sie es die Zielplattform erkennen, auf der es ausgeführt wird, und lädt dann die richtige Binärdatei von Ihrem Server herunter.

Philipp
quelle
3
Wenn Sie dies tun, stellen Sie sicher, dass Sie auch die aktuellen endgültigen Versionen haben, die Experten direkt herunterladen können. Viele professionelle IT-Mitarbeiter bevorzugen es, eine Offline-Installation einzurichten (z. B. damit eine Installation später genau reproduzierbar ist).
Jules
2
@Jules Ein weiterer Anwendungsfall sind nicht verbundene Maschinen. Selbst im Jahr 2015 hat nicht jede Maschine direkten Zugang zum öffentlichen Internet.