Case Study
Eine Desktop-Anwendung migriert in die Cloud
Die italienische IT-Consultingfirma Xdata migrierte ihr Hauptprodukt, das Windows-basierte Lagerverwaltungssystem PiperWMS, mit Hilfe des Development-Systems Wisej.NET in nur neun Monaten in Eigenregie in die Cloud – lediglich unterstützt vom Supports des Wisey-Herstellers Ice Tea Group.
Migrationsvorhaben stoßen bei Entwicklern oft auf wenig Begeisterung. Es geht hauptsächlich darum, eine in die Jahre gekommene Anwendungen für die Zukunft fit zu machen. Unzählige Geschäftsanwendungen, die mit C#, VisualBasic.NET oder anderen Sprachen entwickelt wurden, sind heute noch in allen Bereichen von Wirtschaft und Verwaltung im Einsatz. Die Benutzeroberflächen solcher Anwendungen basieren in der Regel. auf Windows Forms (WinForms) oder ähnlichen Technologien
Migration statt Neu-Entwicklung
Im Laufe der Zeit entsteht so ein umfassender Bedarf nach Erneuerung und Weiterentwicklung. Eine Softwaremigration kann in diesem Fall eine gute aussichtsreiche Alternative zu einer Neuentwicklung darstellen. Bei der Neuentwicklung von Software kann zwar unmittelbar die aktuelle Technologie eingesetzt werden, jedoch sprechen einige Nachteile gegen ein solches Vorgehen. Die komplette Anwendung neu zu implementieren ist meist sehr aufwändig, was einen erheblichen Zeit- und Ressourcenbedarf erfordert. Viele Projekte scheitern aufgrund der Komplexität, mangelnder Ressourcen oder eines zu großen Zeitbedarfs.
Gerade Geschäftsanwendungen weisen oft komplexe Benutzeroberflächen mit einer Vielzahl von Dialogen und Eingabemasken auf. Die Businesslogik der Anwendung ist über die Jahre gewachsen und oft unzureichend dokumentiert, was eine Re-Implementierung deutlich erschwert. Viele Unternehmen suchen daher nach einem Weg, ein bestehendes Softwaresystem zu erneuern, dessen Ergebnis den aktuellen Ansprüchen in Fragen der Technik und der User Experience entspricht. Zur Reduzierung des Aufwands sollen möglichst große Teile des bisherigen Systems übernommen werden können.
Je nachdem, in welchem Umfang die Anpassungen erfolgen sollen und was zum Ziel gesetzt wurde, unterscheidet man zwischen einer vollständigen Softwaremigration und einer Teilmigration. Eine Teilmigration bezieht sich auf einzelne Teile des Systems und kann beispielsweise das User Interface, die Datenbank, die Modernisierung der Programmiersprache usw. umfassen. Von einer umfassenden Sanierung spricht man dann, wenn große Teile des Softwaresystem erneuert werden sollen.
Schick: Das neue PiperWMS macht auch auf Android eine gute Figur (Bild: Xdata)
Die Ausgangssituation
Unser Beispiel berichtet von einer erfolgreich umgesetzten Softwaremigration einer Windows Anwendung in die Cloud. Das Ziel war, eine Desktop-Applikation zu einer modernen Web-Applikation zu transformieren. Statt einer lokalen Installation und Ausführung auf den Rechnern der Anwender und Anwenderinnen wird dann nur noch ein Browser auf dem Zielsystem benötigt. Die eingesetzte Logistiksoftware PiperWMS basierte ursprünglich auf Visual Basic 6 und dem .NET-Framework und war bereits für mehr als 20 Jahre im Gebrauch. Als Microsoft das Ende des Lebenszyklus von Visual Basic 6 ankündigte und den Support für die Betriebssysteme Windows CE/ Windows Mobile einstellte, stand die Zukunft der Anwendung in Frage. Eine Migration beziehungsweise Neuentwicklung war unvermeidlich. Das Unternehmen XData hat sich für die Migration entschieden. Es wurden mehrere Studien und Pilotprojekte mit unterschiedlichen Technologien durchgeführt. Das Projektteam hat dann das Migrationstool Wisej.NET ausgewählt
Die Migrations-Technologie
Mit Wisej.NET ist es möglich, eine Anwendung für den Windows-Desktop mit den genannten Technologien zu einer modernen Single Page Web-Anwendung zu migrieren. Als Entwicklungsumgebung wird Visual Studio verwendet. Eine Besonderheit ist der grafische Designer, welcher an die Arbeitsweise des etablierten Designs für WinForms-Applikationen angelehnt ist. Eine bestehende Windows-Forms-Applikation kann geladen werden und wird nach einigen manuellen Anpassungen des Quellcodes in eine Web-Applikation überführt. Dazu wird die .NET basierte Anwendungslogik auf dem Server ausgeführt und die Oberfläche durch Wisej.NET als native Web-basierte Anwendung im Browser dargestellt. Das geschieht durch den Einsatz einer JavaScript-Bibliothek, welche ein „Spiegelbild“ der .NET-Applikation vom Server auf den Browser bringt. Zwischen Server und Client (Browser) findet eine optimierte Kommunikation auf der Basis von Ajax-Anfragen und einem JSON-basierten Datenaustausch statt.
Updates am Client, zum Beispiel aufgrund von Anforderungen zur Änderung der Benutzeroberfläche, Eingaben in einem Dialogfeld und ähnliches werden auf diese Weise sehr effizient und performant realisiert. Bereits eine bloße technologische Migration einer bestehenden Desktop-Anwendung ohne weitere Anpassungen führt zu einem deutlich moderneren Look & Feel. Die modernen JavaScript-Controls im Browser weisen ein aktuelles Design auf und verleihen einer „grauen“ Desktop-Applikation ein vollständig anderes Benutzerfeeling. Wisej.NET verfügt über einen Theme-Designer, der auf Grundlage von CSS ein weitergehendes Design bestehender Anwendungen ermöglicht.
Um Erweiterungen und Anpassungen vornehmen zu können, bietet das Framework eine Vielzahl weiterer leistungsfähiger Controls, die alle Belange einer modernen Business-Applikation abdecken. Diese Auswahl an Controls kann durch beliebige JavaScript-Controls (Drittanbieter) umfassend erweitert werden, zum Beispiel von Anbietern wie DevExpress, Syncfusion, Infragistics oder Progress/ Telerik.
Gelungene Metamorphose: Aus einer alten Desktop-Applikation ist eine Web-App mit moderner Oberfläche geworden (Bild: Xdata).
Die Projektumsetzung
Der Einsatz von Wisej.NET hat den Prozess der Überarbeitung des bestehenden Legacy-Anwendungsstapels für die Software PiperWMS erheblich vereinfacht. Das Team, das für die Projektumsetzung zuständig war, konnte sich ausschließlich auf die Anwendungslogik und ein umfassendes Re-Design des User Interface konzentrieren, statt sich mühsam mit den technischen Aspekten einer komplexen Web-Applikation, das heißt dem Schreiben von HTML, CSS und JavaScript und dem Fragen der Zustandsverwaltung oder mit der Auswahl eines Web-Frameworks zu beschäftigen.
Die Verwendung des Frameworks Wisej.NET vereinfachte das Umschreiben der Desktop-Anwendung PiperWMS erheblich. Darüber hinaus gelang es, eine Microsoft Compact Framework-Anwendung zu einer Web-App zu transformieren, welche auf Android-Mobilgeräten ausgeführt werden kann.
Dabei konnte die Anwendungslogik, ursprünglich in Visual Basic 6 geschrieben, migriert und weiterverwendet werden. Die Arbeit an dem Projekt erfolgte Schritt für Schritt. Zunächst wurde die neue Webplattform mit Wisej.NET gebaut, einschließlich Benutzeroberfläche und unterstützenden Funktionen. Nachdem diese konsolidiert war, wurde die Anwendungslogik erstellt. Das Projekt konnte erfolgreich bereits nach neun Monaten abgeschlossen werden. Durch die Migration ist ein modernes webbasiertes Anwendungssystem mit einer Multi-Tab-Oberfläche entstanden. Die wichtigsten Vorteile waren die Steigerung der Benutzerfreundlichkeit und ein reduzierter Schulungsaufwand bei der Bereitstellung von PiperWMS für die Kunden, da diese mit der Alt-Applikation bereits vertraut waren.
Im Regelfall geht eine Softwaremigration auch mit einer umfassenderen Erneuerung und Erweiterung von Funktionen einher. Auch diese Anforderung kann mit Wisej.NET realisiert werden, beispielsweise die Möglichkeit der Integration einer sprachgesteuerten Suchfunktion, moderner Kalenderansichten und vieles mehr. Die Software PiperWMS ist nun auf verschiedenen Endgeräten nutzbar
Das Deployment
Auch für das Deployment eröffnet die Migration einer Desktop- zu einer Web-Applikation neue Möglichkeiten. Diese kann entweder auf einem vom Unternehmen betriebenen Server ausgeführt werden oder man überführt sie direkt in die Cloud. Wisej.NET ermöglicht es, dass man .NET-basierte Web-Applikation beispielsweise auf einem Azure- oder Amazon-Web-Dienst ausführt. Damit wird das Anwendungssystem zu einem im Modus eines Software as a Service (SaaS) betriebenen Cloud-Systems transformiert. Es bietet damit alle bekannten Vorteile einer Cloud-Anwendung wie eine unkomplizierte Skalierung und einen minimierten Wartungsaufwand für die Hard- und Systemsoftware.
Das eigentliche Deployment als Web-Applikation kann dabei direkt aus der Entwicklungsumgebung vorgenommen werden. Dabei hat man die freie Wahl zwischen Windows- und Linux-basierten Hostings, da Wisej.NET vollständig kompatibel mit den neusten Versionen von .NET ist und plattformübergreifend ausgeführt werden kann. Die Logistiksoftware PiperWMS ist nach der Migration nun ein cloud-natives Warehouse Management System und kann flexibel nach den Wünschen des Kunden bereitgestellt werden.
Alternativ bietet Wisej.NET die Möglichkeit, auf IIS beziehungsweise unter Linux auf Apache auch „On-Premise“ genutzt zu werden. Im Laufe des Jahre 2023 soll die Möglichkeit von plattformunabhängigen Desktop-Anwendungen aus dem gleichen Quellcode heraus geschaffen werden.
Fazit & Ausblick
Das Anwendungssystem PiperWMS ist ein Beispiel für eine gelungene Kombination aus Softwaremigration, Erweiterung und Neuentwicklung. Die mit Wisej.NET migrierte Web-Applikation kann problemlos auf verschiedenen Geräten und Betriebssystemen ausgeführt werden. Dieses Vorgehen kann auch für andere Anwendungsfälle ein möglicher Lösungsansatz sein. Gelingt es bestehende Softwaresysteme teilweise oder gegebenenfalls auch umfassend technologisch zu migrieren, dann schont das Zeit- und Ressourcen, die dann beispielsweise für Erweiterungen zur Verfügung stehen. Das ein solches Vorgehen auch für sehr alte Technologien wie das Microsoft Compact Framework gelingen kann, hat das Beispiel ebenfalls demonstriert.
Nach der Migration sind vielfältige Möglichkeiten für Refactoring und Weiterentwicklung der Anwendung gegeben. Dank Migration wird also „technische Schuld“ abgebaut, auf eine moderne Plattform übertragen und der Lebenszyklus der Anwendung noch einmal wesentlich erweitert und ausgebaut.