Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Projektplanung und -Management (https://www.delphipraxis.net/85-projektplanung-und-management/)
-   -   Release als "Single executable" oder mehrere Dateien? (https://www.delphipraxis.net/168434-release-als-single-executable-oder-mehrere-dateien.html)

Pentium 80486 21. Mai 2012 17:07

Release als "Single executable" oder mehrere Dateien?
 
Hallo an alle Delphianer (ist das richtig?),

ich arbeite derzeit an einem eher umfangreichen Projekt, welches im Endeffekt ein Klon eines bekannten Programm zur Dateisicherung sein wird.

Das Original beinhaltet als installierte Version im Programmverzeichnis etwa 30 Dateien und Verzeichnisse.
Meine Version besteht derzeit lediglich als einer einzigen ausführbaren Exe-Datei, welche 3,66 MB groß ist, und zwei Lizenzdateien.

Nun frage ich mich, ob ich die Software in mehreren Dateien (DLLs, ausgelagerte BPLs usw.) ausliefern soll, oder doch eher alles in einer Datei? Positiver Nebeneffekt einer einzigen Datei wäre die mobilität - einfach auf den USB-Stick kopieren, fertig.

Was denkt ihr?

jaenicke 21. Mai 2012 17:27

AW: Release als "Single executable" oder mehrere Dateien?
 
Kopieren kann man auch ein Verzeichnis. Ich persönlich halte nichts davon alles in eine Exe zu stopfen, es sei denn es wird auch nichts weiter gebraucht. Aber z.B. DLLs einzukompilieren und beim Start auszupacken, halte ich persönlich für wenig sinnvoll...

Laufzeitpackages wiederum machen nur Sinn, wenn man auch mehrere Delphiprogramme hat, die diese benutzen. Heißt: Diese müssten zwangsläufig korrekt per Setup im Systemverzeichnis landen, damit das Sinn macht. Wenn es bei dir nur eine Exe ist, macht das wenig Sinn, da die Datenmenge dadurch einzeln deutlich größer wird.

Pentium 80486 21. Mai 2012 18:13

AW: Release als "Single executable" oder mehrere Dateien?
 
Zitat:

Aber z.B. DLLs einzukompilieren und beim Start auszupacken, halte ich persönlich für wenig sinnvoll...
Das habe ich nicht vor. Macht meiner Meinung nach ebenfalls keinen Sinn.

Sollte ich es bei 3,66 MB also noch bei einer Single Executable-Datei belassen? Somit bräuchte ich auch kein großartiges Setup. Denn ich persönlich frage mich bei so manchen Programmen, wofür diese ein Setup brauchen.

Popov 21. Mai 2012 18:34

AW: Release als "Single executable" oder mehrere Dateien?
 
Zitat:

Zitat von Pentium 80486 (Beitrag 1167459)
Nun frage ich mich, ob ich die Software in mehreren Dateien (DLLs, ausgelagerte BPLs usw.) ausliefern soll, oder doch eher alles in einer Datei?

Also Funktionen in DLLs auslagern nur wegen DLLs, weil es auch andere machen ist wenig sinnvoll, welchen Sinn haben DLLs? Du hast Funktionen die du immer wieder in verschiedenen Programmen nutzt, warum sie immer immer wieder in das Programm packen? Hier also, ein mal erstellt, immer wider nutzten. Dann kann man bestimmte Bereiche des Programms optimieren ohne das Programm neu installieren zu müssen.

Aber wenn du alles in einer Datei hast, warum nicht. Warte einfach ob sich irgendwann eine Notwendigkeit ergibt.

Pentium 80486 21. Mai 2012 18:59

AW: Release als "Single executable" oder mehrere Dateien?
 
Das Original ist ebenfalls so dermaßen aufgebläht, weil es sehr seltsame Dateien beinhaltet.
Eine davon ist 18 KB klein und ist nur zuständig, um das Hauptprogramm zu beenden. Des Weiteren gibt es eine Datei, die vermutlich einen Dienst startet und beendet. Einmal für 32, einmal für 64bit.
Und dann noch eine Datei, die Threads "schlafen" lässt.

Das waren nur ein paar Beispiele.
Was für ein Schwachsinn. Und für solch eine Software bezahlen manche Leute rund 30€.

implementation 21. Mai 2012 19:04

AW: Release als "Single executable" oder mehrere Dateien?
 
Zitat:

Zitat von jaenicke (Beitrag 1167464)
Aber z.B. DLLs einzukompilieren und beim Start auszupacken, halte ich persönlich für wenig sinnvoll...

Wer macht denn sowas? :shock:
Dann kann man doch auch gleich die Objektdateien einfach statisch einlinken...

Popov 21. Mai 2012 19:18

AW: Release als "Single executable" oder mehrere Dateien?
 
Es ist einfach so, irgendwann wurden Tools erstellt und nun werden sie zusammengestellt.

Ich habe noch letztens auch ein kommerzielles Programm nach-programmiert (die Funktionalität eines Programms ist nicht geschützt) und das hatte einen Minieditor als Extraprogramm. Mich hat es eine halbe Stunde gekostet den zu erstellen und in das Programm zu integrieren. Dadurch hatte ich sogar bessere Möglichkeiten. Als ich mit das Erstellungsdatum des Minieditors anguckt habe, stellte ich fest, dass es schon 10 Jahre alt ist. Ok, eine halbe Stunde Arbeit gespart.

Furtbichler 22. Mai 2012 07:11

AW: Release als "Single executable" oder mehrere Dateien?
 
Einige meiner Applikationen sind 10-15MB groß. Na und?

Popov 22. Mai 2012 07:56

AW: Release als "Single executable" oder mehrere Dateien?
 
Zitat:

Zitat von Furtbichler (Beitrag 1167537)
Einige meiner Applikationen sind 10-15MB groß. Na und?

Wenn ich mich noch an die gute alte DOS Zeit erinnere wo ich, wenn es mir durch Optimierung der Autoexec.bat und Config.sys gelungen ist noch 2 kByte extra rauszuholen, Leute angerufen habe um davon zu berichten, und wo wir dann abends einen drauf trinken gingen, wenn ich jetzt bedenke, dass ein Programm 15 MByte ist...

Luckie 22. Mai 2012 08:01

AW: Release als "Single executable" oder mehrere Dateien?
 
Was hat die Größe des Images mit dem Speicherverbrauch zu tun?

Nersgatt 22. Mai 2012 08:02

AW: Release als "Single executable" oder mehrere Dateien?
 
[QUOTE=Pentium 80486;1167479]
Zitat:

Denn ich persönlich frage mich bei so manchen Programmen, wofür diese ein Setup brauchen.
Weil es die User einfach erwarten. Die wollen auf ne Setup.exe klicken, solange auf "ja, weiter, zustimmen, ja, fertigstellen" klicken, bis irgendwo eine Statusbar rattert und irgendwann eine fertige Verknüpfung auf dem Desktop landet.
Unsere Anwendung könnte man auch als Zip-Datei ausliefern. Machen wir aber nicht, weil die User damit überfordert wären.

himitsu 22. Mai 2012 08:21

AW: Release als "Single executable" oder mehrere Dateien?
 
Zitat:

Zitat von Luckie (Beitrag 1167539)
Was hat die Größe des Images mit dem Speicherverbrauch zu tun?

Geneugenommen verbraucht man mit EXE+DLLs sogar mehr Speicher, als nur mit einer EXE. :angle2:
(Virtueller Arbeitsspeicher, Arbeitsspeicher und Festplatte)

PS: Delphi ist doch grade gut darin ohne DLLs und gesonderte Runtimelibs auszukommen.
Ich fann die Programme Gut, wo es nur die EXE gibt, dazu vielleicht noch eine UnInstall, welche die Registry aufräumt, wobei man das auch via Batch oder über ein Programmmenü auch noch mit in die EXE reinbekommt.

UliBru 22. Mai 2012 09:23

AW: Release als "Single executable" oder mehrere Dateien?
 
Zitat:

Zitat von himitsu (Beitrag 1167542)
Delphi ist doch grade gut darin ohne DLLs und gesonderte Runtimelibs auszukommen.

Mmhh, hab grad n Update der MtxVec Bibliothek bekommen welche ihrerseits dlls von Intel (LAPACK etc.) benutzt. Da hat die FFT dll schon 24 MB Größe. Muss ich wohl mit leben. Ich möchte selbst keine FFT bis hin zu AVX/AVX2 optimieren. :-D

Bei kleinen selbstgestrickten Programmen würde ich auch eine einzelne exe bevorzugen. Wobei XE2 das Ergebnis auch schon aufbläht.

Grüsse, Uli

himitsu 22. Mai 2012 09:46

AW: Release als "Single executable" oder mehrere Dateien?
 
Wenn du OBJ-Dateien (von mir aus aus einer C++-Quelle) mit den in der DLL enthaltenen Funktionen bekommst, dann kannst'e diese auch direkt in deine EXE (oder eine eigene DLL) linken.
Wird z.B. schon bei ZLib oder PerlRegEx so gemacht, da das auch keiner nochmals implementieren wollte.


Aber wenn eh schon alles in der EXE drin ist, warum sollte man dann "nur um eine DLL zu bekommen" auslagern?
PS: Dabei müßte man dann eventuell auch noch aufpassen, da Objekte nicht über DLL-Grenzen hinweg geshared werden dürfen. (ausgenommen bei Benutzung von Laufzeitpackages)
Auch Strings und dynamische Arrays funktionieren standardmäßig nicht, also ohne ShareMem und Co..

messie 22. Mai 2012 10:21

AW: Release als "Single executable" oder mehrere Dateien?
 
[QUOTE=Nersgatt;1167541]
Zitat:

Zitat von Pentium 80486 (Beitrag 1167479)
Zitat:

Denn ich persönlich frage mich bei so manchen Programmen, wofür diese ein Setup brauchen.
Weil es die User einfach erwarten. Die wollen auf ne Setup.exe klicken, solange auf "ja, weiter, zustimmen, ja, fertigstellen" klicken, bis irgendwo eine Statusbar rattert und irgendwann eine fertige Verknüpfung auf dem Desktop landet.
Unsere Anwendung könnte man auch als Zip-Datei ausliefern. Machen wir aber nicht, weil die User damit überfordert wären.

Ganz einfach um die Anwendung zu registrieren und die Zugriffsrechte zu setzen.
Ich habe ein Programm, was auch von eingeschränkten usern installiert wird. Da kommt man nicht um ein Installationsscript herum.

Grüße, Messie

himitsu 22. Mai 2012 12:07

AW: Release als "Single executable" oder mehrere Dateien?
 
Wobei man den Installer-Code ebenfalls mit in die EXE reinmachen könnte. :stupid:

Aber Installer <> DLL ... also bezüglich der ursprünglichen Frage.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz