Erneuern, sanieren, erweitern – warum, womit und wie? Softwaremigration – ein Beispiel mit dem Framework Wisej.NET

Ein Gastbeitrag von Dr. Veikko Krypczyk und Elena Bochkor * 12 min Lesedauer

Ziel einer Software-Migration ist die Erneuerung eines Anwendungssystems, damit es auch aktuelle Anforderungen erfüllt. Bestimmte Teile wie die Geschäftslogik sollen dabei erhalten bleiben. Gegenüber der Neuentwicklung spart dies Ressourcen, Zeit und Aufwand – sofern das Tooling stimmt.

Screenshot der Homeseite der <a href=https://madewithwisej.com/>migrierten Web-Applikation</a> (links) und Detailansicht der Software von BTG.
Screenshot der Homeseite der migrierten Web-Applikation (links) und Detailansicht der Software von BTG.
(Bild: Krypczyk / Bochkor)

Für eine Software-Migration können verschiedene Gründe sprechen, zum Beispiel das Ersetzen von veralteten oder nicht mehr unterstützten Systemen, die Integration neuer Funktionen oder die Verbesserung der Leistung. Auch der stetige technische Fortschritt kann zu einem umfassenden Anpassungsbedarf des Systems führen. Gegenüber einer Neuentwicklung der Software sollen durch eine Softwaremigration Ressourcen, Zeit und Aufwand gespart werden.

Der mögliche Erfolg eines solchen Projektes hängt von einer Vielzahl von Faktoren ab, beispielsweise dem Zustand des Altsystems, der Möglichkeit einer toolgestützten Migration und letztendlich auch vom konkreten Ziel. Entscheider, welche ein passendes Vorgehen auswählen, können sich dabei an erfolgreich realisierten Projekten orientieren. Dabei gilt es aus dem Einzelfall zu lernen und bewährte Vorgehensweisen zu übernehmen.

Dieser Artikel beleuchtet mehrere Teilaspekte einer Softwaremigration. Zunächst werden die möglichen Gründe und Ansatzpunkte eines solchen Vorhabens beleuchtet. Obwohl jede Softwaremigration individuell ist, können Gemeinsamkeiten in der Technologie und im Tooling ausgemacht werden. Wir betrachten beispielhaft ein erfolgreiches Migrationsprojekt und analysieren dabei die angewendete Vorgehensweise und den Werkzeugeinsatz. Aus diesem Einzelfall kann man wertvolle Erkenntnisse ableiten und daraus Schlussfolgerungen für ähnliche Projekte ziehen.

Die Softwaremigration

Es gibt verschiedene Gründe für eine Softwaremigration. Zu nennen sind beispielsweise:

  • Plattformaktualisierung: Wenn eine ältere Version einer Plattform oder eines Betriebssystems abgekündigt oder nicht mehr unterstützt wird, müssen die Anwendungen migriert werden, um auf der aktuellen Plattform zu laufen.
  • Infrastrukturwechsel: Wenn Unternehmen ihre IT-Infrastruktur ändern, zum Beispiel von lokalen Servern zu Cloud-Plattformen wie Amazon Web Services oder Microsoft Azure, erfordert dies oft umfassende Anpassungen.
  • Funktionalitätserweiterung: Manchmal erfordern neue Geschäftsanforderungen umfassende Änderungen am bestehenden System, welche sich nicht durch eine Anpassung des Systems (Update) realisieren lassen.
  • Technologische Weiterentwicklung: Die IT unterliegt einen stetigen technischen Wandel. Mit der Zeit müssen die Anwendungssysteme auf die neue Technologie überführt werden. Ein typisches Beispiel ist die Transformation von lokal installierten Desktop-Anwendungen hin zu in der Cloud betriebenen Web-Applikationen.

Die Migration von Softwareanwendungen ist in der Regel eine komplexe und sehr umfangreiche Angelegenheit. Dennoch sollte aus bekannten Gründen deren Realisierung geprüft werden, denn die Neuentwicklung ist meist noch aufwändiger. Bei der Migration werden oft größere, historisch zusammengewachsene Anwendungen, die bereits lange im Einsatz sind und einen hohen Grad an Komplexität aufweisen, umfassend angepasst.

Die zu migrierenden Anwendung bestehen in der Regel aus einer Vielzahl von Komponenten, Modulen, Datenbanken und Abhängigkeiten, die alle sorgfältig übertragen und auf der neuen Plattform oder Infrastruktur rekonfiguriert werden müssen. Außerdem sind die bestehenden Softwareanwendungen von bestimmten Betriebssystemen, Bibliotheken, Frameworks oder anderen Softwarekomponenten abhängig.

Bei der Migration müssen diese Abhängigkeiten berücksichtigt und gegebenenfalls aktualisiert oder angepasst werden. Es können daher Kompatibilitätsprobleme auftreten, wenn die neue Umgebung nicht vollständig mit den Anforderungen der Anwendung übereinstimmt. Ein weiterer und für den Erfolg und insbesondere für die Effizienz des Vorhabens entscheidender Aspekt sind die Möglichkeiten der Werkzeugunterstützung (Tooling).

Nach der Migration ist es entscheidend, umfassende Tests durchzuführen. Es ist sicherzustellen, dass die migrierte Software ordnungsgemäß funktioniert und den Erwartungen entspricht. Dies beinhaltet das Testen der Funktionalität, der Leistung und der Interoperabilität sowie die Überprüfung der Datenintegrität.

Die Softwaremigration ist eine komplexe Aufgabe und erfordert eine gründliche Planung, um mögliche Risiken und Störungen zu minimieren. Es ist wichtig, alle beteiligten Komponenten und Abhängigkeiten zu analysieren und einen detaillierten Migrationsplan zu erstellen, um einen reibungslosen Übergang zu gewährleisten (siehe die folgende Tabelle).

Migrationsaspekt
Hinweis
Funktionen
Bei der Migration einer Anwendung müssen alle Funktionen und Leistungsmerkmale erhalten
bleiben. Die Anwendung sollte nach der Migration genauso gut oder besser
funktionieren als zuvor.
Leistung und Performance
Die Leistungsoptimierung kann eine zusätzliche Herausforderung darstellen, insbesondere wenn die neue Umgebung unterschiedliche Ressourcen- und Skalierungsmöglichkeiten bietet.
Ausfallzeiten
Während der Migrationsprozess durchgeführt wird, kann es zu Ausfallzeiten kommen, in denen die Anwendung für Benutzer nicht verfügbar ist. Ein paralleler Betrieb des Altsystems und eine schrittweise Migration können dieses Risiko minimieren.
Benutzerakzeptanz
Ein neues System erfordert stets auch ein Umlernen bei den Anwenderinnen und Anwendern. Diese müssen deutliche Vorteile durch die Migration erkennen, um das Vorhaben zu
unterstützen. Dafür ist es auch wichtig, sorgfältig zu planen, um Unterbrechungen so gering wie möglich zu halten und alternative Lösungen bereitzustellen, um die Auswirkungen auf die Benutzer zu minimieren.
Risiken und Fehler
Jede Softwaremigration birgt Risiken und die Möglichkeit von Fehlern. Es können unerwartete Probleme auftreten, wie Datenverlust, Dateninkonsistenzen, Konfigurationsfehler oder Inkompatibilitäten. Daher erfordert die Migration eine gründliche Planung, Testphasen und Back-up-Mechanismen, um mögliche Risiken zu minimieren.

Im Folgenden beschreiben wir beispielhaft die Migration einer Desktop-Anwendung hin zu einem webbasierten Anwendungssystems. Daraus lassen sich allgemeine Erkenntnisse in Fragen des Vorgehens und der Werkzeugunterstützung für ähnliche Projekte ableiten.

Migration einer Software für Live-Kommunikation

Betrachtet wird eine werkzeuggestützte Softwaremigration von einer Desktop-Applikation zu einer Web-Anwendung. Dabei handelt es sich um eine Paging-Lösung für Gäste und Mitarbeitenden mit den Kernfunktionen einer Live-Kommunikation und einer Echtzeitortung bei Nutzung verschiedener Arten von drahtlosen Kommunikationssystemen der Firma Brighton Technologies Group (BTG).

Die Herausforderung des Projektes bestand in der Überführung eines Desktop Life-Kommunikationssystems mit der Funktion der Echtzeit-Standortbestimmung in eine Web-Lösung. Das Team suchte nach einer schnellen Entwicklungsmöglichkeit, die eine Umstellung vom Client zum Web möglich machte. Die Motivation zu einem Technologieupdate bestand vor allem darin, dass einige Kunden mehr als 300 Client-Systeme angebunden hatten, welche bei jedem Update aktualisiert werden müssen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Mit der Umstellung auf eine Web-Applikation würde dieser Vorgang radikal vereinfacht werden, da Updates sich zentral auf dem Server vornehmen ließen und die User lediglich einen Browser für den Betrieb des Anwendungssystems bräuchten. Durch die Migration von der lokal installierten Desktop-Anwendung zu einer Web-Applikation wird die Software gewissermaßen „nebenbei“ zu einer Cross Plattform-Anwendung, welche auf nahezu allen Gerätetypen und Betriebssystemen läuft.

