AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Bestehende Software modernisieren / Umstieg
Thema durchsuchen
Ansicht
Themen-Optionen

Bestehende Software modernisieren / Umstieg

Ein Thema von 361 · begonnen am 26. Feb 2020 · letzter Beitrag vom 11. Mär 2020
Antwort Antwort
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
548 Beiträge
 
Delphi 12 Athens
 
#1

AW: Bestehende Software modernisieren / Umstieg

  Alt 26. Feb 2020, 11:15
Ich würde mir mal TMS-Webcore sowie die TMS-Business Tools ansehen. Damit kann man viel machen und den Delphi-Quellcode zum großen Teil weiterverwenden.

Alles neu machen für ein 13 Jahre gewachsenes Produkt ist gefährlich und teuer. Würde mal sagen mit gleicher Manpower braucht man dann mindestens 5 Jahre um den alten Stand wieder zu erreichen.

Solange müsste man auch das alte Produkt noch parallel weiter supporten.

Den Kunden ist es in der Regel egal ob der Quellcode schöner ist und womit programmiert wurde, Hauptsache das Programm macht was es soll.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.583 Beiträge
 
Delphi 12 Athens
 
#2

AW: Bestehende Software modernisieren / Umstieg

  Alt 26. Feb 2020, 11:34
Wir selbst hatten mal bissl mit FMX für Android rumgespielt und auch mit anderen Dingen rumgespielt, aber mangels Zeit/Ressourcen wurde nichts draus.
Den Grundkern unseres Proguckts konnten wir auch schon teilweise relativ leicht so umstellen, dass er auch im Android kompiliert und für eine neue Testanwendung genutzt werden konnte.
Aktuell lassen wir von einer in der nähe lebenden Fremdfirma ein Webfrontend für gewisse Module entwickeln, die dann im Webbrowser und auch via Browser auf einem Smartphone mit Barcodescanner laufen sollen.
Da wir viel Logik in der Datenbank (Trigger und Funktionen) haben, gehen sie direkt auf die Datenbank, bzw. Teilweise auf Funktionen in einer eigenen Serveranwendung (z.B. Dateizugriff auf unser DMS).
Das große Projekt bleibt aber weiterhin erstmal Delphi. Mal für zwei/drei Jahre die Enwicklung des Projektes fast zu stoppen und alle Ressourcen in eine komplette Neuentwicklung zu stecken, mit Techniken, die auch noch niemand umfänglich beherrscht, war nicht so wirklich schön anzusehn.



FMX ist Multi-Plattform, aber Web gibt es nicht als Plattform. (die GUI nur für Windows, Apple und Android ... Linux und Web nur von Fremdfirmen)

Es gibt noch den HTML5 Builder, früher war's mal Delphi4PHP, dann RadPHP und vorher VCL for PHP oder wie es noch hieß, beim Originalentwickler.
https://www.embarcadero.com/de/products/HTML5-Builder
https://edn.embarcadero.com/article/34059

Das ist/war quasi eine "Kopie" der RTL/VCL nach PHP. (komplett neu, und komplett in PHP/JavaScript geschrieben)
Der Grundcode ist in PHP auf dem Webserver und es können Events zurück ins PHP oder auch lokal als JavaScript laufen.


Dann gibt es mehrere Frameworks, auch Eines von Borland/Embarcadero selbst, deren Namen ich immer vergesser (das alte langsame QC war damit geschrieben),
wo im Hintergrund Delphi-Code als Serveranwendung läuft und die HTML-Code generieren und rausgeben.

Es gibt auch ein Projekt, wo eine VCL-Anwendung auf dem Server ausgeführt wird, deren Oberfläche abgefangen und via Webbrowser anderswo angezeigt wird.
Kannst'e quasi grob mit RDP bzw. TeamViewer vergleichen, aber für einen großen produktiven Einsatz würde ich das nicht empfehlen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (26. Feb 2020 um 11:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.234 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Bestehende Software modernisieren / Umstieg

  Alt 26. Feb 2020, 15:34
Ich würde mir mal TMS-Webcore sowie die TMS-Business Tools ansehen. Damit kann man viel machen und den Delphi-Quellcode zum großen Teil weiterverwenden.
kann vorteil sein, aber auch Problem doch wieder alles so zu machen wie bisher, nur da es im Browser läuft ...

Alles neu machen für ein 13 Jahre gewachsenes Produkt ist gefährlich und teuer. Würde mal sagen mit gleicher Manpower braucht man dann mindestens 5 Jahre um den alten Stand wieder zu erreichen.
Sowas ist immer schwer. Daran sind schon andere Firmen gescheitert und in der Versenkung verschwunden.
Aber immer nur "dranschustern" versperrt öfter auch mal den Blick darüber das die Welt um einen herum sich komplett gedreht hat und jetzt in die andere Richtung fährt.

Solange müsste man auch das alte Produkt noch parallel weiter supporten.
Das ist immer schwierig. Wenn das Datenbackend gleich bleibt kann man evtl. beide Welten gleichzeitig fahren und immer schrittweise die wichtigsten Punkt (nach Redesign) in den Browser bringen.

Den Kunden ist es in der Regel egal ob der Quellcode schöner ist und womit programmiert wurde, Hauptsache das Programm macht was es soll.
Und das schwierige ist ob man überhaupt noch weiß ob das was man macht überhaupt noch beim Kunden genutzt wird oder er eh schon intern eine Ablösung sucht.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: Bestehende Software modernisieren / Umstieg

  Alt 26. Feb 2020, 15:52
Ich verstehe diese „alles auf den Schrott“ Ansätze meist nicht (es gibt Ausnahmen), auch wenn es spätestens seit VW Dieselskandal trendet- erst recht unverständlich.
Delphi ist ein leistungsfähiges System und Postgres ebenfalls. Das geht auch „in der Cloud“.

Ich sehe hier eher den Ansatzpunkt für ein Hybridsystem (oder meinetwegen auch Brückentechnologien). Es wird „einfach“ ein Zusatzprodukt mit Webtechnologien aufgezogen. Eine klassische SQL Datenbank bietet die idealen Voraussetzungen, so etwas wasserdicht hinzubekommen. Also verschiedene Clients zu bedienen und dabei eben dafür zu sorgen, dass alle Spielregeln eingehalten werden.
Datenpflege über REST Interfaces gegen Postgres, Oberfläche mit ein modernen JS Tool und man ist schon ziemlich schnell, ziemlich weit. Wenn gewollt sogar per Wepapp auf verschiedenen Plattformen (devices wie smartphone, tablet, ...).
Für Flexibilität in der Ausrichtung statt kompletter Neuanfang sprechen m.E. zwei Punkte,
- jahrelang „erarbeiteter Knowhow Mangel“ zu Alternativen (der auch nicht durch eine Rundfrage hier oder einen Konferenzbesuch ausgebügelt ist)
- was mit sich bringt, die Gefahr von Fehlentscheidungen, Vendor lock-in, Kostenfallen, falsche Aufwandseinschätzung usw.

Die Schwierigkeiten, die sich mit einer Neuentwicklung, Migration usw. den Kunden (und dem Hersteller) in den Weg stellen, können dann am Ende auch leicht zu einem Anbieterwechsel des Kunden führen (Es muss ja eh migriert werden). Welcher Anbieter will das?

Was außerdem gegen eine Abschaffung klassischer Fatclients bzw. eines leistungsfähigen Bestandssystem spricht, ist m.E. die Power, die man bei der Datenbearbeitung erreicht, flexible Hotkeys, komplexe und hochspezialisierte Masken sind nicht so schnell aus dem Webhut gezaubert. Ich habe eigentlich noch nie eine wirklich gute Webmaske zur Dateneingabe gesehen, die mit einem lange gepflegten und verbesserten System mithalten kann. Wenn ich manchen Umsteiger auf das neue Webtool die Maus über die Tischplatte schieben sehe, dann der Doppelklick auf die Buttons und Links…. denke ich „Produktivität im Keller“
Also ehrlich, man wirft doch nicht ohne Not 15 Jahre Arbeit weg?!

Ach und der Vollständigkeit halber: Ich habe keine Ahnung, was low code sein soll- gerade erst gelesen. Ein Blick auf Wikipedia und ich lande z.B. bei Simplifyer, die stolz schreiben, dass sie SAP Silverpartner sind. Na schönen Dank!
Aber es ist ja auch kein Hexenwerk, generischer Code mit deklarativen Ansätzen lässt sich prima zu Fuß umsetzen, mit Delphi oder Webtools, als Weiterentwicklung des Bestandssystem.

Und noch mal andersrum:
Was ist für Dich Cloud, low code usw. Kunde will Web, Kunde will „Hibernate“ (Das ist kein Selbstzweck -er wird es nie merken, ob es da ist oder nicht), …
Dem Kunden kann es egal sein, welche Technologie ihr einsetzt, wenn er davon Ahnung hätte, würde er es selber machen, oder?
Skalierende DB Systeme in der Cloud, überall auf der Welt, ..?
Ja, kann man machen und trotzdem die alte Software einsetzen.

Und noch was: Ein paar tolle Zahlen und Grafen auf dem Smartphone, das ist der absolute Renner, ohne Ironie. Damit können sich wichtige Leute noch wichtiger fühlen. Die Sexyness des Produkts steigt ungemein. Und das ist vielleicht eines der Probleme, die Altsoftware gerne hat. Angestaubte Masken, statischer Aufbau, grau in grau… da lohnt frische Farbe schon sehr. Die Leute mögen das und es ist den meisten offenbar viel wichtiger als Funktion. Aber dafür braucht man weder eine solide Bestandssoftware wegzuwerfen noch teure low code tools anzuschaffen.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.583 Beiträge
 
Delphi 12 Athens
 
#5

AW: Bestehende Software modernisieren / Umstieg

  Alt 26. Feb 2020, 16:10
Ich habe keine Ahnung, was low code sein soll- gerade erst gelesen. Ein Blick auf Wikipedia und ich lande z.B. bei Simplifyer, ...
Zusammengefasst sagt Wiki Low-Code ist das, wo der Entwickler Befehlsbausteine schnell zusammenklickt, anstatt schönen Code zu schreiben.
https://de.wikipedia.org/wiki/Low-Code-Plattform

Also im Grunde genau das hier
https://www.youtube.com/watch?v=9JIDctUxqHQ (Scratch)
oder unser LiveBindings-Designer im Delphi.

Und dass ein Code schön sein kann, zeigt dieser Quellcode in der Programmmiersprache Brainfuck, welcher ein Sierpinski-Dreieck generiert.
Code:
                                >
                               + +
                              +   +
                             [ < + +
                            +       +
                           + +     + +
                          >  -   ]  >
                         + + + + + + + +
                        [               >
                       + +             + +
                      <  -           ]  >
                     > + + >        > > + >
                    >      >      +       <
                   < <    < <    < <    < <
                  <  [   -   [   -   >  +   <
                 ] > [ - < + > > > . < < ] > > >
                [                               [
               - >                            + +
              +   +                           +   +
             + + [ >                        + + + +
            <      -                       ]      >
           . <    < [                     - >    + <
          ]  +   >  [                   -   >  +   +
         + + + + + + + +                 < < + > ] > . [
        -               ]              >              ]
       ] +             < <            < [             - [
      -   >          +   <          ]  +           >  [
     - < + >        > > - [         - > + <        ] + + >
    [       -       <      -       >      ]      <      <
   < ]    < <    < <    ] +     + +     + +     + +     + +
  +   .  +   +   +   .  [   -   ]  <  ]  +   +   +   +   +
 * * * * * M a d e * B y : * N Y Y R I K K I * 2 0 0 2 * * * * *
(die böse DP macht immernoch paar Leerzeichen kaputt ... Details im [Zitat] zu sehen)
https://www.tutorialspoint.com/execu...nfk_online.php
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (26. Feb 2020 um 16:24 Uhr)
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
657 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Bestehende Software modernisieren / Umstieg

  Alt 26. Feb 2020, 17:24
Du solltest dir unbedingt mal das anschauen: https://www.elevatesoft.com/products...y=ewb&type=web

Das ist im Moment glaube ich das Beste, was es am Markt gibt und benötigt keine andere IDE. Eine Delph installation wird also dafür nicht benötigt. Du schreibst deinen Code wie bisher in einer sehr nah an Delphi (Object Pascal) angelehnten Syntax, die dann kompiliert und JS produziert. Das Ganze ist auch leicht erweieterbar mit eigenen Komponenten etc. halt wie man es auch von Delphi gewohnt ist. Die ganzen Delphi-basierten Lösung wie TMS WebCore, sind hier viel unhandlicher zu nutzen und benötigen viel JS-Wissen. Im EWB kann man alles in Object Pascal programmieren.

Das Produkt ist übrigens zu 100% in Delphi geschrieben. Ich nutze seit Jahren deren DB-Systeme DBISAM und ElevateDB, das ich dir eventuell als Ersatz für PostgresSQL an Herz legen kann.

Geändert von Rolf Frei (26. Feb 2020 um 17:29 Uhr)
  Mit Zitat antworten Zitat
361

Registriert seit: 27. Okt 2005
Ort: Berlin und Brandenburg
93 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: Bestehende Software modernisieren / Umstieg

  Alt 27. Feb 2020, 11:46
Hallo zusammen,

und erst einmal jedem einzelnen hier vielen Dank für seine Ausführungen. Ich würde gern noch einmal etwas mehr Input geben, was vielleicht die Situation noch etwas besser darlegt und dann auch noch mal erwähnen, dass noch nichts festgelegt ist oder ich genau weil es ein schwieriges und aufwendiges Thema ist, mich hier erkundige.

Was wollen die Kunden?
- Web-Anwendung, weil sie international viel unterwegs sind und von dort arbeiten müssen; hier ist es teilweise schon schwer, in Asien in manchen Ländern einen Laptop einzuführen
- bessere Entwicklungsgeschwindigkeit
- UI-Skalierungsmöglichkeiten (in Windows sind diese sehr beschränkt, Alphaskins hat hier jedoch für uns schon etwas gebaut, funktioniert jedoch nur 80%)

Der Punkt Web-Anwendung ist also essentiell.

Was haben wir als Produkt?
- Windows Desktop Anwendung
- Client-/Server
- Business Tier Layer mit Code Generator
- DB Layer
- PostgreSQL
- es werden diverse Komponenten verwendet, von DevExpress über DevArt, FastReports, Alphaskins, etc...
- es gibt kein Data Binding, wir füllen Daten per Code in die UI

Was wollen wir?
- bessere Produktivität und statt Programmierung mehr Fokus auf den Inhalt im Bereich UI legen können (wir haben hohe Hürden, UIs zu bauen, z.B. das Füllen von Daten muss programmiert werden/kein Data Binding, ebenso UI-State-Handling, etc)
- Redesign der Oberflächen (cirka 1200 Forms und Frames, ist eher eine Anforderung kundenseitig, hier spielt auch das Thema Skalierung mit rein)
- Dependency Injection und bessere Testmöglichkeiten, was teilweise ein Code-Redesign erfordern würde, weil Methoden teils zu komplex sind

Die Web-Anwendung ist von uns aus keine Anforderung, da sie es jedoch von den Kunden her ist, ist es unumstößlich diese Möglichkeit zu verweigern. Die Desktop-Anwendung ist von keinem Kunden mehr gewünscht. Der Aufwand einer Neuentwicklung ist recht hoch, da wir aber die Software inhaltlich zu 80% so übernehmen können, wie sie jetzt ist, ist im Prinzip die Konzeptphase viel geringer, man weiß genau, wo man hin möchte. Um diesen Aufwand technisch zu verringern, sah ich als Ansatz Low-Code. Hier ist die enge Bindung an den Hersteller jedoch sehr negativ zu bewerten. Also was nun?

Mein Ansatz wäre nun aufgrund der Komplexität der Anforderungen ein Neuanfang. Grundsätzlich bin ich auch gegen sowas, allerdings wenn man - wie Bernhard glaube ich meinte - feststellt, dass sich die Welt draußen vollständig geändert hat, muss man sich die Frage stellen, ob ich den Golf nun in ein Amphibienfahrzeug für eine andere Umgebung umbaue, gleichzeitig noch meine eigenen umfangreichen Baustellen irgendwie abschaffe oder einen Cut mache. Der Support der Bestandsanwendung ist nicht sehr hoch, da wir alle Module soweit entwickelt haben, dass wir immer nur Fehlerkorrekturen machen müssten. Ich freue mich auf Eure Meinungen.
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Bestehende Software modernisieren / Umstieg

  Alt 27. Feb 2020, 15:31
Hallo zusammen,

ich würde von einer kompletten Neuentwicklung abraten!

Stattdessen würde ich folgendes empfehlen:

- Bestehende Desktop Applikation(Delphi) dahingehend erweitern, das jegliche Logik ohne GUI funktioniert(am besten sauber in einzelnen Units gekapselt)

- Eine neue Mittelschicht(Web-Server mit Delphi realisiert) einführen, die jegliche Business-Logik enthält und entsprechende Calls zur Verfügung stellen,
das diverse "Clients" Daten abrufen, schreiben, auswerten etc. können
WENN die Zwischenschicht auch mit Delphi entwickelt wird können, die schon vorhandenen Delphi-Klassen 1:1 weiter genutzt werden !

- Als Online/Web-Client würde ich eine PWA (Progressive Web App)empfehlen.
Hiermit können Browser, aber auch alle mobilen Geräte "bedient" werden, sogar ein Einsatz auf dem Destop PC als WPA wäre möglich
Die WPA kommuniziert via HTTPS mit der Zwischenschicht, als Datenaustausch-Format empfehle ich JSON.

- Falls für mobile Endgeräte "echte" native Clients/Anwendungen benötigt werden, so können diese auch ohne weiteres durch die Verwendung der Mittelschicht umgesetzt werden.

Jegliche Logik befindet sich in der Zwischenschicht und wird auch nur dort gewartet..... Alles an einer Stelle !!
Jegliche "Clients" sind einfach nur "dumme" Anzeige-Tools, die keinerlei Logik enthalten.
Jede "Entscheidung", Berechnung, Verdichtung, .... wird in der Zwischenschicht umgesetzt.

Ich setzte die gleiche Technik genauso schon in einem ERP ähnlichem Projekt ein, mit über 200 Standorten in Europa verteilt + diverse mobile Mitarbeiter.

Gretes DataCool
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz