![]() |
AW: Codedesign für modulare Anwendung
Zitat:
|
AW: Codedesign für modulare Anwendung
Nö, nicht wirklich ;-) Wobei ich noch ergänzen möchte dass das Plugin-System nicht so gedacht ist dass Drittanbieter Plugins liefern können. Vielmehr will ich nur erreichen, dass ich in einer einheitlichen Host-Anwendung verschiedene GUI auf die selbe Datenbank setzen kann. Die Plugins kämen alle von mir.
|
AW: Codedesign für modulare Anwendung
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe da einmal etwas zusammengebaut... siehe Anhang.
Wenn ich mal Zeit dafür haben sollte, schreibe ich dazu auch noch mehr. ;-) |
AW: Codedesign für modulare Anwendung
Hallo!
Sorry dass ich mich jetzt erst wieder melde. Ich brüte da nun schon eine ganze Weile über deiner Demo. Was sich mir da noch nicht so recht erschließt: Du arbeitest da jetzt zwar mit Generics (was mal wieder Neuland für mich ist), aber prinzipiell schiebst du da über ein Interface auch nur einen UnicodeWide-String (AExample.Connection.Host) zwischen der DLL und der Hostanwendung hin und her. So weit war ich ja mit meinem Code auch, wenn auch wesentlich weniger elegant. Da sehe ich aber noch nix von wegen gemeinsamer Nutzung einer TConnection (bzw. im Fall von UniDAC einer TUniConnection). Über das Thema Runtime-Packages habe ich viel nachgedacht, es aber am Ende wieder verworfen. Denn dadurch würde ich den Vorteil einer modularen Anwendung eigentlich wieder verspielen. Denn in der Praxis müsste ich zu jedem Modul-Installer sowohl die jeweils passend kompilierte Hostanwendung als auch sämtliche BPL-Packages mitliefern. Vielleicht habe ich aber auch deine Demo nur nicht richtig verstanden. Kann ja sein, bin auch nur ein Newbie in Sachen Interfaces und Generics. Grüße Cody |
AW: Codedesign für modulare Anwendung
Zitat:
|
AW: Codedesign für modulare Anwendung
Ich wollte nur kurz etwas zur Eingangsfrage einwerfen:
Zitat:
Das Pooling unterstützt ja direkt das Plugin-Konzept. Jedes Plugin holt sich eine eigene Connection und muss sich nicht darum scheren, ob da gerade eine Transaktion läuft, oder nicht. Das entbindet dich aber nicht davon, Connection- oder Transaktionskomponenten weiterzureichen, gerade *wegen* der Transaktionsproblematik. |
AW: Codedesign für modulare Anwendung
Soweit ich UniDAC verstanden habe, betreibt dieses ein Transaktionspooling und kein Verbindungspooling. Das Pooling findet in der TUniConnection statt und gerade deswegen hielt ich es für eine gute Idee, die Verbindung zwischen Hostanwendung und Plugin zu teilen.
Im Gegensatz zu Webservern a la Apache oder IIS scheinen Datenbankserver wie MySQL und MariaDB gar nicht so begeistert zu sein über viele konkurrierende Verbindungen. Per Default scheinen die auf weniger als 100 gleichzeitige Verbindungen eingestellt zu sein. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 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