Laden...

Desktop Anwendung zu Web Anwendung migrieren

Erstellt von Jochen1980 vor 5 Jahren Letzter Beitrag vor 5 Jahren 2.767 Views
J
Jochen1980 Themenstarter:in
111 Beiträge seit 2006
vor 5 Jahren
Desktop Anwendung zu Web Anwendung migrieren

Hallo zusammen,

wir sind eine kleine Softwarefirma und haben eine Rich-Client Softwarelösung für einen sehr speziellen Kundenkreis am Markt (soll heißen, es gibt nicht so sonderlich viele Kunden). Bei der Softwarelösung geht es um die Präsentation von unterschiedlichen IST-Werten eines Prozesses sowie die Verwaltung von Workflows.
Wie erwähnt ist die Anwendung zurzeit eine Client-Server Lösung mit Rich Clients. Die Clients sind mit WPF entwickelt.
ZIEL: Diese Architektur soll in eine webbasierte Architektur überführt werden. Wir möchten gerne sowohl Desktop-PCs als auch Tablets und Smartphones als Clients unterstützen.
Da wir eine recht kleine Firma sind, muss das ganze wirtschaftlich bleiben. Daher hoffe ich auf eure Hilfe in Bezug auf die Selektion der richtigen Technik. Primär geht es um die Visualisierung, die serverseitige Software sowie die Datenbank soll weiter verwendet werden.
Anforderungen:

  • Eine Visualisierung die sich dem jeweiligen Client anpasst (Desktop-PC, Tablet, Smartphone)
  • .Net als Framework
  • die Lösung sollte möglichst "einfach" sein, auch wenn dies ggf. Einschränkungen mit sich bringt.

Wenn man nun bspw. an ASP.Net denkt, so würde ich mir vorstellen (oder wünschen), dass es ein Template oder etwas ähnliches wie ein CMS gibt, was einem viel Arbeit in Bezug auf die Kommunikation mit dem Server/Datenbank sowie die Präsentation auf unterschiedlichen Clients abnimmt.

Allerdings ist allein ASP.Net ja bekanntlich schon ein großer "Brocken" bei dem man erstmal wissen muss, in welche Richtung man gehen möchte (MVC, WebPages, WebForms...).

Über jegliche Hilfe würde ich mich sehr freuen!

16.842 Beiträge seit 2008
vor 5 Jahren

ASP.NET ist lediglich ein Framework, kein CMS.
Willst Du hier ein CMS, dann musst Du das selbst bauen - und das ist (vermute ich) nicht in eurem Sinne von Wirtschaftlichkeit.
Ein fertiges CMS auf ASP.NET Core Basis gibt es (IIRC) nicht.

WebForms ist seit bald 10 Jahren tot.
Der aktuelle Weg ist ASP.NET Core mit Razor Pages oder MVC-Middleware.

ASP.NET Core läuft sowohl mit .NET Core wie auch mit .NET Framework - jedenfalls aktuell.
Ich persönlich hoffe, dass ASP.NET Core den Cut zu .NET Framework schafft, und nur noch .NET Core unterstützt.
Dies ist auch bereits auf GitHub in Gespräch.

Was man unter einer "einfachen Architektur" versteht, das weiß ich nicht.
Vermutlich versteht hier jeder was anderes.

Ich kann Dir aber aus Erfahrung sagen, dass es durchaus alles andere als trivial sein kann, eine Desktop Anwendung "mal kurz" in eine ordentliche Webanwendung zu migrieren.

J
Jochen1980 Themenstarter:in
111 Beiträge seit 2006
vor 5 Jahren

Hallo Abt,
danke für deine schnelle Antwort. Das hilft mir schonmal etwas.
Es ist schon Zeit für das Projekt vorhanden, so 2 MJ sollten drin sein.
Gibt es denn bzgl. Präsentation auf unterschiedlichen Clients etwas "fertiges"?

16.842 Beiträge seit 2008
vor 5 Jahren

HTML5. Das versteht jeder Client (und sogar Apps).

Es wäre auch denkbar, dass ihr eine komplette JavaScript-Clientanwendung (Single Page Application) zB. auf Basis von React oder Angular schreibt.
Und ASP.NET ist nur die REST/Json-API.

Das jedenfalls ist das aktuellste, das es derzeit stabil gibt.
Server Side Webanwendungen werden jedenfalls immer weniger.

Ebenso gibt es aber auch (derzeit als Prototyp) die Möglichkeit, dass Client-Anwendungen für das Web als Native Code mit Hilfe von ASP.NET geschrieben werden.
https://github.com/aspnet/Blazor
Das ist das, wohin das Web eindeutig geht: native code (Stichwort WebAssembly) im Web (muss nicht ASP.NET sein).

