Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Kann ich meine bestehende Architektur mit WinForms-Client auf eine Web-App umbauen?
thomas.at
myCSharp.de - Member



Dabei seit:
Beiträge: 102
Herkunft: Österreich / Wien

Themenstarter:

Kann ich meine bestehende Architektur mit WinForms-Client auf eine Web-App umbauen?

beantworten | zitieren | melden

Guten Morgen
Ich bräuchte mal Eure Anregungen und Meinungen. Ich habe eine Client-Server-Anwendung welche seit ca. 12 Jahren von mir entwickelt und auch noch immer aktuell weiterentwickelt wird. Diese hat folgenden Aufbau:

1. Server : Windows-Service mit Verbindung zu SQL-,Oracle- und Progress-Datenbanken. Nimmt die Aufrufe der Clients entgegen, verarbeitet diese und sendet via TCP einfache Typen (int,string…) oder eine DataTable zurück.

2. Client : Eine Anwendung welche auf einem Netzlaufwerk liegt und mittels TreeView den Usern die Module anzeigt, für die sie über das AD berechtigt sind. Diese Module (derzeit ca. 85) werden dann als Plugins in eine eigene App-Domaine geladen und ausgeführt. Dadurch kann jederzeit ein Update der Plugins gemacht werden.

Diese Struktur läuft einwandfrei mit WinForms. Jetzt habe ich für die letzte Anwendung bereits den Pfad etwas verlassen, in dem ich für eine andere Anwendung eine Middleware in WPF geschrieben habe, die aber auch auf den Serverdienst zugreift.

Nachdem ja jetzt sehr viel von Web-Anwendungen (Angular, Typescript etc.) die Rede ist würde ich auch gerne auf diese Technologie umsteigen. Die Gelegenheit würde sich demnächst anbieten, da ein neues Projekt (= Plugin) ansteht.

Jetzt meine Frage an Euch: kann ich die bestehende Infrastruktur so weiter verwenden oder müsste ich das ganze neu auf die Beine stellen. Ich stelle mir das ungefähr so vor, dass ich aus der Clientanwendung die Angular-App aufrufe und diese via Web-API Verbindung zu meinem Windowsdienst aufnimmt. Oder seid ihr der Meinung „Schuster bleib bei deinen Leisten“ und ich sollte weiter mit WinForms arbeiten.

mfG
Thomas
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15827
Herkunft: BW

beantworten | zitieren | melden

Eine gute Idee, aber auch eine sehr allgemeine Frage.

Prinzipiell kannst Du alles Richtung Web umbauen - und umgekehrt.
Aber es gibt ausser der Solution Architecture, die Du hier beschreibst, sicherlich auch ein paar Dinge Richtung Software Architecture, die evtl. nicht so einfach umgebaut werden können - zB. Authentifizierung.

Aber an für sich ist das eine gute Idee würde ich erst mal sagen.
Nur greife bitte nicht direkt aus dem Web auf Deine Datenbank zu - sondern wirklich über die von Dir beschriebene API.
private Nachricht | Beiträge des Benutzers
thomas.at
myCSharp.de - Member



Dabei seit:
Beiträge: 102
Herkunft: Österreich / Wien

Themenstarter:

beantworten | zitieren | melden

Hallo

Es geht mir nicht darum, die ganze bestehende Applikation/Infrastruktur umzustellen, sondern nur neue Plugins in die neue Welt zu bringen. Da das ganze nur bei uns im Haus läuft (internes LAN, hinter einer DMZ) wäre das Problem mit der Authentifizierung meiner Meinung nach nicht gegeben (oder sehe ich das falsch?).

Das ganze ist deshalb noch so allgemein, da ich erst mal die Möglichkeiten abklären möchte. Dies damit ich dann entsprechende Schulungen (ohne die es wohl nicht gehen wird) beantragen kann. Wenn ich aber meinem Chef sage "ich muss jetzt alles aus den letzten 12 Jahren umstellen" dann wird die Antwort wohl "Das kannst Du vergessen" lauten.

mfG Thomas
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1836
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

Dann hat sich das Thema wohl erledigt, wenn du an deiner Software nichts ändern willst.
Ohne eine Umstellung deiner aktuellen Software wirst du da nichts machen können.

Ich würde es dir aber empfehlen, dass ganze ins Web zu heben.
Somit kannst du deine Clients über einen Webserver im Browser laufen lassen.
Ebenfalls sind die "Updates" der Client einfacher, da diese einfach nur die neue Web Oberfläche bekommen.
Also die ganzen HTML Seiten + die Skripte dazu.
Die Serverkommunikation eben dann über WebAPI laufen lassen und fertig.

Wenn du aber wirklich nichts machen kannst in diese Richtung, wüsste ich leider nicht wie du deine Änderungen machen könntest.

T-Virus
Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
private Nachricht | Beiträge des Benutzers
ThomasE.
myCSharp.de - Member



Dabei seit:
Beiträge: 453

beantworten | zitieren | melden

Also wenn es nur um einzelne PlugIn's geht, könnte man eine WebAPI bereitstellen, die mit der aktuellen Server-API Kommuniziert, also eine weitere Schicht dazwischen um auch über das WEB mit vorhandenen System arbeiten zu können.

Da wäre es sogar möglich auch vorhandene PlugIn's nacheinander umzubauen, ohne dabei den Betrieb zu stören...

Wenn ich es richtig verstanden habe.
Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen...
private Nachricht | Beiträge des Benutzers