AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Runtime-Packages, visual inheritance, Updaten der Runtime-Packages ohne exe-Update
Thema durchsuchen
Ansicht
Themen-Optionen

Runtime-Packages, visual inheritance, Updaten der Runtime-Packages ohne exe-Update

Ein Thema von RSE · begonnen am 9. Nov 2012 · letzter Beitrag vom 12. Nov 2012
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.753 Beiträge
 
Delphi 12 Athens
 
#1

AW: Runtime-Packages, visual inheritance, Updaten der Runtime-Packages ohne exe-Updat

  Alt 9. Nov 2012, 22:04
Ich weiß allerdings nicht, ob die Checkbox "Laufzeit-Packages verwenden" bewirkt, dass ich alle dort bereits eingetragenen Packages als Laufzeit-Packages mitliefern müsste. Zweites Problem: Der untere Bereich ist bei Packages grau.
Wenn du die CheckBox anklickst, kannst du das Feld editieren. Du schreibst da nur die Packages rein, die du als Runtime-Packages mitliefern willst. Dazu kommen noch die, die von den Runtime-Packages required werden (z.B. RTL, VCL).

Die Units aus den Packages, die du dynamisch laden willst, dürfen im Source nicht verwendet werden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Runtime-Packages, visual inheritance, Updaten der Runtime-Packages ohne exe-Updat

  Alt 10. Nov 2012, 07:33
Zusätzlich zu den verwendeten bpl gibt es noch versteckte BPL Abhängigkeiten. Das führt dazu, dass ein Delphiprogramm noch eine Reihe bpl beim Start verlangt,
die im Programm selbst garnicht verwendet werden.
In meinem Projekt waren das so um die 70 bis 80 bpl, die zusätzlich mitgeliefert werden mussten.
Fehlende oder geänderte bpl merkt man erst beim Kunden, da hier erst die isolierte Umgebung vorhanden ist.
Also vor der Auslieferung in einer delphifreien VM testen, ob das Programm startet.
Dann beten, das kein weiteres Delphiprogramm auf dem gleichen Rechner bpl benötigt. Das muss nicht mal mit unterschiedlichen Delphi-Versionen compiliert sein.
Das bpl Konzept ist antiquiert und verursacht nur Ärger.
Wenn wirklich Modular, dann entweder dll und Interface oder Com-Technologie.
Eine große Exe und Schluss oder eine kleine Exe und 80 bis 90 bpl die versioniert überwacht und updatet werden müssen, was ist besser?
Ich habe runtime bpl zwischenzeitlich aus allen Projekten wieder herausgeworfen, da Nutzen und zusätzlicher Aufwand in keinem Verhältnis stehen.

Gruß
Peter
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.753 Beiträge
 
Delphi 12 Athens
 
#3

AW: Runtime-Packages, visual inheritance, Updaten der Runtime-Packages ohne exe-Updat

  Alt 10. Nov 2012, 10:04
Zusätzlich zu den verwendeten bpl gibt es noch versteckte BPL Abhängigkeiten. Das führt dazu, dass ein Delphiprogramm noch eine Reihe bpl beim Start verlangt,
die im Programm selbst garnicht verwendet werden.
..zumindest nicht direkt.

In meinem Projekt waren das so um die 70 bis 80 bpl, die zusätzlich mitgeliefert werden mussten.
Fehlende oder geänderte bpl merkt man erst beim Kunden, da hier erst die isolierte Umgebung vorhanden ist.
Also vor der Auslieferung in einer delphifreien VM testen, ob das Programm startet.
Oder man schaut nach dem Compilieren mal unter Projekt - Info auf die Liste "Verwendete Packages".


Dann beten, das kein weiteres Delphiprogramm auf dem gleichen Rechner bpl benötigt. Das muss nicht mal mit unterschiedlichen Delphi-Versionen compiliert sein.
Grundsätzlich sollten BPLs, die mit unterschiedlichen Delphi-Versionen compiliert sind, auch unterschiedliche Namen haben. Ansonsten könnte man ja auch nicht verschiedene Delphi-Versionen gleichzeitig auf dem Rechner haben. Wer es dann ganz ordentlich machen will, gibt der BPL dann auch noch die eigene Versionsnnummer im Dateinamen mit. Bei neueren Delphi-Versionen helfen da die Einträge für LIB-Suffix und LIB-Version. Im Zweifelsfall packt man die benötigten Packages in das Verzeichnis, wo auch die EXE liegt.


Das bpl Konzept ist antiquiert und verursacht nur Ärger.
Wenn wirklich Modular, dann entweder dll und Interface oder Com-Technologie.
DLLs sind sicher nicht besser als BPLs was unterschiedliche Versionen auf dem Rechner betrifft. Und COM unter OSX könnte auch etwas haarig werden. Delphi-Packages funktionieren aber unter allen Zielplattformen. Antiquiert im Sinne von "gibt es schon sehr lange" - ja, aber immerhin nutzt .NET dieses Konzept ja ziemlich intensiv.

Eine große Exe und Schluss oder eine kleine Exe und 80 bis 90 bpl die versioniert überwacht und updatet werden müssen, was ist besser?
Ich habe runtime bpl zwischenzeitlich aus allen Projekten wieder herausgeworfen, da Nutzen und zusätzlicher Aufwand in keinem Verhältnis stehen.
Wie jede Technologie muss man wissen was man tut und Aufwand und Nutzen gegeneinander abwägen. Es ist sicher kein brauchbarer Weg um die EXE-Größe zu verkleinern oder den Update-Aufwand zu minimieren. Wenn es aber wie in diesem Fall um visual inheritance geht, sind dynamische Packages ein durchaus gangbarerer Weg. Mit anderen Ansätzen wird die Lösung sicher nicht leichter.

Es gibt übrigens noch ein anderes Beispiel, wo das Package-Konzept erfolgreich für einen modularen, dynamischen Aufbau verwendet wird: FinalBuilder!
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#4

AW: Runtime-Packages, visual inheritance, Updaten der Runtime-Packages ohne exe-Updat

  Alt 10. Nov 2012, 12:25
Vielen Dank für das Aufweisen der Stolperfallen. Mein Ziel ist es nicht, die Größe des Gesamtprogramms zu verringern, sondern zu modularisieren und Module zur Programmlaufzeit updaten zu können.

Habe ich denn die 3 verschiedenen Arten, Packages einzubinden, oben korrekt wiedergegeben?

Wieso kann ich ein Package nicht statisch in ein anderes linken?

Würden sich die vielen (80-90???) benötigten BPLs nicht als Designtime-Packages einbinden lassen (so wie in eine "normale" exe)?
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 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