Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#1

Grundsatzfrage zu Datenbankprojekt

  Alt 14. Dez 2011, 17:18
Hallo zusammen,

über die letzten Jahre habe ich ein BDE-Projekt (Paradox/DBase und Tables/Querys) zusammengestückelt, das inzwischen einen ganz guten Umfang erreicht hat. Das Projekt läuft im Netzwerk mit bis zu 10 Usern rel. zuverlässig (Dank der DP nun auch mit 64bit-PC´s).

Es sind etwa 20 Tabellen mit insg. 1Mio Datensätze verwendet. Die Haupttabelle hat etwa 40T Datensätze, der Rest sind dann diverse Detailtabellen. Monatlich werden zwei Importe durchgeführt, diverse Daten abgeglichen und Reports/Fehlerlisten erzeugt.
Weiterhin verwalten wir damit unsere Vorgänge (bei wem ist was in Bearbeitung) und Wiedervorlagetermine.

Nun steht mal eine "Generalüberholung" an, besser gesagt ein Neuaufbau.

Unser IT-Bereich entwickelt Browseranwendungen (GIS usw) - ich weiß aber nicht, mit welcher Entwicklungsumgebung. Formularanwendungen können/wollen sie nicht.

Ich halte nicht viel von Browseranwendung - jedenfalls nicht als Hauptarbeitsmittel, das man 8 Stunden am Tag durchgehend benutzt.

Daher mal ein paar Grundsatzfragen:

1) Würdet Ihr Euch Browseranwendungen "aufdrücken" lassen?
Meine VCL-Anwendung ist speziell auf unsere Bedürfnisse zugeschnitten, reagiert auf jeden Tastendruck und selektiert passende Datensätze (Table.GotoNearst) und ist mit den ganzen Formularen sehr effektiv verwendbar.
IT hat schon eingeräumt, dass sie das so mit Ihren Mitteln nicht umsetzen können.

Die weiteren Überlegungen mal für den Fall, dass die VCL (Win32/64) zum tragen kommen sollte:

2) DataBinding
Darauf würde ich keinesfalls verzichten wollen! Mal abgesehen davon, ob letztlich DB-Komponenten, Live Binding oder DSharp zum Einsatz käme.
(Die odControls nenne ich hier freiwillig nicht )

3) MultiTier?
Wenn max. 10-15 User das Projekt nutzen und alle ohnehin in einem Netzwerk verbunden sind, sollte man dann der Einfachheit halber eine klassische DB-Anwendung erstellen oder doch MultiTier (z.B. mit DataSnap).
Hier mal unter dem Aspekt, dass keine Anbindung von Außen/Internet notwendig werden wird.
Die Frage ist, was unter dem Strich ein besseres Arbeiten mit weniger Schwierigkeiten ermöglicht. Ein MultiTier-Projekt verursacht ja immer etwas Mehraufwand (inzwischen natürlich nicht mehr so viel wie früher). Wiegen die Vorteile den Mehraufwand auf, wenn die Clients die DB auch problemlos direkt erreichen können?

4) ORM?
Auch in der Beziehung schwanke ich immer wieder. Zwar habe ich mir schon einiges dazu angesehen (insb. auch mORMot - Dank an Sir Rufo!), aber ich kann den Aufwand/Nutzen nicht recht nachvollziehen, insbes. auch in Bezug auf die vorgenannten offenen Fragen.
Die Businesslogik wird nicht übermäßig kompliziert werden. Klar würde ich gern komplett mit Objekten arbeiten, aber ohne DB ist ein solches Projekt natürlich nicht machbar. Wenn man dann wieder einen Aufwand betreiben musss, um die Daten in Objekte zu laden und sie dann wieder in die DB zu schreiben, sollte man dann nicht doch eher prozedural arbeiten und "klassisch" SQL-Statements nutzen?


Ich komme bei meinen Überlegungen immer wieder zu anderen Schlüssen und verwerfe sie dann wieder.
In welchem Rahmen würdet Ihr solch ein neues Projekt anlegen?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (14. Dez 2011 um 17:29 Uhr)
  Mit Zitat antworten Zitat