Alle sprechen von Low-Code und No-Code, von „Power-Apps in a day“ und davon, Software ohne ausgebildete Software-Entwickler und ohne grossen Aufwand einfach selbst zu entwickeln. Bei Allgeier setzen wir selbst Power-App und Power-Automate Lösungen ein und nutzen die Vorteile, rasch auf Business-Anforderungen reagieren zu können und flexibel zu sein.
In einer mehrteiligen Blog-Serie zeigen wir Ihnen die Vorteile und die Grenzen von Power-App und Power-Automate auf und für welche Szenarien welche Lösungen und Tools geeignet sind.
Dieser erste Beitrag widmet sich den Grenzen von Low- und No-Code und den Möglichkeiten und Vorteilen von Micro Web-Apps.
Low-Code eignet sich nicht für alles
Microsoft bietet mit der Power-Plattform einen der besten Low-Code-Werkzeugkästen, die es auf dem Markt gibt. Power-Apps sind zum Beispiel hervorragend geeignet, formularbasierte Anwendungen zu erstellen, die keine allzu komplexen Anforderungen an die Benutzeroberfläche stellen. Das Zusammenspiel mit Power-Automate ermöglicht auch ohne Programmierkenntnisse, Anforderungen umzusetzen, die z.B. auch Geschäftsprozesse mit automatisierten Genehmigungsverfahren beinhalten können. Auch das Zusammenspiel mit der Power-BI-Plattform und der möglichen Einbindung von künstlicher Intelligenz mit dem „AI Builder“ macht die Power-Plattform sehr attraktiv.
Grenzen der Power-Plattform
Sobald die Anforderungen komplexer werden, kann man jedoch auch an technische Grenzen stossen. Beispielsweise gibt es in Power-Apps keine Tree-Komponente, um Daten hierarchisch darzustellen. Man kann sich hier mit Tricks behelfen, in dem man Steuerelemente ineinander verschachtelt, aber dieser Workaround ist weder elegant und flexibel noch gut wartbar. Auch Datenmengen mit mehr als 500 Datensätzen können bei Power-Apps zu Problemen führen. Ein serverseitiges Partitionieren der Daten ist nicht immer einfach umzusetzen. Die Umsetzung von Responsive Layouts kann mitunter zu einer sehr zeitintensiven und anspruchsvollen Aufgabe werden. Bei Apps mit vielen Screens und Steuerelementen kann es zu Performance Problemen kommen. Zu guter Letzt darf nicht vergessen werden, dass auch Low-Code ein Stück Quellcode ist. Dieser Code ist zwar eher mit Excel-Formularen vergleichbar, kann mitunter aber auch komplex werden, beispielsweise wenn Formeln verhaltensabhängig verschachtelt werden müssen.
Andere Einschränkungen können schlicht lizenzbasiert sein. Lizenzen der Power-Plattform sind benutzerbasiert oder benutzerbasiert pro App. Die Kosten erhöhen sich linear mit der Anzahl der Benutzer, was bei vielen Benutzern und Premium-Lizenzen schnell ins Geld gehen kann. Die aktuellen Preise von Microsoft liegen bei 4,20 € pro Monat pro Benutzer und App oder bei 16,90 € pro Benutzer für beliebig viele Apps. Hinzu kommen ggf. zusätzliche Kosten für Premium-Features, beispielsweise um einer App Zugriff auf SQL-Server-Datenbanken oder REST-APIs zu ermöglichen.
Die Alternative – Micro Web-App
Was ist mit klassischen Web-Apps oder Web-Applikationen? Werden diese mittlerweile nur noch von grossen Nearshore- und Offshore-Teams entwickelt, weil die Entwicklung sonst zu teuer wäre?
Nein. Der Aufwand eine Web-App zu entwickeln, muss nicht höher sein als der für eine vergleichbare Low-Code-Anwendung. Natürlich sprechen wir hier nicht von großen Anwendungen mit Hunderten von Datenbanktabellen. Wir sprechen von „Micro Web-Apps“.
Unter «Micro Web-App» verstehen wir Anwendungen, die auf einen bestimmten Business-Teilbereich zugeschnitten sind. Typischerweise liegen Ihnen kleine Datenmodelle mit 10-20 Tabellen zu Grunde. Ein klassischer Anwendungsfall ist die Datenpflege. Die Daten können dabei sehr viel komplexer sein als beispielsweise in SharePoint-Listen. Während in SharePoint meist nur Listen mit Lookups verwaltet werden, können in Micro Web-Apps auch Baumstrukturen und n:m-Beziehungen problemlos abgebildet werden. Die übersichtliche Darstellung und die komfortable Eingabe und Validierung von Daten mit all ihren Regeln und Abhängigkeiten steht dabei meist im Vordergrund. Aber auch die Datenvisualisierung in Dashboards z.B. mit der Einbindung von Power-BI-Reports ist möglich. All dies mit modernsten Benutzeroberflächen, die responsive sind und sich somit also auch auf mobilen Geräten und Tablets gut bedienen lassen.
Natürlich hängt der Aufwand immer vom Anwendungsfall und von der Komplexität der Anforderungen ab. Mit einem Budget von rund 15‘000 CHF und einer Durchlaufzeit von nur 2 Wochen lässt sich schon vieles erreichen. In diesem Umfang haben wir beispielsweise für einen Kunden eine App entwickelt, mit der die Organisationsstruktur der Firma mit verschiedenen Abhängigkeiten und Regeln verwaltet werden kann.
Das Geheimnis ist hierbei, einen optimal abgestimmten „Werkzeugkasten“ für eine schnelle und agile Entwicklung zu verwenden. Frameworks wie z.B. Vuetify erlauben es, mit wenig Aufwand und ohne Designer-Kenntnisse ansprechende Benutzeroberflächen zu gestalten und sehr schnell umzusetzen. Serverseitig gibt es Frameworks, die den Datenzugriff für einfache Lade- und Speicheroperationen vollständig automatisieren können. Auch die Azure-Cloud hilft, Aufwand zu sparen, beispielsweise indem die Benutzerauthentifizierung durch Azure erfolgt und keine eigenen Login-Screens oder „Passwort-vergessen-Funktionen“ mehr implementiert werden müssen. Nicht zuletzt können auch SQL-Server-Datenbanken in der Azure-Cloud mit wenig Aufwand und geringen Kosten (ab ca. 10 € pro Monat pro App) bereitgestellt werden. Die Cloud ist zwar kein Muss, wir empfehlen unseren Kunden jedoch diesen Weg einzuschlagen.
Die Lizenzmodelle in der Cloud sind meistens „consumption-basiert“, somit wird nur die effektive Nutzung bezahlt, wodurch erneut Kosten gespart werden können.
Einsatzgebiete
Datenpflege
Wie bereits erwähnt sind Micro Web-Apps hervorragend für Anwendungsfälle geeignet, in denen es darum geht Daten zu pflegen.
Sie werden z.B. in Data-Analytics-Projekten eingesetzt, in denen die Daten in erster Linie ausgewertet werden. Häufig wird dabei auch eine Datenpflege benötigt, um Daten aus verschiedenen Datenquellen miteinander zu verknüpfen und ins Datawarehouse zu überführen.
Wir haben für einen Kunden eine Web-App entwickelt, mit der Excel-Dateien mit Buchhaltungsdaten validiert und hochgeladen werden. Diese Daten werden dann in einer Azure-SQL-Datenbank überführt und später auch im Datawarehouse ausgewertet.
Hinzu kam eine Mapping-Funktionalität, mit der die Buchungskonten von einem System in das andere gemappt werden kann. Die hierarchische Darstellung der Konten und das schnelle Suchen der Konten über alle Hierarchien hinweg war hierfür eine wichtige Anforderung.
Für einen anderen Kunden haben wir eine Web-App entwickelt, mit der die Organisationsstruktur des internationalen Vertriebs mit ihren Standorten und unterschiedlichen Personenzuteilungen verwaltet werden kann. Auch dieses Projekt entstand im Rahmen eines Data-Analytics Projekts.