AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Bridge-Pattern oder ähnlich

Bridge-Pattern oder ähnlich

Ein Thema von hanspeter · begonnen am 30. Dez 2006 · letzter Beitrag vom 31. Dez 2006
Antwort Antwort
hanspeter

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

Bridge-Pattern oder ähnlich

  Alt 30. Dez 2006, 22:18
Datenbank: Firebird • Version: 2.0 • Zugriff über: IBObjects
Hallo,
ich hatte in einem anderen Thread bereits gedroht, eine Frage nochmals zu formulieren.
Hier also die Tat und ich hoffe ein paar Hinweise zu bekommen.

Also die Ausgangssituation.
Seit TP 1.0 entwickle und pflege ich eine Software, welche bei inzwischen etwa 1.2 Mio Quellzeilen angekommen ist und der
ich noch eine Lebenserwartung > 10 Jahre gebe.
Immer in den Wintermonaten erfolgt die Weiterentwicklung und in den Sommermonaten der produktive Einsatz.
Wen es interessiert, unter autuvo.com ist das Programm beschrieben.

Die Datenbank ist Firebird und der Zugriff erfolgt über IBObjects.
Aufgrund von Problemen mit einem oftmals wenig stabilen Netz, stelle ich das System auf eine vebindungsfreie Datenanbindung um.
Im Prinzip sieht das so aus, das es für jede Datengruppe eine Klasse gibt.
Die dazugehörigen Daten werden eingelesen und in einer Liste gespeichert.
Aus dieser Liste werden dann Komponenten ohne Datenanbindung wie TEdit, TCheckbox, TListbox, TRichedit u.s.w. initialisiert.
Mit dem Speichern werden diese in die Datenstruktur zurückgeschrieben und dann gespeichert.

Nun meine Fragen:
Gibt es für den verbindungsfreien Betrieb eine bessere Methode als die gerade beschriebene.
Komponenten auf TDataset aufsetzen und hier die Daten verbindungsfrei bereitstellen?
Wechsel auf ADO?
Ich überlege ob, aufgrund der Lebenserwartung, eine Umstellung auf Net etwas bringt.
Das Programm ist konsequent in Oberfläche und Bearbeitung getrennt.
Alle Bearbeitungsmodule lassen sich automatisch in C# transferieren.
Die Oberfläche müßte neu angelegt werden.
Ein Zwischenweg wäre wohl auch Hydra von Remobjects.
die Oberfläche erst mal in Delphi lassen und dann Net Module für die Geschäftslogik einbinden.

Für einen Tip dankbar.
Mit Gruß Peter
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Bridge-Pattern oder ähnlich

  Alt 30. Dez 2006, 22:50
Du hast das Problem das Netzwerkverbindungen zum (DB-)Server nicht stabil sind. Du hast dann m.E. folgende Möglichkeiten:

- Einsatz einer lokalen Instanz des DBMS und Replikation der Daten zu anderm Zeitpunkt
- Einsatz der ClientDatasets und Ablauf eines Synchronisierungslaufs
- Aufsetzen eines Messaging-Systems welches intern solche Verbindungsabbrüche durch wiederholungen abfangen kann.
- Eigener tolleranter Server den Verbindungsabbrüche nicht stören.


ADO wird hier nicht unbedingt tviel bringen (ok. man kann die ADO-Datasets als XML speichern und der MS SQL-Server hat vielfältige Replicationsmechanismen) bringen.
Wechsel auf .NET könnte im Rahmen von .NET 3.0 mit den Workflowklassen einiges bringen. Ob jedoch viel deines bisherigen Codes wiederverwenbar ist .... Und das Bridge-Pattern bring in deinem Fall nur etwas wenn du mehrer DB's auf persistenzseite Behandeln unterstützen willst
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
hanspeter

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

Re: Bridge-Pattern oder ähnlich

  Alt 30. Dez 2006, 23:21
Zitat von Bernhard Geyer:

- Einsatz einer lokalen Instanz des DBMS und Replikation der Daten zu anderm Zeitpunkt
Genau so mache ich es zur Zeit.
An dem lokalen Arbeitsplatz liegt eine komplette Kopie der Datenbank vor.
Die benötigten Daten werden vom Netzwerkserver geladen und dann lokal verwendet.
Der lokale Arbeitsplatz arbeitet nur mit dieser Datenbank.
Ein Hintergrundprogramm überträgt die Ergebnisse dann unabhängig von dem lokalen Programm auf den Server.
Da frühstens jede Minute ein Ergebnis vorliegt, habe ich genügend Zeit.
Übertrage das Ergebnis, sehe nach ob es korrekt eingetragen wurde.
Wiederhole solange bis das ganze geklappt hat.


NET 3.0 mit den Workflowklassen
Ja deswegen meine Überlegung erst mal mit Hydra.

Irgendwie muss ich mein Projekt ja bei einer Lebenserwartung von > 10 Jahren, aus der Win32 Ära retten und in Delphi habe ich da nicht mehr das richtige Vertrauen.

Gruß Peter
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Bridge-Pattern oder ähnlich

  Alt 30. Dez 2006, 23:35
Zitat von hanspeter:
Zitat von Bernhard Geyer:

- Einsatz einer lokalen Instanz des DBMS und Replikation der Daten zu anderm Zeitpunkt
Genau so mache ich es zur Zeit.
Mit den Replikationsmechanismen der Datenbank?

Zitat von hanspeter:
Irgendwie muss ich mein Projekt ja bei einer Lebenserwartung von > 10 Jahren, aus der Win32 Ära retten und in Delphi habe ich da nicht mehr das richtige Vertrauen.
Das stimmt. Bisher haben wir Entwicker von dem ganzen Verkaufsgedöse und CodeGear "nur" die Turbo-Versionen.
Schon mal überlegt einen kompletten Resign der Anwendung zu machen und ohne Code-Altlasten zu beginnen? Man weis zwar nicht was in 10 Jahren so übrig bleibt (Vor 10 Jahren begann ja der Java-Hype und normalerweise müssten wir alle vor Java-Desktop und Java-CPU's sitzen).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
hanspeter

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

Re: Bridge-Pattern oder ähnlich

  Alt 31. Dez 2006, 09:01
Zitat von Bernhard Geyer:
Mit den Replikationsmechanismen der Datenbank?
Nein ich öffne eine Verbindung über das Netzwerk in die Veranstaltungsdatenbank und lese dann die für mich relevanten Daten aus.
Das sind etwa 30 bis 40 Datensätze - Die Startliste der aktuellen Prüfung. Diese werden in der lokalen Datenbank abgelegt.
Die Rückübertragung wird von einem Hintergrundprogramm erledigt.

Zitat:
Schon mal überlegt einen kompletten Resign der Anwendung zu machen und ohne Code-Altlasten zu beginnen? Man weis zwar nicht was in 10 Jahren so übrig bleibt (Vor 10 Jahren begann ja der Java-Hype und normalerweise müssten wir alle vor Java-Desktop und Java-CPU's sitzen).
Ja da denke ich drüber nach aber ich überblicke noch nicht den Aufwand.
Das Programm ist im produktiven Einsatz und eine längere Auszeit kann ich mir nicht leisten.
Deshalb auch meine Überlegung unter den Delphi - Teil jetzt einen Schlussstrich zu ziehen.
Mittels VC2005 in C# weiterarbeiten und mit Hydra in das bestehende Programm als Dll einzubinden.
Das Programm ist bis heute noch monolithisch eine 10Mbyte Exe.
Mit BPL bin ich beim Versuch der Modularisierung mit Delphi auf die Nase gefallen.

Wenn man mit beiden Systemen VS2005 und Delphi parallel arbeitet, dann stolpert man immer mehr über die Unzulänglichkeiten der
Sprache und fehlende Erweiterungen. (wie z.B. in Chrome)
Das Einbinden von Komponenten und deren Update ist ein Krampf. Die Trennung in Laufzeit- und Entwurfszeitkomponente halte ich
inzwischen für Schwachsinn.
Fast alle kommerziell gekauften Komponenten bringen zwar ein Installationsprogramm mit. Aber keine der Installationen funktionieren bei mir, wenn sie automatisch gelaufen sind.
Ich muß nach jeden Update manuell kompilieren und installieren.
z.B. Fastreport, Ibobjects, die Jedi Installation ohnehin.


Zitat:
Bisher haben wir Entwicker von dem ganzen Verkaufsgedöse und CodeGear "nur" die Turbo-Versionen.
Mir macht die beschauliche Ruhe die bei Codegear herrscht ein bisschen Angst.
Net 2.0 ist inzwischen seit über einen Jahr auf dem Markt, Net3.0 inzwischen auch und die Roadmap verschiebt sich eher
nach hinten, denn nach vorn.


Gruß
Peter
Guten Rutsch und ein gesundes neues Jahr
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:25 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