Neben den fachlichen und technischen Anforderungen spielen bei einer Softwaremigration auch praktische Aspekte eine entscheidende Rolle. Das Team von BTG prüfte verschiedene Optionen für die Web-Migration. Entscheidend war, dass die technische Umsetzung auf der vorhandenen Programmiererfahrungen mit Windows-Desktopanwendungen aufbauen konnte.

Die Idee einer Umsetzung mit Microsoft ASP.NET erschien den Teammitgliedern auf Grund einer zu steilen Lernkurve wenig erfolgversprechend und der dafür notwenige zeitliche Rahmen lag nicht im Bereich des Möglichen. Das Team hat daraufhin weitere alternative Ansätze evaluiert und sich dann für das Migrationsframework Wisej.NET entschieden. Hier konnten folgende Ergebnisse erreicht werden:

  • Zeitnahe Realisierung: Nach weniger als einem Monat konnten bereits die ersten Erfolge gemeldet werden
  • Nutzung vorhandener Kenntnisse: Bestehende Erfahrungen bei der Entwicklung mit .NET konnten weitergenutzt werden
  • Effizienter Entwicklungszyklus: Das Vorgehen war mit den bekannten Entwicklungszyklus weitgehend vergleichbar, so dass große Umbrüche vermieden werden konnten.
  • Weiternutzung bestehender Quellcodebestandteile: Große Teile des bestehenden Softwaresystems konnten in das neue System übernommen werden. Ein ansonsten notwendige und aufwändige Re-Implementierung konnte vermieden werden.
  • Modernisierung: Die Benutzeroberfläche konnte nicht nur von einer Desktop-Anwendung zu einer Browser-Applikation migriert werden, sondern diese konnte mit Hilfe zahlreicher visueller Steuerelemente auch umfassend in Fragen der User Experience und des Designs angepasst werden.

Einen Eindruck vom Ergebnis des Software-Migrationsprojektes der Desktop-Anwendung zur Web-Applikation vermittelt das vorangestellte Bild. Aus der Fallstudie lassen sich allgemeine Anforderungen an Migrationsprojekte für Business-Applikationen ableiten.

Die Business-Applikation im Wandel

Business-Applikationen sind aufgrund des zugrunde liegenden Geschäftsmodells zwar stets individuell, dennoch lassen sich wie hier zu sehen oft viele Gemeinsamkeiten in den Anforderungen feststellen. Kennzeichnend sind oft umfassende Benutzeroberflächen mit einer sehr großen Anzahl von Dialogfeldern und Formularen (oft über 100) und eine komplexe Geschäftslogik.

Diese Merkmale verstärken den Wunsch einer Softwaremigration, wo viele Bestandteile des Altsystems übernommen werden können. Daraus können Anforderungen an eine Softwaremigration abgeleitet werden. In Orientierung an dem vorgestellten und weiteren ähnlichen Fallbeispielen ergeben sich für eine Transformation vom Desktop in das Web die Anforderungen gemäß der folgenden Tabelle.

Anforderung
Ist-Zustand (Desktop-Applikation)
Ziel der Softwaremigration (Web-Applikation)
Benutzeroberfläche/ Dialoge/ Formulare
große Anzahl, oft komplexe und umfassende Dialogmasken auf der Basis des Geschäftsmodels automatische Migration; „Nachbau“ vermeiden
Datenbanken
Nutzung diverser, meist relationaler Datenbanken
unveränderte Übernahme
Businesslogik
oft komplex, historisch gewachsen, erprobt
idealerweise vollständige Übernahme
User Experience (UX)
nicht mehr zeitgemäß, Mängel im Design („graue Formulare“), nicht responsiv, Anpassungsbedarf auch in der UX
Ersetzung durch visuell attraktive Steuerelemente, responsive Darstellung, Barrierefreiheit, Farbschema, Schriften, Theming
Deployment
Installation und Updates auf lokalen Client-Systemen
zentrale Bereitstellung über Server, auch cloudbasiert
Entwicklung
mittels IDE, wie Visual Studio und grafischen Designer, RAD-Ansatz
ähnlicher Workflow, grafischer Designer für Minimierung der Time-to-Market, RAD-Ansatz erhalten

Technische Migration

Dieser Abschnitt beleuchtet einen möglichen Weg der technischen Softwaremigration genauer. Ausgangspunkt ist oft (wie im Fallbeispiel) eine Windows-Forms-Anwendung. Diese wurde mit C# oder VB .NET und dem .NET-Framework erstellt. Möchte man große Teile der Applikation, d.h. des Quellcodes übernehmen, dann muss man den Technology-Stack weitgehend erhalten.

Der Weg einer Neuentwicklung einer Web-Applikation, beispielsweise mit den Frameworks Angular, React, Vue usw. scheidet daher unmittelbar aus. Hier müsste die komplette Applikation, beginnend beim User Interface, über die Businesslogik bis hin zur Anbindung der Datenbanken komplett neu erstellt werden. Architektur, eingesetzte Programmiersprachen und der Entwicklungszyklus sind vollständig anders, so dass das Ziel einer Softwaremigration auf diese Weise nicht erreichbar ist.

Um Web-Applikationen auf der Basis mit .NET zu entwickeln, gibt es die folgenden Optionen:

  • ASP. NET Forms
  • Blazor Web-Apps
  • Wisej.NET

Dazu einige Anmerkungen: ASP.NET bietet eine Plattform für die Erstellung, Bereitstellung und Verwaltung von Web-Anwendungen und ist Teil der .NET-Plattform Es wird häufig mit der Programmiersprache C# verwendet. Es unterstützt das Model-View-Controller (MVC)-Architekturmuster sowie das Web Forms-Modell, mit denen Entwickler den Aufbau und die Logik ihrer Anwendungen organisieren können.

Ein wichtiger Bestandteil ist die Common Language Runtime (CLR), die es ermöglicht die ASP.NET-Anwendungen in verschiedenen .NET-Sprachen wie C#, VB.NET und F# zu entwickeln. Dadurch haben Entwickler:innen die Flexibilität, die Sprache zu wählen, die am besten zu ihren Anforderungen und ihrer Erfahrung passt. ASP.NET bietet auch umfangreiche Unterstützung für Datenbankintegration und Datenzugriff. ASP.NET ist ein serverseitiges Webframework.

Das aktuellere Framework von Microsoft ist Blazor für Single-Page Web-Applikationen. Der Code wird als Web-Assembly-Binärdatei in den Browser heruntergeladen und dort ausgeführt. Dadurch können Benutzerinteraktionen direkt auf dem Client ohne eine ständige Kommunikation mit dem Server verarbeitet werden (Hosting-Modell Blazor Web-Assembly).

Alternativ gibt es auch rein serverseitige Blazor-Applikationen (Hosting-Model Blazor Server). Blazor-Apps werden in C# programmiert. Eine Interaktion mit JavaScript ist möglich. Das User Interface wird komponentenbasiert im Quellcode (Razor-Syntax = Mischung von HTML und C#) erstellt. Einen grafischen Designer gibt es für Blazor-Web-Apps nicht.

Wisej.NET ist ein Development Framework, das für die Erstellung von Unternehmensanwendungen entwickelt wurde. Es ermöglicht Webanwendungen mit einem ähnlichen Vorgehen wie bei Desktop-Anwendungen zu erstellen. Programmiert wird mit C#, alternativ mit VB.NET. Ein Hauptmerkmal ist die Komponentenbibliothek, die eine große Auswahl an Steuerelementen umfasst. Das Design erfolgt zur Entwicklungszeit mit Hilfe eines grafischen Designers in Visual Studio. Dadurch wird die Entwicklung von Web-Anwendungen beschleunigt und vereinfacht.

Ein weiteres wichtiges Merkmal ist das Echtzeit-Update-Konzept. Es ermöglicht eine schnelle Aktualisierung der Benutzeroberfläche, ohne dass ein vollständiges Neuladen der Seite erforderlich ist. Konzepte der Datenbindung und Datenbankintegration werden unterstützt. Die Architektur von Wisej .NET ist vorneangestellt zu sehen.

Die Server- und Clientseite lassen sich wie folgt charakterisieren:

  • Server: Der Wisej.NET-Server ist die zentrale Komponente, die die Kommunikation zwischen dem Client, d.h. dem Browser, und der Anwendung verwaltet. Der Server empfängt Anfragen vom Client, führt den entsprechenden Code aus und sendet die aktualisierte Benutzeroberfläche an den Client zurück. Der Server verwaltet auch den Zustand der Anwendung und speichert Informationen über die aktuelle Sitzung der Benutzer. Auf dem Server wird die .NET-Applikation ausgeführt.
  • Client: Der Client ist der Webbrowser. Er stellt die Benutzeroberfläche dar, verarbeitet Benutzerinteraktionen und sendet Anfragen an den Server. Hier werden lediglich HTML, CSS und JavaScript verarbeitet. Der Client kommuniziert mit dem Server über Websocket- oder HTTP-Verbindungen, um Echtzeitaktualisierungen zu ermöglichen.

Die Umsetzung der .NET-Anwendung zu einer JavaScript-Anwendung erfolgt vollständig durch das Framework. Für jede Komponente der Benutzeroberfläche, welche während der Entwicklungszeit mit Hilfe des grafischen Designers in die Anwendung eingebunden wird, wird eine entsprechende JavaScript-Komponente im Browser gerendert. Auf diese können bestehende .NET-Desktop-Applikationen mit einem vertretbaren Aufwand zu einer Web-Applikation migriert werden.

Wisej.NET ist sowohl mit dem älteren .NET-Framework bis Version 4.8 als auch mit .NET 6 bzw. NET 7 (ehemals .NET Core) kompatibel. Daher kann auf dem Server sowohl ein Windows- oder ein Linux-Betriebssystem ausgeführt werden.

Schrittweise Softwaremigration

Aus dem Fallbeispiel und der vorgestellten Technologie kann eine grobe Schrittfolge für die Softwaremigration abgeleitet werden, welche in ähnlicher Form auch auf vergleichbare Vorhaben übertragen werden kann:

1. Analyse der bestehenden Anwendung: Zunächst ist es wichtig, die vorhandene Desktop-Anwendung oder das Legacy-System zu analysieren, um die Funktionalität, die Abhängigkeiten und die Architektur zu verstehen. Dies hilft bei der Planung des Migrationsprozesses und der Identifizierung möglicher Herausforderungen.
2. Konvertierung der Benutzeroberfläche: Ein wesentlicher Schritt bei der Migration besteht darin, die Benutzeroberfläche der Desktop-Anwendung in eine webbasierte Benutzeroberfläche umzuwandeln. Wisej.NET bietet eine umfangreiche Sammlung von Web-Steuerelementen und Layout-Tools, um die Konvertierung zu erleichtern.
3. Übertragung der Geschäftslogik: Die Geschäftslogik und Funktionalität der Desktop-Anwendung müssen auf die Plattform übertragen werden. Dies beinhaltet die Umstellung von desktopspezifischen APIs und Frameworks auf die entsprechenden Web-Alternativen, um die nahtlose Funktionalität der Anwendung sicherzustellen.
4. Anpassung an Web-Paradigmen: Während der Migration müssen möglicherweise Anpassungen vorgenommen werden, um den spezifischen Anforderungen und Paradigmen des Web-Modells gerecht zu werden. Hierzu gehören beispielsweise die Handhabung von Benutzerinteraktionen, das Verwalten von Zuständen und das Implementieren von clientseitiger Validierung.
5. Testen und Validieren: Nach der Migration ist es wichtig, die Funktionalität und Leistung der migrierten Anwendung gründlich zu testen. Dies umfasst Funktionstests, Kompatibilitätstests auf verschiedenen Webbrowsern und Geräten sowie Leistungstests, um sicherzustellen, dass die Anwendung effizient und reaktionsschnell ist.

Fazit und Ausblick

Die Softwaremigration ist ein komplexes und anspruchsvolles Themengebiet der Softwareentwicklung. Dennoch kann der Aufwand lohnend sein, wenn man es mit dem Vorgehen einer Neuentwicklung vergleicht. Das Fallbeispiel hat den Weg einer Desktop- zu einer Web-Anwendung beschrieben. Durch ein cleveres Tooling können bei dieser Art von Technology-Stack (.NET, Windows Forms) weite Teile der Applikation erhalten werden. Die Benutzeroberfläche kann migriert werden.

Andere Bestandteile des Anwendungssystems, wie die Geschäftslogik und der Zugriff auf die Datenbanken können bestehen bleiben. Zu beachten ist, dass durch den Wechsel vom Desktop in das Web auch weitere Bereiche der Anwendung an die Web-Paradigmen angepasst werden müssen, d.h. jedes Migrationsprojekt ist daher individuell zu planen und zu realisieren.

(ID:49535582)