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?