PowerApps sind ein neues Service, welches Formulare und Workflows auf Computern und mobilen Geräten bereitstellt. Dies beschreibt sinngemäß aber recht nüchtern die Funktionalität des neuen Services – natürlich basierend auf Azure. Sehen wir uns PowerApps einmal an…
Zur Geschichte von PowerApps
Zuvor möchte ich noch ein paar Worte zur Produkt-Historie anbringen. Microsoft hat das neue PowerApps Tool recht still Ende November 2015 auf der Convergence 2015 EMEA in Barcelona und in einem Blogpost in Introducing Microsoft PowerApps der breiten Öffentlichkeit vorgestellt.
Auf der Build Developer Conference gab es gerade einmal eine Session im “Theater” (im Booth-Bereich), die nicht als Webcast aufgezeichnet wurde. In einem persönlichen Gespräch mit einem der Product Manager auf der Build wurde die Strategie klar, die Aussage war sinngemäß: “We want to keep our feet on the ground (until we are further in developing the product)”. (Das Product Team sucht übrigens noch Developer für Feedback und Use Cases, bei Interesse bitte einfach mit dem Kontaktformular bei mir melden.)
Nun ist es soweit: Seit dem “The Future of SharePoint” (SharePoint 2016) Event Anfang Mai sind die PowerApps offiziell “alive”. Dieser Artikel stellt eine erste kleine Einführung in das Thema dar.
Preview
PowerApps ist derzeit (seit etwa Jahresanfang) in Preview. Auf der Produkt-Website kann man sich dafür registrieren: powerapps.microsoft.com.
Was bieten PowerApps?
Auf der Website gibt es auch bereits eine hübsche, animierte Grafik, welche einen Eindruck über das Look and Feel und etwas Funktionalität zeigt. Ich habe diese von der Website übernommen, da man so sehr rasch sieht, wie der Design-Modus und das Ergebnis von PowerApps aussehen.
PowerApps Formulare werden für den Einsatz auf mobilen Geräten bis hin zum Tablet und Computer erstellt.
Der Designer ist eine eigene, auf dem Computer zu installierende App. Diese erinnert sinngemäß etwas an PowerPoint und ermöglicht Anwendern, Formulare und Workflows zu designen. Das bedeutet hier werden “Screens” zusammengeklickt und Eigenschaften eingestellt und zwar ganz ohne programmieren.
Vielleicht haben es manche Developer schon bemerkt: In Wahrheit stellen die PowerApps die Weiterentwicklung von “Project Siena” dar (Details zu Project Siena siehe Project Siena Is Alive and Well!). Der Codename lautete übrigens “Project Kratos”.
Wie funktionieren PowerApps?
Die Idee ist grundsätzlich recht einfach: Es gibt eine Datenquelle (in der Cloud), wofür mit dem PowerApps Tool eine PowerApp “App” erstellt wird. Technisch gesehen ist der Output des Designers eine HTML und Javascript-“App”, auf die Ersteller jedoch keinen direkten Einfluss haben (den generierten Quellcode umschreiben ist nicht möglich, bzw. zu mindestens nicht angedacht). Diese App wird über den PowerApps-Publish Mechanismus innerhalb des Unternehmens für berechtigte Benutzer als Azure App-Service bereitgestellt.
Wer sich nun fragt: Wie kommt denn eine PowerApp auf mein Smartphone und wie funktioniert sie dort? Nun Microsoft hat sich hierfür einen Trick ausgedacht: Auf dem Zielgerät wird eine eigene App – nämlich die “PowerApp” – installiert. Diese arbeitet sozusagen als Container für die eigenen Apps. Das bedeutet, auf Smartphones muss nur einmalig die PowerApp installiert werden. Die “Apps” dazu kommen durch die Benutzer-Authentifizierung auf das Gerät.
Das zeigt natürlich auch, dass PowerApps nicht für anonyme User gedacht sind. Eine Umfrage-App, ein Legacy-Webformular o.ä. kann so also nicht umgesetzt werden. Use Cases sind Apps für Unternehmen mit authentifizierten (AAD)-Usern.
Ein wichtiger Aspekt ist, dass PowerApps auch ge-share-t werden können. Der Ersteller kann so also bestimmen, welche User die eigene App erhalten.
Die Zielgruppe von PowerApps sind vornehmlich IT-Pros und PowerUser, sprich Anwender, die über Datenquellen Bescheid wissen und Apps dafür zusammenbauen. Die Endanwender erhalten dann die fertige PowerApp um mit den so visualisierten Daten zu arbeiten.
Die PowerApps Architektur sieht so aus (Screenshot aus dem YouTube Video Native Enterprise Apps with PowerApps).
Weitere Infos gibt es in PowerApps documentation und in Azure Documentation Articles.
Die Datenquellen
Der “Treibstoff” für PowerApps sind natürlich die verfügbaren Daten. Es gibt bereits eine Vielzahl von Data Sources für PowerApps, es werden ständig mehr. Um nur einige zu nennen und zu zeigen:
Office 365
Dynamics CRM
Salesforce
Dropbox
OneDrive
SharePoint Online
On-premises systems including SharePoint (folgt)
SQL Server
Oracle Databases
SAP
facebook
Twitter
MailChimp
GitHub
Azure Blob Storage
..und natürlich eigene Datenquellen, dazu später mehr.
Die PowerApp Applikation
…gibt es in den Stores: Windows App, iOS App, Android App
Für Windows Phone gibt es dzt. noch keine App…
Hinweis: Die PowerApp wird es in Zukunft auch im Web geben, dann wird keine lokale Installation mehr benötigt, war auf der Build zu hören. Zeitrahmen dafür gibt es jedoch noch keinen, die existierende App erfüllt aber ihren Zweck.
Eine PowerApp erstellen
Nach der Installation kann die eigene PowerApp zusammengeklickt werden. Wie das funktioniert, beschreiben und zeigen diese Artikel Schritt-für-Schritt:
Get started with PowerApps
Create an app from scratch
Create and run an app from a template
PowerApps with Stephen Siciliano (YouTube Video)
PowerApps 102 - Creating apps from templates (YouTube Video)
Beim Erstellen kann eine “Blank app” oder eine App aus einem “App Template” ausgewählt werden. Der ganze Vorgang ist wirklich einfach (wenn nicht ab und zu Fehler kommen, der Status “Preview” ist zutreffend…).
Bei Auswahl eines Templates (hier etwa “ServiceDesk”) wird auch gleich eine Sample-Datasource in Form eines Excel-Files verwendet, die dann etwa im eigenen OneDrive zentral bereit liegt. Das ist sehr fein, denn so sieht man bereits Daten und kann leichter damit arbeiten.
Das, was etwa in PowerPoint “Pages” sind, sind in PowerApps die “Screens”. So wird Formular für Formular entwickelt. Jedes Objekt besitzt Properties (wie etwa Layout, Content usw.). Die “Formelzeile” ermöglicht selbst einfache “Regeln” zu definieren, das Ganze erinnert etwas an Access-Formulare, siehe etwa Formula reference. In den Actions können je nach Objekt eben bestimmte Aktionen erfolgen.
Die Komplexität?
In PowerApps selbst kann nicht “programmiert” werden, es gibt auch kein Scripting oder Makros. Wie oben erwähnt, sind die Zielgruppe Power-User und IT-Admins, die nicht “coden” müssen.
Umgekehrt ergibt das natürlich nur eine eingeschränkte Client-Funktionalität: Simple CRUD (Create, Update, Delete) Methoden und Verknüpfungen von Ausdrücken sind möglich. Derzeit sind auch etwa keine Lookups aus SPO Listen möglich, also keine komplexen, sondern nur simple Datentypen.
Das ergibt zum derzeitigen Stand eine rasche und einfache Bearbeitung von Listen und “Items” sowie einfache (Work)flows und Visualisierungen. Das Product Team arbeitet jedoch an einer Vielzahl an Erweiterungen und es ist zu erwarten, dass sich die PowerApps nach und nach weiterentwickeln werden.
Für Developer
Natürlich benötigt man auch für PowerApps Developer, und zwar wenn die Datenquelle eine eigene “custom” Data Source ist. Dann muss ein Entwickler ein OData Service für die CRUD Operationen (und ggf. Authentifizierung dafür, Push Notifications usw.) bereitstellen. Dieses Interface können die PowerApps User dann in weiterer Folge verwenden. Der Weg im Unternehmen geht über Azure, wo eigene Interfaces als Managed APIs definiert werden können.
Die folgende Grafik aus dem YouTube Video Native Enterprise Apps with PowerApps zeigt das Konzept. Natürlich gibt es REST APIs und Mobile SDKs für einzelne Services.
(Mein) Fazit
PowerApps werden in (naher) Zukunft eine Funktionalität bereitstellen die es ermöglicht, einfache Aufgaben wie das Erstellen und Manipulieren von zentralen Datenquellen innerhalb von Unternehmen leicht umzusetzen – ohne dass Entwickler dafür (Web)formulare bauen müssen.
Die Existenz von Interfaces und eine zentrale Datenquelle (in der Cloud oder im eigenen Unternehmen) sind Voraussetzung. Microsoft bietet bereits eine Vielzahl an Interfaces für Standard-Datenquellen an. Für eigene Interfaces werden nach wie vor Developer gebraucht. Und natürlich laufen PowerApps auf den AppServices in Azure, verwenden AAD Authentifizierung und LogicApps… Azure ist also eine weitere Voraussetzung.
Auch wenn es von Microsoft so niemals angekündigt wurde, werden die PowerApps in der Community oft als InfoPath Nachfolger gehandelt. Das mag aus meiner Sicht in manchen Aspekten Sinn machen, jedoch ist das Konzept ganz anders. Umgekehrt können wir wohl sicher damit rechnen, dass PowerApps in vielen Bereichen Einzug in das Ökosystem der Microsoft (Office) Services halten wird…
Ganz klar ist jedenfalls, dass PowerApps eine coole Möglichkeit sind, Daten auf allerlei Geräten (vernünftig) in Apps mit repsonsive Design zu bearbeiten – SharePoint Anwender, die versucht haben, eine Liste auf einem Smartphone zu öffnen, wissen, was ich meine.
Microsoft wird PowerApps mit den anderen (neuen) Azure Services Flow, Azure LogicApps, Azure Functions, Power-BI und Co. kombinieren und sie zu einem kombinierten Teil von Azure und Office 365 machen.
Weitere Erfahrungen mit PowerApps und wie man selbst Interfaces für PowerApps entwickelt, werde ich nach und nach posten. Dieser Artikel stellt eine kleine Einführung in das Thema dar. Ich hoffe, ich habe euer Interesse für PowerApps geweckt.