Portieren klassischer Anwendungen zu Websoftware

1. Native Software

Funktion:

Native Software ist die althergebrachte Art und Weise des Software-Deployments. Der Quellcode wird in ein für den Prozessor und das Betriebssystem verständliches Format überführt, welches dann an den Endkunden weitergegeben wird.

Vorteile:

Native Programme sind der kleinste gemeinsame Nenner der Software und des Kunden-PCs. Sie eröffnen Zugriff auf die grundlegenden Funktionen des Betriebssystems, wodurch die höchste Performanz erreicht werden kann.

Da nativer Software der volle Umfang der vom Betriebssystem bereitgestellten Funktionalität offen steht, kann der User in der Bedienung bestmöglich unterstützt werden. Mit dem Betriebssystem wird als Ganzes gewirkt. Beispielsweise kann ein Programm für den User einen Windows-Explorer in einem neuen Fenster öffnen, mit dem gewünschten Icon vorselektiert. Vorher kann überprüft werden, ob wirklich ein neuer Explorer nötig ist, oder ob sich bereits einer in dem Verzeichnis befindet und geöffnet ist.

Nachteile:

Bei nativer Software muss nach Prozessor und Betriebssystem differenziert werden, eine native ( oder ausführbare ) Datei, welche für Windows gebaut wurde, funktioniert keinesfalls auch auf MacOS oder Linux.

Auch können ausführbare Dateien meist nur für eine gewisse Generation an Betriebssystemen verwendet werden. Änderungen von zwischen Windows XP und Windows Vista haben dazu geführt, das manche für Windows XP konzipierte, native Programme unter Windows Vista nicht mehr korrekt ausgeführt werden können.

Ein Updaten oder Patchen von nativen Anwendungen ist nur bedingt möglich. Wenn nicht vom Hersteller der Software Patches zur Verfügung gestellt werden, ist teilweise eine vollständig Umstellung auf eine neuere Version nötig. Dies ist mit logistischem Mehraufwand verbunden.

2. Webanwendungen

Soll ich auch dazu was schreiben? Wir haben mit Sicherheit Texte für die Vorteile von Webanwendungen?

3. Hybride-Anwendungen mit Electron

Um das Beste aus beiden Welten zu erhalten, drängt sich eine Kombination nativen Anwendungen mit weiterführender Technologie und dem Internet gerade zu auf.

Funktion:

Electron zusammen mit NodeJS offenbaren die Möglichkeit, betriebssystem- und prozessorunabhängige Programme zu schreiben. Außerdem ist die Entwicklung damit weit einfacher und effizienter. NodeJS ist eine native Anwendung, welche in der Lage ist, den Quellcode erst in letzter Sekunde für die aktuelle Umgebung auszuwerten, was große Unabhängigkeit zur Folge hat. Es werden aus der Webentwicklung bekannte Standards wie HTML, CSS und Javascript verwendet.

Vorteile:

NodeJS Applikationen können unter allen gängigen Betriebssystemen verwendet werden, ohne dass Anpassungen notwendig wären. Somit sind keine oder nur minimale Kosten für beispielsweise die Portierung auf MacOS erforderlich.

Die Generation des Betriebssystemen spielt keine entscheidende Rolle mehr. Alsbald NodeJS zur Verfügung steht, kann korrekte Funktion gewährleiste werden. Ein und das selbe Programm kann under Windows XP, Windows Vista Windows 7, Windows 8 und Windows 10 gebraucht werden.

Stetige Verbesserung führt dazu, dass die meisten Optionen, welche native Programme bieten, auch in NodeJS angewendet werden können. Mit dem Electron-Framework zum Beispiel können Fenster erstellt werden und auf das Kontextmenü beim Rechtsklick zugegriffen werden. Auch der Zwischenspeicher kann bearbeitet werden.

Der Programmieraufwand für NodeJS Anwendungen ist deutlich geringern, als der für vergleichbare native Anwendungen. NodeJS legt Wert auf gute Programmierbarkeit und erlaubt es dem Entwickler, komplizierte Aufgaben präzise und in wenigen Schritten zu formulieren. Darüber hinaus wird Javascript als Programmiersprache verwendet. Javascript ist eine Scriptsprache, die ihrerseits schon viele Vereinfachungen mit sich bringt. Der Entwickler muss zum Beispiel nicht mehr auf Memory-Management oder dergleichen achten, dies geschieht automatisch.

Die Wartbarkeit von NodeJS Anwendungen gestalltet sich einfach und Javascript ist eine weit verbreitete Programmiersprache. Javascript findet seit Jahrzehnten vielerorts Anwendung, sei es in Webanwendungen oder auf dem Desktop. Es ist eine gut verwurzelte Sprache, für die es sehr viele Entwickler gibt.

Grafische Anwendungen lassen sich mit NodeJS und Electron deutlich leichter entwickeln. Die vom Betriebssystem bereitgestellten Möglichkeiten für grafische Anwendungen sind sehr allgemein und müssen meist mühselig geschachtelt werden. HTML und CSS sind weit aussagekräfter und bietet viele Hilfestellungen für die gestaltung von grafischen Fenster und Dialogen. Es können sofort beliebte CSS Frameworks wie Twitter-Bootstrap eingebunden werden, um einen Großteil des Aufwands auszusparen. Auch lässt sich eine Anpassung an die aktuelle Fenstergröße ( sogenanntes „Responsive Design“ ) leicht umsetzen.