Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#52

AW: Modernisierung von Legacy-Anwendungen

  Alt 2. Okt 2024, 11:07
Hallo Sebastian, Sorry für das rauskramen dieses alten Beitrags. Eine Frage: Wir sind dran unsere Delphi Frontends abzulösen. Im Backend sind wir schon mehrheitlich mit .net Core unterwegs. Nun evaluieren wir Angular, React usw. Dabei sind wir auf Svelte gestossen und erste Tests sind begeisternd. Hast Du da Erfahrungen (auch im Vergleich zu React, Angular, Vue)?
Svelte ist noch relativ Jung, und es ist eher leichtgewichtig. Das Entwicklungsmodell ist auch eher statisch, will heissen dort wird alles zur Übersetzungszeit gemacht und nicht zur Laufzeit.
Das mag auf den ersten Blick attraktiv wirken, allerdings kommt es dann darauf an, was man damit machen will.

Businessanwendungen tendieren dazu, irgendwann eine gewisse Komplexität zu erreichen.
Das bedeutet, man braucht zur Laufzeit irgendwann mehr Dynamik - das geht mit Svelte nicht wirklich, weil dort alles zur Build-Time erstellt wird - und zur Entwicklungszeit braucht man viel Übersicht und Kontrolle.
Auch hier hat Svelte massive Nachteile, weil hier sowohl die HTML-Struktur, der JS-Code als auch das Styling in einem File sind. Du hast hier also gar keine Chance, auch nur irgendwas in Richtung Separation of Concerns umzusetzen.

Will heissen, wenn es nur darum geht, eine einfache Master-Detail Ansicht umzusetzen, go for it, aber wenn Du komplexere Anwendungen bauen willst, wirst Du furchtbar schnell an die Grenzen stossen.
Vue hat da ähnliche Probleme.

Bleiben React und Angular über, wenn man wirklich sinnvoll an größeren Applikationen arbeiten will.
Und dann stellt sich die Frage, für was wurden die jeweiligen Frameworks entwickelt bzw. wo kommen sie her.

React kommt von Facebook bzw. Meta. Deren Webanwendungen sind Social Networks. Das bedeutet sehr oft die gleichen Elemente auf einer Seite, endloses Scrolling, und bei jedem Beitrag die gleichen Interaktionsmöglichkeiten, die aber jeweils sehr begrenzt sind (Kommentar hinterlassen, Liken, Teilen...). Das Backend von Facebook war im übrigen historisch mal PHP, dementsprechend fühlt sich das React Modell auch so an wie serverseitiges Rendering.
Wenn das die Hauptaufgaben Deiner Business-Anwendung sind, ja, dann ist React das richtige Tooling.

Angular kommt von Google. Die bauen damit so Sachen wie Gmail, die G Suite bzw. jetzt Google Workspace - also Calendar, Drive, Docs, Sheets, Slides, Forms etc.pp.
Also alles eher komplexe Anwendungen mit eher wenigen sich wiederholenden Elementen und dafür jedes deutlich Interaktionsfreudiger.

Angular setzt dabei auf ein sehr Komponentenorientieres Vorgehen, jede Komponente trennt Layout von Code und von Style, und Angular ist dabei sehr opionated was die richtige Anwendungsarchitektur im Web angeht. Es drängt sehr stark in Richtung reaktives Programmieren (weil der Code nunmal in der Eventloop der JS-Engine des Browsers lebt). Alles was rein kommt ist ein Event (Tastatureingaben, Clicks, Touch-Eingaben, die asynchrone Antwort einer HTTP-Anfrage an den Server, etc.pp.), und RxJS erlaubt es, ungeheuer elegant mit Eventstreams umzugehen. Auch das State-Management ist sehr opinionated mit dem Componentstore.

Wenn man sich also mit der Architektur und den Konzepten dahinter auseinangersetzt hat und versteht, warum das so ist, kannst Du mit Angular in kürzester Zeit die komplexesten Anwendungen umsetzen.
Die Lernkurve dahin ist allerdings zugegebenermassen ein wenig steiler.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat