Laden...

[erledigt]Gibt es einen bedingten Verweis?

Erstellt von Michael Hößel vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.765 Views
M
Michael Hößel Themenstarter:in
46 Beiträge seit 2006
vor 7 Jahren
[erledigt]Gibt es einen bedingten Verweis?

Für einen rührigen Wintersportverein habe ich vor 14 jahren eine Zeiterfassung geschrieben. Nun kann ich keine Hardware mehr auftreiben auf welcher das System läuft. Damals konnte ich viel bewährten Sourcecode aus unserer Auftragsverwltung nutzen.
Den gleichen Weg wollte ich nun wieder gehen. Aber aus "ich mach das mal eben schnell" ist inzwischen "gibts vielleich hinter dem Ural oder in Alaska noch alte Rechner?" geworden.
In all unseren Kunden-Projekten gibt es eine Klassenbibliothek mit allen Tabellendefinitionen.
Eine GUI-Klasse pflegt anhand der Feldnamen in ein Form automatisch diese SQL-Tabellen. Eine AdminTables-Klasse erstellt unds pflegt automatisch die SQL-Datenbank. Eine AdminPrint-Klasse dient zum Drucken der Stammdaten. Alle diese Klassen verweisen auf die Tabellendefinitionen und sind als Projekte in jeder Projekmappe verfügbar.
Nun mein Problem: Für die Warenwirtschaft brauche ich, sagen wir 100 Tabellen für die Zeiterfassung aber nur 3.
Ändere ich in den genannten Klassen den Verweis auf die Tabellendefinitionen wird das in allen Projektmappen wirksam. Kann ich dies irgendwie umgehen?
Mit #if/#else/#endif kann ich Source ein und ausblenden. Dies ist mir aber zu unübersichtlich und stört vor allem das Kundengeschäft. Die Zeiterfassung ist Hobby und soll es auch bleiben.
Gibt es eine Möglichkeit unterschiedliche Source-Dateien zu benutzen? Die Struktur bleibt ja gleich, nur die Anzahl ändert sich.

Und wirst du älter als ´ne Kuh,
musst doch lernen immerzu.

P
1.090 Beiträge seit 2011
vor 7 Jahren

Klingt für mich als könntest du DI und einen IOC-Container verwenden.
stakoverflow:Why do I need an IoC container as opposed to straightforward DI code?

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern

W
955 Beiträge seit 2010
vor 7 Jahren

Man könnte auch in einer Virtuellen Maschine ein altes System aufsetzen.

6.911 Beiträge seit 2009
vor 7 Jahren

Hallo Michael Hößel,

den Weg von witte würde ich auch bevorzugen, v.a. wenn das alte System gut lief.

Gibt es eine Möglichkeit unterschiedliche Source-Dateien zu benutzen?

Mach dir ein neues Projekt und binde die benötigten Source-Dateien als Verweis (Hinzufügen -> als Verweis) ein.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

M
Michael Hößel Themenstarter:in
46 Beiträge seit 2006
vor 7 Jahren

Vielen Dank für die vielen und vor allem schnellen Antworten.

Hallo Palin,

ich habe es mir angeschaut, nicht sofort verstanden und auf später verschoben.

Trotzdem Vielen Dank

Hallo Witte,

die virtuellen Maschine wäre das Genialste. Damit könnte ich auch noch Kunden helfen die auf solchen alten Maschinen unsere Uralt-Warenwirtschaft laufen lassen. Ohne Windows gibt es keine Probleme und auch keinen Wartungsaufwand. Leider ist es damals an der Netzwerkkarte gescheitert. Das alte Betriebssystem ist Prologue aus Frankreich (nicht die Programmiersprache Prolog).
Unterstützt werden folgende Netzwerkkarten:
CREALAN
NE2000
NE2000 Plus Nat. Semic.
SMC EtherCard Elite 16 Ultra (8216)
SMC EtherCard Plus Elite 16 (8013)
SMC EtherEZ (8416)
SMC EtherPower 10/100 Bus PCI (9332 DST)
INTEL Ether Express PRO/100B
Null Ethernet
Ich habe es mit "INTEL Ether Express PRO/100B" als Hardware und auch mit "Null Ethernet" versucht. Als Programmierer bin ich nicht unbedingt der VM-Fuchs. Das Betriebsystem läuft super (sogar extrem schnell) aber es kann nicht auf die Netzwerkkarte zugreifen. Damit ist dann kein Mehrplatz möglich.
Wenn Du mir da helfen könntest, oder jemanden weißt der helfen könnte?!?!?!
Aber auch Dir
Vielen Dank

Hallo gfoidl,

dein Ansatz ist tatsächlich machbar. Der Aufwand ist zwar nicht gerade klein aber ich habe es mit der AdminTables-Klasse probiert und es funktioniert. Nebenbei ist es so möglich Klassen, die in dieser Solution nicht benötigt werden, weg zu lassen und andere als Kopie radikal zu ändern.
Die breite Basis bleibt aber erhalten.

Vielen Dank.

Bis witte eventuell noch etwas einfällt, lass ich dieses Thema noch offen!

Und wirst du älter als ´ne Kuh,
musst doch lernen immerzu.

F
10.010 Beiträge seit 2004
vor 7 Jahren

Wau, Prologue hab ich mal 1990 was mit zu tun gehabt, ne SW im Gesundheitswesen.

Meist ist der Umfang von solchen Systemen damals als hoch anzusehen gewesen, mit den modernen Mitteln von Heute kann man den gleichen Umfang meist in viel kürzerer Zeit realisieren.

Ich habe sowas früher regelmäßig portiert und da war meist das Verhältnis des Sourcecode Umfangs 10:1