Die Gegenüberstellung von Webanwendungen und Desktop-Anwendungen
Wir bei den Webrunners nutzen, wie man schon anhand unseres Namens vermuten kann, hauptsächlich webbasierte Technologien um Webanwendungen für unsere Kunden zu entwickeln.
Natürlich besteht auch die Möglichkeit eine Desktop-Anwendung, speziell für ein oder mehrere bestimmte Betriebssysteme wie Windows, MacOS, Android oder iOS, zu entwickeln.
Hier wollen wir eine kurze Übersicht darüber geben, wann wir welchen Ansatz wählen.
Im Allgemeinen haben Desktop-Anwendungen die als Programme oder als „Apps“ auf einem System laufen einige Vorteile gegenüber Anwendungen die webbasiert entwickelt wurden:
- Durch uneingeschränkten Zugriff auf die Hardware und optimierten Bytecode ist die Geschwindigkeit von rechenintensiven Anwendungen (wie zum Beispiel Grafik- oder Schnittprogrammen) oft deutlich höher.
- Aus dem selben Grund ist nur in nativen Anwendung der Zugriff auf spezielle Hardware (wie z.b. spezielle Eingabe oder Messgeräte) möglich.
- Die eingegebenen Daten verlassen das eigene Gerät nicht und sind somit zunächst gut vor Missbrauch geschützt, sofern das Gerät selbst nicht anderweitig kompromittiert wird.
- Meistens wird kein Netzwerkzugriff benötigt, sodass die Anwendung auch funktioniert wenn keine Verbindung zum Internet besteht.
- Nach einmaliger Anschaffung entstehen in der Regel selten laufende Kosten.
Jedoch sobald viele Benutzer auf den gleichen Datensätzen operieren wollen und diese synchron gehalten werden müssen, schwinden schon ein paar diese Vorteile. Hier gibt es selbstverständlich auch Lösungen für native Software (der Browser als Plattform für webbasierte Anwendungen ist ja beispielsweise auch eine native Software). Doch dann wird meistens eine Netzwerkverbindung benötigt und auch die Daten werden zentral gehalten. Wodurch man meistens eine „Server und Client Architektur“, wie beispielsweise die von webbasierten Anwendungen, erhält.
Webbasierte Anwendungen bringen auch noch weitere Vorteile mit:
- Da die Anwendung nicht installiert werden muss, steht sie jedem Benutzer sofort– und immer in der neusten Version–zur Verfügung.
- Sie kann zentral auf dem Server gewartet werden.
- Sie ist auch ohne extra Aufwand für alle verbreiteten Betriebssysteme verfügbar. Ebenfalls lässt sich eine gute mobile Darstellung, auf einem Tablett oder Smartphone, durch responsive Design kostengünstig und schnell umsetzen.
- Datensätze können verschlüsselt in Hochsicherheitsdatenzentren gespeichert werden, die den unerwünschten Fremdzugriff bestmöglich verhindern können. Des weitern können dort günstige Backup und Archiv Lösungen umgesetzt werden.
- Wenn die Rechenleistung, die zum Betrieb der Anwendung nötig ist, zeitlich stark schwankt – beispielsweise bei einer sessionalen Nutzung – so kann diese durch Cloud Computing kostengünstig vollautomatisch skaliert bezogen werden. Hierbei können oft wesentliche Kosten zum Betreiben größerer Serverinfrastruktur, die aber nur selten ausgelastet ist, komplett vermieden werden.
- Durch die große Auswahl an freien Softwarebibliotheken und Frameworks ist die Entwicklung der Software in der Regel schneller und kostengünstiger umzusetzen, insbesondere wenn mehrere Zielsysteme gewünscht sind.
- Regelmäßige Reviews, die dem Kunden einen Einblick in den aktuellen Stand der Entwicklung geben, sind sehr leicht umsetzbar da der Kunde nichts installieren muss. Dadurch ist die Möglichkeit zum schnellen Identifizieren von Fehlentwicklungen, beispielsweise Aufgrund von Fehlplanung oder Missverständnissen, sehr leicht möglich.
Kurz zusammengefasst, sollten Anwendungen webbasiert entwickelt werden, wenn folgende Kriterien vorliegen:
- Nutzer sollen in verschieden Rollen auf Datensätze zugreifen und diese verändern
- Besondere Ansprüche an die Datensicherheit
- Agile Entwicklung ist gewünscht
- Verschiedene Betriebssysteme sollen unterstützt werden
- Von verschiedenen Standorten soll auf die Anwendung zugegriffen werden
- Spezielle Hardware spielt eher eine Nebenrolle
Der native Ansatz funktioniert dagegen am besten, wenn folgende Kriterien vorliegen:
- Jeder Anwender operiert auf seinem eigenen Datensatz und diese müssen nicht oder nur sehr selten synchronisiert werden
- Die Rechenleistung des Arbeitsgeräts reicht aus und soll voll genutzt werden
- Spezielle Hardware spielt eine wichtige Rolle
- Alle Nutzer setzen das selbe Betriebssystem ein
Diese Zusammenfassung ist natürlich eine sehr grobe und allgemeine Darstellung. Eine individuelle Softwareeigenentwicklung löst meistens ein spezielles Problem, weswegen wir immer eine genaue Abwägung für den Einzelfall empfehlen und auch gerne durchführen. Es lassen sich fast alle Anwendungsfälle in beiden Ansätzen lösen, jedoch spart die richtige Planung und Auswahl der Architektur im nach hinein enorme Kosten und Mühen.
Sie sind sich nicht sicher, welcher Ansatz der Entwicklung sich für Ihr gewünschtes Projekt anbietet? Wir beraten und unterstützen Sie gerne!