AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wozu sind BPL Fies gut?

Ein Thema von idefix2 · begonnen am 9. Mai 2017 · letzter Beitrag vom 9. Mai 2017
Antwort Antwort
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#1

Wozu sind BPL Fies gut?

  Alt 9. Mai 2017, 11:44
Man braucht diese Package Libraries, um Komponenten in die IDE zu installieren. Haben die sonst noch einen anderen Sinn?
Hat es irgend einen Nutzen normale Units in BPL Dateien aufzunehmen?

Implizit werden ja manche Units in ein BPL-File eingeschlossen, die von den angegebenen Units verwendet werden. Kann das zu Versionskonflikten führen?

Geändert von idefix2 ( 9. Mai 2017 um 11:47 Uhr)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: Wozu sind BPL Fies gut?

  Alt 9. Mai 2017, 11:50
Guckst Du z. B. hier:

https://www.thoughtco.com/bpl-vs-dll-1058181

http://www.delphipraxis.net/171762-h...-packages.html
  Mit Zitat antworten Zitat
reaktor

Registriert seit: 1. Aug 2012
11 Beiträge
 
#3

AW: Wozu sind BPL Fies gut?

  Alt 9. Mai 2017, 11:50
Wenn dein Projekt Komponenten aus diesem Package benutzt, dann werden diese mit reinkompiliert -> die .exe/.dll/.. wird größer. Wenn du im Projekt einstellst, dass es mit Laufzeitpackages kompiliert werden soll und die entsprechenden Packages angibst, ist die erzeugte Datei nicht so groß. Du musst dann allerdings die .bpl-Dateien mit ausliefern. BPL-Dateien kannst du mit DLLs vergleichen mit dem Unterschied, dass BPL-Dateien nur von Delphi-Anwendungen genutzt werden können.
  Mit Zitat antworten Zitat
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
555 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Wozu sind BPL Fies gut?

  Alt 9. Mai 2017, 15:56
Man braucht diese Package Libraries, um Komponenten in die IDE zu installieren. Haben die sonst noch einen anderen Sinn?
Hat es irgend einen Nutzen normale Units in BPL Dateien aufzunehmen?

Implizit werden ja manche Units in ein BPL-File eingeschlossen, die von den angegebenen Units verwendet werden. Kann das zu Versionskonflikten führen?
Den Umweg um Komponenten in die IDE zu installieren musstest du früher nicht nehmen und doch gab es Packages.

Ein Package dient der Code Strukturierung. Zumal die Package Library andere Optionen bspw. bezüglich Compilierung bietet würde ich sagen sie ist doch eigenständig und nicht vom Projekt abhängig. Diese Eigenschaft erbt die Package Library eher über die Library.

unit - steht vermutlich für Compilation Unit des Compilers. Alles dahinter ist relativ dubios.

Ein Klasse ist kaum vergleichbar mit allem zuvor.

Die Packages kann man sich am PC bspw. unter Windows am besten Vorstellen mit Funktionen welche im COM Laufzeitsystem werden aktiviert. Das wäre noch der beste Vergleich zu Algol 68.
  • Load Per Call
  • Load Shared
  • Load Per Runnable Program Unit (wie in Java )

Oder ähnlich wäre noch bei einem XYZModule in Delphi das Threadinverhalten einzustellen und das 'Betriebsystem' sorgt dafür, dass das Laden transparent vom aufrufenden Programm passiert.

Die Library hat der Sysadmin installiert und ein Aktennotiz in Umlauf gebraucht, dass die Library installiert ist oder von mir aus ein Statistik Package.

Das Model ist heute nicht mehr so relevant für ein Betriebssystem wie früher. 'C'/UNIX.

-- In SAP gibt es soetwas noch
Im SAP schreibst du nur Report. Dann machst du eine Programmprüfung (report) und am Ende aktivierst du das Programm. Das SAP System kompiliert das Programm.

Eine Funktion ist allein ein Konstrukt auf der Metadatenebene. Wenn die Funktion aufgerufen wird, dann wird ein Binding gemacht. Das Modul wird geladen in eine Laufzeitumgebung. Ein Package umfasst im Falle von ABAP Metadaten usw.

ABAP Package

In dem Sinne schlagt eine Delphi Package noch in die Richtung mit Bezug auf die IDE

Geändert von MichaelT ( 9. Mai 2017 um 16:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#5

AW: Wozu sind BPL Fies gut?

  Alt 9. Mai 2017, 16:21
Ein Package ist praktich erstmal eine DLL, welche aber zusätzlich "automatisch" seine RTTI und andere globale Dinge shared.

Es ist somit praktisch wie ein "Teil einer EXE/DLL", aber kann einzeln ausgetauscht werden (so lange sich die Schnittstellen nicht ändern), bzw. von mehreren Programmen gemeinsam genutzt werden (wie eine DLL)

Ja, das kann man gut nutzen, um Komponenten in die IDE einzubinden, ohne gleich die ganze IDE neu kompilieren zu müssen.
Und dennoch hat man in der BPL auf alles Zugriff, was die IDE bietet und die IDE kennt auch die BPL (RTTI).
Also gemeinsame Verwendung des selben Speichermanagers, der System-Units und die Units der RTL/VCL/FMX usw. , inkl. deren globaler Variablen.

Bei einer DLL ist dagegen alles getrennt und man hat von der EXE aus nur Zugriff auf die DLL, aber die DLL keinen Zugriff auf die EXE.
Darum kann/darf man da auch keine Objekte durchreichen, da jeder seine eigene "Version" dieser Objekt-Klassen (RTTI, Definitionen, Methoden, ...) besitzt, die grundsätzlich nicht kompatibel sind, und standardmäßig auch einen getrennten Speicher (kein SharedMemory) haben.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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 23:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz