Womit werden Web-basierte Geschäftsanwendungen entwickelt?

KatzOderKoder

Cadet 2nd Year
Dabei seit
Okt. 2019
Beiträge
17
Hallo Zusammen,

Die Frage vorab: Mit welchen Werkzeugen, Frameworks und Co. werden Web-basierte Geschäftsanwendungen wie Warenwirtschaftssysteme, Fertigungssteuerung, Auftragsabwicklungssysteme usw. entwickelt. Hier geht es NICHT um Webseiten sondern um "Expertensysteme" womit die Anwender Aufträge abwickel! Meine Frage zielt darin, zu erfahren mit welcher Programmiersprache(n), Werkzeuge, Framework usw. Schnell und damit produktiv komplexe Warenwirtschaftssysteme entwickelt werden können?

Ich muss leider ausholen...Entschuldigung für so viel Text.

Ich entwickle seit vielen Jahren die oben genannten nativen Windows Anwendungen mit Delphi(Object Pascal). Ich hatte bis jetzt keine Projekte für Web-Anwendungen. Dennoch interessiert mich dieses Thema ungemein und versuche krampfhaft mich einzuarbeiten. Seit etwa zwei Jahren beschäftige ich mich jede freie Minute mit PHP, JavaScript, HTML5, Bootstrap, twig, guzzle und habe PHPStorm eingekauft. Damit habe ich drei private Projekte umgesetzt. Der notwendige Aufwand im Vergleich zu Delphi ist extrem hoch. Ich frage mich wie werden komplexe Webanwendungen umgesetzt? Da muss es etwas anderes geben, denn mit den oben genannten Werkzeugen ist es zwar möglich jedoch unbezahlbar!

Ich habe kein konkretes Projekt und nehme eines aus dem realen Leben eine Anwendung für Pizza Bestell Service mit den Modulen: Kundenverwaltung mit kompletter Adresse und Kontaktdaten, Auftragsverwaltung für die eingehenden Kundenbestellungen, Fertigungssteuerung für Pizzabäcker wie denn die bestellte Pizza belegt werden soll, Warenausgang für den Lieferservice, Kassenbuch für die Buchhaltung usw. Ich könnte mit meinem Wissen dieses Projekt mit PHP für die Serverseitige Umsetzung und Bootstrap, html, Javascript für das UI Clientseitig umsetzen. Der Aufwand ist jedoch so groß dass sich so ein kleines Projekt überhaupt nicht rechnen würde. Mit Delphi ist dieses Projekt in 3-5 Tagen fertig. Mit PHP und Co. 3-5 Wochen.

Ich habe über Angular, React und Vue gelesen und versuche herauszufinden ob das evtl. ein besserer Weg im Vergleich zu PHP sein könnte. Mit Vue beschäftige ich mich gerade und lerne es anhand eines 300 seitigen Buches kennen. Ab der Mitte des Buches braucht man plötzlich weitere Bibliotheken wie Axios, ECMAScript 6 welches die JavaScript Sprache zwar erweitert, jedoch anders aussieht und nicht kompatibel mit allen Browsern ist, dann braucht man Vanilla JS, Babel, Gulp, Webpack usw. So ein Durcheinander. Welchen Aufwand es bedeuten würde das oben beschriebene Projekt zu entwickeln, haben ich keine Ahnung. Das kann ich nicht abschätzen.

Die Welt dreht sich um Web-Anwendungen. Es kann doch nicht sein dass alle Kunden die eine Web-Wendungen sich entwickel lassen bescheuert sind und ein vielfaches für das gleiche Ergebnis im Vergleich zu nativen Delphi Anwendungen bezahlen. Hier stimmt etwas nicht.

Ich hoffe mit jemandem darüber Ergebnis offen diskutieren zu können der genau solche komplexe Anwendungen erzeugt.
 

Toms

Vice Admiral
Dabei seit
Juni 2011
Beiträge
6.497
Die ganzen JavaScript Frameworks sind Frontendsysteme, mit denen du PHP nicht ersetzen wirst.

Versuch doch mal eine kleine Webapp mit Angular Frontend (programmiert wird mit TypeScript) und NodeJS (+ExpressJS) Backend, welches wahlweise mit JavaScript, oder TypeScript programmiert werden kann
 

Jesterfox

Fleet Admiral
Dabei seit
März 2009
Beiträge
40.421
Meine Frage zielt darin, zu erfahren mit welcher Programmiersprache(n), Werkzeuge, Framework usw. Schnell und damit produktiv komplexe Warenwirtschaftssysteme entwickelt werden können?
Ich hätt ja jetzt behauptet "gar nicht", denn komplexe Systeme entwickelt man nicht so einfach mal schnell...

Ich hab für solche Anwendungen vor allem entweder das .NET Framework oder Java im Sinn, mag aber auch daran liegen das ich mit ersterem selbst arbeite. Wobei man mit den nackten Frameworks auch nicht weit kommt und dann noch diverse Zusätze (Persistenz-Framework usw.) je nach Anwendungsfall nimmt.

Dazu kommen dann noch die Frontend-Sachen, bei Web-Apps bin ich da aber nicht mehr so ganz aktuell, aber Angular ist n Begriff den ich da schon öfters gehört hab ;-)
 

Amaoto

Lieutenant
Dabei seit
Mai 2018
Beiträge
918
Da gibt's sehr viele verschiedene Möglichkeiten mit teils unterschiedlichen Schwerpunkten und Herangehensweisen. Wenn du von Delphi kommst, wäre evtl. ASP.NET interessant, weil es dort direkt unterstützt wird.
 

blackbirdone

Lieutenant
Dabei seit
Feb. 2007
Beiträge
855
Php backend Symfony
Java backend spring oder Eigenkonstruktion
Js nodejs

Frontend Standard javascript HTML stuff oder react angular

Was fertiges gibs da nicht. Deshalb dauert so ein bankenprojekt auch jahre..

Das kleine pizzaprojekt schaffst du auch in einer Woche. Die frameworks wie symfony bringen dir doch schon eine tonne an funktionen für Sicherheit Authentifizierung ect mit.
Symfony und spring haben auch abgespeckte varianten für solche kleinen projekte.

IT Projekte sind selten ein Mann sondern Team Projekte.

Außerdem sollte man nicht vergessen, wenn du nur web Projekte machst hast du viele condigs und codetemplates da. Selbes fürs frontend. Das senkt den aufwand massiv
 

wirelessy

Commander
Dabei seit
Nov. 2008
Beiträge
3.070
Was du da beschreibst ist auch nicht unbedingt (je nach Ausbau!) das beste Beispiel für eine Webanwendung.
Aber: Was hindert dich denn, an deine mit Delphi geschriebene Geschäftslogik einfach ein Webfrontend anzukleben?
Du musst Schnittstellen bauen. Diese Schnittstellen kannst du dann mit Methoden aus der Delphi-Welt und Methoden aus der Web-Welt bedienen.
Evtl. brauchst du auch Schnittstellen zu anderer Software, die bei anderen Firmen läuft. Da gibts dann halt Anforderungen für Echtzeitdatenaustausch und für sowas bietet sich eben eine Webanwendung an.

Deswegen macht man geschäftliche Webanwendungen. Für Echtzeitdatenaustausch unter Services. Stichwort: Microservicearchitektur. Für Flexibilität.

Und die webfähigen Backends kannst du quasi in jeder beliebigen Sprache programmieren.
Die ganzen Frontends und ihre Frameworks, das "Darstellen im Browser" ist überhaupt nicht das Interessante. Das ist höchstens für Kompatibilität der Fall.

Schreib die Logik nicht in PHP. Mach das dadrin, womit du gut ist. Und verbinde das ganze dann über Schnittstellen - ob Mensch, also GUI oder Maschine, also API.

Mehr steckt da nicht hinter. Der einzige Grund für Webanwendungen sollte sein, dass ich über verschiedenste komplexe Systeme hinweg extreme Kompatibilität und Netzwerkkommunikation brauche. Für alles andere gibt sicherlich lokal bessere Lösungen.

//edit: Der über mir genannte Punkt "Security" ist auch ein großer Faktor für mehr Aufwand. Ich hab ganz andere Probleme und Risiken bei einer Webanwendung, als bei einer lokalen. Da gibts einfach nochmal viel mehr Aspekte zu beachten.

Tipp: Überleg dir mal, was wirklich komplexe Webanwendungen sind. Netflix. Youtube. Google Maps. Nicht dein kleines lokales Warenwirtschaftssystem.
Das kann auch dazu werden, aber nicht in dem Scope, wie du es beschreibst.
Und jetzt überleg dir, wie du Google Maps in Delphi machst. Ich bin mir sicher, darin kannst du eine Antwort finden.
"Hier geht es nicht um Webseiten!" - dann ich bitte darum, Webseite und Webanwendung auszudifferenzieren!
 
Zuletzt bearbeitet:

KatzOderKoder

Cadet 2nd Year
Ersteller dieses Themas
Dabei seit
Okt. 2019
Beiträge
17
wow, meine Anfrage ich ja noch heiß und schon hagelt es Antworten. Vielen Vielen Dank, damit habe ich nicht gerechnet!

Ich würde gerne solche Anwendungen nach dem Prizip Mehrschichtige Anwendung umsetzen. Ich kann mit Delphi einen REST-API Server bereitstellen der die komplette Geschäftslogik abbildet. Primär geht es um die Web UI. Genau hier sind die Probleme. Bei Windows-Anwendungen lege ich einfach die Form-Größe fest und packe die Form mit alle Infos die der Anwender für die spezielle Aufgabe benötigt, drauf. Hier gilt das Prinzip möglichst effizient alle benötigte Infos zu sehen. Bei Web-Anwendungen funktioniert dieses Prinzip nicht oder nicht so leicht. Ich habe unterschiedliche devices wie Monitore, Tablets, smart phones usw. Die Forms müssen primär dem device angepasst werden. Dabei leidet je nach Form die Effizienz da eben nicht alle Infos angezeigt werden können.

Mit PHP habe ich jetzt die meiste Erfahrung gesammelt. Als Backend System könnte ich es mir auch vorstellen für etwas kleinere Anwendungen die keinen REST-API Server benötigen. Die UI macht mir die größten Probleme! Wenn ich unter PHP als Template Werkzeug twig und Bootstrap verwende kombiniert mit JavaScript für die Clientseitige Programmierung, dann entstehen auch für kleinste Projekte etliche Dateien. Hier verliert man sehr schnell den Überblick. Für eine normale Form wird ein PHP File für die Form Logik benötigt, eine weitere für den Datenbankzugriff über PDO, eine weitere für das twig Template, eine weitere für die JavaScripts der AJAX Methoden und event handler. Und wehe du willst eine Tabelle bearbeiten, darin suchen, neue Datensätze anlegen. Solche alltägliche Aufgaben müssen alle zu Fuß umgesetzt werden. Das ist maximal Zeitraubend und Fehleranfällig. In Delphi lege ich ein Grid auf die Form, binde es an die Datenquelle und bin in unter einer Minute fertig. Damit kann ich neue Datensätze anlegen, löschen bearbeiten, suchen, die Tabelle sortieren, die Felder verschieben usw. dabei habe ich 0 Zeilen Code geschrieben. Ich habe Anwendungen mit über 400 Formularen. In den Formularen sind teilweise mehrere Tabellen und zig Edit-Felder, DropDown, Tab-Controls usw.. Das mit PHP, twig, Bootstrap, Ajax, guzzle und Javascript umzusetzen ist für jemand der Vater und Mutter erschlagen hat.

Das kann nicht sein, hier muss es auch für das Web Werkzeuge geben. Ich habe mir schon Bibliotheken angeschaut wie Sencha die nehmen einiges ab, aber zur Produktivität mit Delphi im Vergleich sind sie alle Lichtjahre entfernt.
 

Hibbelharry

Ensign
Dabei seit
Juni 2004
Beiträge
245
Mit PHP habe ich jetzt die meiste Erfahrung gesammelt. Als Backend System könnte ich es mir auch vorstellen für etwas kleinere Anwendungen die keinen REST-API Server benötigen.
Warum? Um sowas in PHP zu machen gibts prima Helfer wie das Slim Framework.

Die UI macht mir die größten Probleme! Wenn ich unter PHP als Template Werkzeug twig und Bootstrap verwende kombiniert mit JavaScript für die Clientseitige Programmierung, dann entstehen auch für kleinste Projekte etliche Dateien.
Ja, viele Dateien macht aber nichts. Lieber 1000 unit-testbare kleine Dateien als ein nicht testbares 10k Zeilen Monster.

Für eine normale Form wird ein PHP File für die Form Logik benötigt, eine weitere für den Datenbankzugriff über PDO, eine weitere für das twig Template, eine weitere für die JavaScripts der AJAX Methoden und event handler.
Nee, das ist kein Zwang.

Und wehe du willst eine Tabelle bearbeiten, darin suchen, neue Datensätze anlegen. Solche alltägliche Aufgaben müssen alle zu Fuß umgesetzt werden.
Warum denn das? Und was ist zu Fuß?

Gute Frameworks wie Laravel oder CakePHP untertützen einen auch dabei.

In der Flexibilität liegt der Hund begraben :).
Das stimmt tatsächlich. Delphi ist Technik der Vergangenheit, nix Cross Platform oder Cross Device und ziemlich überholt. Ich würde mir ziemlich einen abbrechen damit eine anständige Anwendung zu schreiben, die portabel und flexibel ist. Da gibts doch bestimmt was besseres.
 

KatzOderKoder

Cadet 2nd Year
Ersteller dieses Themas
Dabei seit
Okt. 2019
Beiträge
17
Tipp: Überleg dir mal, was wirklich komplexe Webanwendungen sind. Netflix. Youtube. Google Maps. Nicht dein kleines lokales Warenwirtschaftssystem.
Das kann auch dazu werden, aber nicht in dem Scope, wie du es beschreibst.
Und jetzt überleg dir, wie du Google Maps in Delphi machst. Ich bin mir sicher, darin kannst du eine Antwort finden.
"Hier geht es nicht um Webseiten!" - dann ich bitte darum, Webseite und Webanwendung auszudifferenzieren!
Sicherlich liegt es an mir da ich immer noch kein Gefühl für Webanwendungen habe. Übrigens, dein Hinweis Webseite und Webanwendung auszudifferenzieren, da bin ich voll bei dir. Ich bin gedanklich auf gefesselt an Windows-Anwendungen da ich nie etwas anderes gemacht habe. Web-Anwendungen faszinieren mich dennoch und ich möchte unbedingt da hin. Leider habe ich nicht einmal ein Projekt dafür. :-) Mein letztes privates Projekt für ein Verein habe ich voller Euphorie begonnen und bin an der GUI gescheitert. Mir war meine Zeit einfach zu schade. Ich lasse dennoch nicht locker. Ich bin überzeugt davon, es muss etwas geben, darf auch was kosten. Gute Werkzeuge dürfen auch Geld kosten.
Ergänzung ()

Warum denn das? Und was ist zu Fuß?

Gute Frameworks wie Laravel oder CakePHP untertützen einen auch dabei.
Aha, da kommen wir der Sache vermutlich näher. Beide habe ich mir noch nicht angeschaut.
Da würde ich etwas einhacken wenn ich darf.
Zumindest in meiner Vorstellung habe ich es immer mit Daten zu tun. Mit PDO komme ich besten klar. Jetzt geht es darum die Daten dem Anwender bearbeitbar zu präsentieren. Aus dem Bauch heraus würde ich schätzen, ich habe 70% bearbeitbare Forms und 30% ReadOnly Forms. Ich benötige effiziente "Controls" die es ermöglichen Datengebunden zu bearbeiten. Ist Laravel oder CakePHP genau dafür gedacht? Liefern die auch eigene Controls die möglicherweise auch ähnlich aussehen wie Bootstrap? Ich erwähne Bootstrap nur weil sie mir optisch gefallen und das Prizip mobile first unterstützen.
 
Zuletzt bearbeitet:

KatzOderKoder

Cadet 2nd Year
Ersteller dieses Themas
Dabei seit
Okt. 2019
Beiträge
17
Mit "alles zu Fuß machen" meine ich, um eine Bootstrap Tabelle editierbar zu machen muss man die gesamte Logik selbst umsetzen. Je ein Button für Insert, Edit, Delete, das Suchen innerhalb der Werte der Tabelle, das Sortieren usw. Eigentlich sind das doch alltägliche Aufgaben. Ich stelle mir vor, ich habe eine Tabelle dieser ich mit einer Datenquelle binde und fertig. Bezüglich Tabellen gibt es "DataTables" Habe ich bereits eingekauft. Damit bin ich leider auch nicht klar gekommen. Ich habe jetzt nicht mehr in Erinnerung was genau nicht funktioniert hat, aber vom Prinzip her meine ich genau das. Controls zu haben die man an einer Datenquelle bindet und damit die Datensätze bearbeiten kann. Mit Datenbanken fühle ich mich wohl. Die SQL statements für CRUD selbst zu schreiben ist für mich völlig in Ordnung. Ich meine wirklich NUR die Platzierung der Controls auf einer Webseite, und die Anbindung an einer Datenquelle.

Ich werde mir die Empfohlenen Frameworks Laravel und CakePHP genauer anschauen.
Vielen Dank an ALLE!
 

Ebrithil

Lieutenant
Dabei seit
Dez. 2014
Beiträge
564
Wenns dir nur darum geht, Daten in einer Tabelle zu präsentieren und bearbeitbar zu machen, kannst du dir auch mal https://www.ag-grid.com/ angucken.
 

Tourgott

Lt. Commander
Dabei seit
Aug. 2009
Beiträge
1.256
Backend: PHP bzw. ein Framework wie Laravel
Frontend: Javascript bzw. ein Framework wie React
+ CSS bzw. ein Framework wie Bootstrap

Eventuell denkst du aber auch zu kompliziert. Das Bestellsystem, welches du in deinem ersten Beitrag erwähnst, kannst du auch mit fertigen Systemen wie Magento, o.ä. umsetzen.

Wenn du auch noch nach einem WaWi zur Verwaltung des Ganzen suchst, kannst du dich mal bei Systemen wie jtl umschauen. In Verbindung mit dem jtl Shop und etwas Anpassung für den "individuellen" Pizza-Builder ist so ein Projekt relativ schnell umgesetzt.

Gerade im Umgang mit Kundendaten würde ich auf gar keinen Fall ein eigenes System entwickeln.
 

ayngush

Lt. Commander
Dabei seit
Okt. 2007
Beiträge
1.607
So sieht das bei uns aus: MS SQL Server, virtuelle Debian Webserver mit Apache & PHP, Slim-Framework, TWIG, Bootstrap 4 mit jQuery, Fontawesome, Mustache.js und ettliche weitere Dependencys wie JWT, mPDF usw.
Ist aber auch noch viel Legacy Code dabei. Neu würde ich das anders aufziehen.
Tipp: Kipp deine gesamte business logic in REST-APIs und trenne das strikt vom Frontend.

Gerade im Umgang mit Kundendaten vertraue ich nur meiner eigenen Entwicklung, Magento zum Beispiel ist doch am laufenden Band kaputt. Genau so wie Drupal, Typo3 und Wordpress.
 

Sparta8

Lieutenant
Dabei seit
Juli 2008
Beiträge
955
Gerade im Umgang mit Kundendaten vertraue ich nur meiner eigenen Entwicklung, Magento zum Beispiel ist doch am laufenden Band kaputt. Genau so wie Drupal, Typo3 und Wordpress.
Naja kommt halt auf die eigenen Kenntnisse drauf an und inwiefern man sich das zutraut. Er hat ja gemeint er würde auf keinen Fall ein eigens System nehmen. (nicht man)
 

Legolas

Ensign
Dabei seit
Sep. 2018
Beiträge
233
Also ich kenne eine Finanzbuchhaltung die mit Java programmiert wird und auf einem Apache Tomcat läuft. Sehr performant, läuft bei einigen sehr großen Kunden. Lässt sich bedienen wie eine Desktopanwendung.
 

KatzOderKoder

Cadet 2nd Year
Ersteller dieses Themas
Dabei seit
Okt. 2019
Beiträge
17
Hallo Zusammen,

das Forum ist echt voll krass. :-)

Sorry, ich muss erst herausfinden was ich eigentlich brauche oder wo ich Probleme sehe.

Ein paar Antworten auf Eure Fragen bzw. Kommentare:
-Ich möchte auf jeden Fall kein CMS für meine Anwendungen benutzen. Die Anwendungen sind zu individuell.
-Für grössere Projekte dessen Datenbank NICHT auf dem Web-Server liegen darf, würde ich auf jeden Fall die Geschäftslogik in einem REST-API Server packen den ich mit Delphi Entwickeln würde. Über PHP würde ich die CRUD Methoden die der REST-API Server bereitstellt konsumieren.
-Für kleinere Projekte dessen Datenbank auf dem Web-Server liegen dürfte würde ich die Geschäftslogik mit PHP umsetzen.
-Das komplette Backend ist eigentlich nicht meine Sorge.

Meine Sorgen sind der Aufwand im Frontend. Hier muss anscheinend alles selbst gemacht werden. Wie oben erwähnt, suche ich nach fertigen Bibliotheken die mir die Arbeit abnehmen. Sicherlich könnte man sagen, wenn du eine Bootstrap-Tabelle editierbar gemacht hast, mit pagination, Sortierung, Filter usw. dann kannst du es in allen Projekten hineinkopieren und damit arbeiten. Meine Vorstellung ist, dass sind doch Standardaufgaben die es doch sicherlich fertig geben wird. Ich muss doch das Rad nicht neu erfinden. Den Vorschlag "ag-grid" haben ich mir noch nicht angeschaut. Hier ist glaube ich die Rede vom Grid. Es betrifft jedoch auch die anderen Controls die Datengebunden sein können und sollen.

Kennt jemand solche Bibliotheken?
 
Top