J
Jochen1980 Themenstarter:in
111 Beiträge seit 2006
vor 5 Jahren

Hab ich das richtig verstanden, dass man ASP.net nicht mehr zu Präsentationszwecken verwendet?

Die Lösungen wäre nun:

  • HTML5 als Präsentation
  • React / Angular als Präsentation
  • Blazor (Prototyp) als Präsentation

Serverseitig wird dann ASP.Net eingesetzt? Oder gibt es hierzu auch noch Alternativen die in unserem Szenario ebenso passen würden?
Unser Ziel ist es natürlich, so viel Servercode wie möglich vom bestehenden Projekt zu verwenden.

5.658 Beiträge seit 2006
vor 5 Jahren

Hi Jochen1980,

man erstellt doch zunächst einmal die Spezifikationen der neuen Web-Anwendung. Im nächsten Schritt kann man sich dann die möglichen Alternativen raussuchen. Und am Ende wird die Entscheidung anhand der Spezifikationen getroffen. Wir kennen deine Spezifikationen nicht, daher können wir dich auch schlecht bei der Wahl einer Technologie beraten.

Weeks of programming can save you hours of planning

C
26 Beiträge seit 2016
vor 5 Jahren

Schau Dir mal Sitefinity an.
Ist von Telerik. Es ist nicht billig, aber dafür ein Feature-Monster (Workflows, Marketing-Tools etc.) und der Support von denen ist ziemlich gut. Clientseitig kannst Du Dich da mit React, Vue, Angular etc. voll ausleben.

Soll es ein CMS auf Basis von ASP.NET Core sein könnte Orchard oder Piranha in Frage kommen - ich kenne beide aber nicht.

J
Jochen1980 Themenstarter:in
111 Beiträge seit 2006
vor 5 Jahren

Erstmal vielen Dank für eure Antworten! Ihr helft mir wirklich so langsam in die richtige Richtung zu denken.
@MrSparkle: bzgl. der Spezifikation hatte ich in meinem ersten Post schonmal ein paar Anforderungen geschrieben:

  • Es sollen sowohl Desktop Clients als auch Tablet/Mobile Clients unterstützt werden
  • wir möchten am liebsten weiterhin mit C# entwickeln
  • die Lösung sollte möglichst "einfach" sein, auch wenn dies ggf. Einschränkungen mit sich bringt.
  • die Anwendung wird IST-Werte eines Prozesses darstellen, sie wird Wirtschaftlichkeitsberechnungen ausführen, sie wird Aufträge anlegen und verwalten müssen [...]
  • sie wird im INTRANET betrieben werden, Internet ist nicht nötig.
  • bei der Web-Architektur geht es uns vor allem um die problemlose Skalierbarkeit der Clients

@codesoldier: Danke dir, werde ich mir anschauen.

Was ich bislang recht interessant finde ist CSHTML5. Kennt das jemand bzw. hat damit jemand Erfahrung? Auf der ersten Blick sah mir das ganz brauchbar aus. Allerdings habe ich noch nichts bzgl. Desktop/Mobile Client und der nötigen automatischen Anpassung des Präsentation gefunden.

Bzgl. CMS: Ich möchte kein CMS entwickeln, vielleicht habe ich mich hier etwas falsch ausgedrückt.

5.658 Beiträge seit 2006
vor 5 Jahren

Wenn ihr ausschließlich C# verwenden wollt, dann könnt ihr ASP.NET MVC verwenden, oder gleich die bestehende Architektur beibehalten. Wenn ihr sie sowieso nur intern verwenden wollt, dann sollte es ja kein Problem sein, die Software lokal zu installieren.

Wenn ihr den Client mit TypeScript entwickeln wollt, würde ich Angular empfehlen. Für JS gibt es noch wesentlich mehr Alternativen.

Alles, was du in deinem letzten Post aufgezählt hast, ließe sich mit allen genannten Technologien umsetzen. Möglichst "einfach" ist natürlich schwer zu definieren. Aber im ersten Post schriebst du etwas von Visualisierungen. Vielleicht solltest du das mal etwas ausführlicher beschreiben.

Weeks of programming can save you hours of planning

J
Jochen1980 Themenstarter:in
111 Beiträge seit 2006
vor 5 Jahren

Die Anwendung lokal auf einem Server zu installieren ist nicht nur kein Problem sondern grundlegende Voraussetzung.
Grundsätzlich ist unser Mutterkonzern eine Maschinenfabrik. Unsere Kunden werden die Software als optionalen Zusatz zu den Maschinen kaufen können. Sie werden davon ausgehen, dass man die Software OHNE Internetverbindung nutzen kann. Somit muss die Anwendung lokal im Intranet laufen und entsprechend auch installiert sein.
Wenn ich deine Aussage bzgl. MVC richtig verstehe dann heißt das, dass wir den Client auch mit MVC entwickeln können und dennoch "Up-to-date" sind?
Mit "möglichst einfach" meine ich folgendes (und daher auch Einleitend der Hinweis auf ein CMS): Bei manchen CMS sind die erzeugten Seiten direkt auch für bspw. Mobile Devices optimiert. Adaptiere ich das auf mein Projekt, so hätte ich es natürlich sehr gerne, dass das entwickelte UI direkt auch in einer anderen View für Tablet/Smartphone optimiert ist, also der Content sich anpasst bzw. angepasst dargestellt wird.

286 Beiträge seit 2011
vor 5 Jahren

Hallo Jochen1980,

noch ein kleiner Einschub zu eurer Mobile- & Desktop-Anforderung: Wenn ihr den HTML-Teil eures Systems mit Bootstrap entwickelt und dabei im Design den mobile-first-Ansatz beherzigt ist eure Anwendung sowohl desktop- als auch mobile-fähig (egal welche Display-Größe) ohne, dass ihr besonders viel selber entwickeln müsst.

Es gibt für Bootstrap auch zahlreiche kostenpflichte sowie -lose Templates die euch zumindest was das Design und die Funktionalität einer WebApp eine Menge arbeit abnehmen können. Bei vielen Templates gibt es auch Beispielprojekte für AspNetCore.

Beste Grüße
emuuu

2+2=5( (für extrem große Werte von 2)

J
Jochen1980 Themenstarter:in
111 Beiträge seit 2006
vor 5 Jahren

@emuuu: vielen Dank für den Hinweis, Bootstrap ist auch sehr Interessant und der Ansatz "Mobile First" ist echt gut!

16.842 Beiträge seit 2008
vor 5 Jahren

emuuu, Deine Hinweis auf Mobile First hat nichts mit Mobiltelefon respektive Responsive zutun.

Mobile First heisst nichts andere als "von unterwegs" - das wird oft missverstanden; besonders in Deutschland, wo man eben von "Mobiltelefon" spricht und daher die Assoziation entsteht.

Eine Webseite erfüllt den Mobile First Gedanken - egal ob sie vom Mobiltelefon oder vom Desktop verwendet wird.

286 Beiträge seit 2011
vor 5 Jahren

Eine Webseite erfüllt den Mobile First Gedanken - egal ob sie vom Mobiltelefon oder vom Desktop verwendet wird.

Mobile First ist im Website-Design, dass Konzept das eine Website in erster Linie für die Anzeige auf mobilen Endgeräten optimiert wird.
Wäre mir jetzt neu, dass es etwas völlig anderes bedeutet, hast du da eine Quelle? Alles was ich jetzt auf die Schnelle finde stützt eher meine Interpretation.

2+2=5( (für extrem große Werte von 2)

16.842 Beiträge seit 2008
vor 5 Jahren

Mobile First heisst, dass sowohl die Anwendung wie auch die Daten nicht an ein Gerät gebunden sind, es also eine Server-Schnittstelle gibt, über die die Daten synchronisiert werden.
Der Grundgedanke von Mobile First hat nichts mit einer UI allein zutun.

Wenn man nun UX/UI anschaut, dann sind das natürlich Mechanismen, wie Mobile First auf die Bedienung von Devices adaptiert wurde.
Das liegt natürlich daran, dass die Zahl an Handys deutlich schneller steigt als die Zahl von PCs oder Laptops - und die Menschen mehr unterwegs machen.

Ein Laptop oder Tablet ist genauso im Rahmen von Mobile First - auch wenn Du kein Responsive brauchst.

Es gibt den Mobile First approach eben bei UX - und bei Architektur.
Wahrscheinlich findest Du mehr UX-Treffer, das mag sein, weil es User-getrieben ist - der ursprüngliche Gedanke dessen, ist ein anderer.

Weil von "Mobile First" alleine immer so viel missverstanden wird, spricht Microsoft auch ausschließlich in Kombination "Mobile First - Cloud First".
Gibt ein gutes Interview von Satya Nadella dazu.

286 Beiträge seit 2011
vor 5 Jahren

Mobile First heisst, dass sowohl die Anwendung wie auch die Daten nicht an ein Gerät gebunden sind, es also eine Server-Schnittstelle gibt, über die die Daten synchronisiert werden.
Der Grundgedanke von Mobile First hat nichts mit einer UI allein zutun.

Ok, war mir nicht bewusst, dass der Begriff noch für andere Bereiche abseits des Webdesigns verwendet wird.

Dann nochmal für meine Aussage oben spezifiziert ich meine die Website erstellen im Sinne von "designing for the smallest screen and working your way up."

2+2=5( (für extrem große Werte von 2)