Ich würde das Thema von der Seite der Multiplatformfähigeit angehen.
Da bleiben an Datenbanken:
-Firebird (Hier gibt es schon ein OpenSource ERP auf dem man aufbauen könnte, wenn man wollte)
-MariaDB (100%
Mysql Kompatibel und von den original
MYSQL Entwicklern)
-PostgresSQL (Das ist im Gegensatz zu Firebird VSS fähig und kann also im laufenden Betrieb über schattenkopien konsistent gesichert werden. Bei Firebird muss man eine Sicherung per GBAK mitliefern)
Die Geschäftslogik würde ich nicht in dem
DB Server unterbringen wollen wegen der Login Risiken. Evtl. sollte alles auf mehreren verschiedenen Datenbanksystem laufen. Viele Oracle oder
MSSQL Kunden wünschen sich das das System den bereits vorhandenen arschteuren DBServer auch benutzt. Also bräuchte es eine Abstraktionsschicht die auf mehreren Plattformen vernünftig läuft.
Ich weiß das AnyDac stabil und rattenschnell mit
MSSQL und Firebird läuft. Das verlagert das filtern intelligent auf den Server und arbeitet intelligent im Zugriff.
Ich weiß nicht ob es ein passendes ORM gibt das auf TDataset (Tables und Queries) aufsetzt.
Auf jeden Fall gibt es Anydac für Lazarus und damit für alle Plattformen.
Als
IDE würde ich seit "Codetyphon" Lazarus nehmen. Oder irgend eine C++
IDE.
Als Anwendungsmodell würde ich entweder MVP(mit passivem Presenter) nehmen oder eigentlich viel lieber eine klassische Webservices orientierte Webanwendung. Dadurch habe ich ein Frontend das auf jedem "Device" ohne Installationsaufwand funktioniert und ein Backend wo sich die Wartungsarbeiten konzentrieren. Außerdem habe ich durch eine Aufteiling der Anwendung in Webservices die Möglichkeit Kundenspezifische Geschäftsprozesse mittels BPMN oder
BPL Transparent zu modellieren. Das wäre natürlich nur notwendig wenn das ERP für den Markt und nicht für einen einzigen Kunden mit recht festen Strukturen entwickelt würde.
Man würde das ERP dann natürlich mit einem Referenzmodell ausliefern. Und das customizing nach Aufwand abrechnen und/oder einen Superuser dafür schulen.
Gerade durch den ORM Ansatz bietet sich dann ja auch eine Weboberfläche an da man ViewObjekte ja dank
RTTI/Reflections direkt in
XML für XHTML Darstellung umwandeln kann. Mit nem CSS würde es dann noch hübsch und customizeable.