Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 19 Min.

Evolutionäres Prototyping von Business-Apps

Microsoft baut Power Apps zunehmend mit Features aus, um die Low-Code-/No-Code-Welt mit der KI und der professionellen Programmierung zu verbinden.
© dotnetpro
Microsoft zielt mit Power Apps [1] auf die Low-Code-/No-Code-Entwicklung von Business-Apps für den Desktop, das Web und die mobile Welt ab. Das Werkzeug befähigt technisch versierte Endbenutzer mit geringen IT-Kenntnissen – sogenannte Citizen Developer –, ohne tiefergehende Programmierkenntnisse schnell eigene Anwendungen zu entwickeln. Ergänzend stellt Microsoft für Power Apps einen Pool an Tools und Features bereit, die eine Brücke vom Rapid Application Development (RAD) einer App zu ihrer professionellen Programmierung schlagen. Aktuell kommen verschiedene Features und Tools für die Einbindung von Künstlicher Intelligenz hinzu.

Power Apps – SaaS mit zentralen Features für die Microsoft-Welt

Die Entwicklungsumgebung Power Apps macht Microsoft über das Web als cloudbasierte SaaS (Software as a Service) mittels Azure verfügbar [2]. Für die Entwicklung setzt Power Apps einen der beiden Browser Google Chrome oder Microsoft Edge voraus – zusätzlich können Endbenutzer für die Ausführung einer App noch Mozilla Firefox oder Apple Sa­fari nutzen. Für eine weitere Betriebsform der App auf dem Desktop mit Windows oder auf einem Mobilgerät (Android, iOS) macht Microsoft als spezielle Runtime-Umgebung die ebenfalls Power Apps benannte App über den jeweiligen App Store verfügbar.Traditionell nutzen Citizen Developer verschiedene zen­trale Microsoft-Produkte wie Dynamics 365, Microsoft 365, Share­Point, SQL Server und Teams. Deshalb dienten diese im Rahmen des Cloud-First-Ansatzes von Microsoft als Ausgangspunkt für die Planung von Power Apps: Microsoft konzipierte mit der Power Platform [3] eine Werkzeugkette für Citizen Developer und professionelle Programmierer zur Entwicklung von Business-Apps unter Einbindung dieser zen­tralen Microsoft-Produkte (siehe Kasten Komponenten der Power Platform im Überblick).

Komponenten der Power Platform im Überblick

Derzeit umfasst die Power Platform von Microsoft folgende Bestandteile:
Dabei entstand eine eigenständige Datenbank-Technologie: Microsoft Dataverse. Als cloudbasierte und in Power Apps integrierte Database-Engine berücksichtigt Dataverse viele verschiedene Datenquellen. Dazu gehört das Common Data Model (CDM) mit standardisiertem Schema (Entitäten, Beziehungen, Datentypen, Geschäftsregeln). Ferner bietet Power Apps über erweiterbare Connectors inhärente Schnittstellen sowohl zu allen gängigen Microsoft-Systemen als auch zu Produkten von Drittherstellern wie Acrobat, Dropbox, Oracle, Salesforce oder X an. Microsoft Azure gewährleistet dabei die notwendige Sicherheit und Skalierbarkeit für Datenhaltung und Management der Daten.

Low Code/No Code ausgerichtet auf KI und ­professionelle App-Entwicklung

Microsoft verbindet die Low-Code-/No-Code-Technologie der Power Platform mit der professionellen Softwareentwicklung und der KI (Bild 1). Dabei strebt Microsoft an, die Anforderungen der professionellen Programmierung vollumfänglich zu erfüllen. Die Integration von KI-Features befähigt Citizen Developer, schneller Geschäftsanwendungen bereitzustellen, und App-Benutzer, diese produktiver einzusetzen. Verschiedene Tools wie Test Studio und Test Engine helfen beim Durchführen von Tests und dabei, Fehler zu verhindern, zu identifizieren und zu beheben.
Power Apps besitzt eine Schnittstelle zu Copilot, um mittels natürlicher Sprache eine App zu generieren (Bild 1) © Autor
Paketierung und Auslieferung einer App erfolgen mittels eines integrierten Features über definierte Softwareartefakte. Im Betrieb liefert ein Monitoring-Feature wertvolle Erkenntnisse zum Verhalten einer App. Dies deckt Fehler und Sicherheitslücken auf und bietet das Potenzial, die Software durch Wartung sowie Weiterentwicklung kontinuierlich zu verbessern und zu erweitern. Power Apps besitzt eine integrierte Versionsverwaltung, um Änderungen in den Apps zu managen und im Notfall oder Fehlerfall eventuelle Rollbacks leicht durchzuführen. Ein separates Konstrukt ist speziell auf die Zusammenarbeit in verschiedenen Teams ausgerichtet.Weitere Entwicklungstools wie das Power Apps Component Framework (PCF), die Befehlszeilenschnittstelle Power Platform CLI (kurz: PAC) oder Erweiterungen von Visual Studio (Code) ermöglichen die Einbindung professioneller Entwickler. Dies schlägt nicht nur die Brücke zu vorhandenen Technologien wie Node.js, HMTL, CSS, TypeScript/JavaScript, .NET oder C#, sondern ermöglicht auch die Automatisierung verschiedener Vorgänge wie Authentifizierung, Build, Test, Versionierung oder Deployment.Microsoft strebt mit KI-Technologien wie Copilot maschinelles Lernen in Power Apps und in den Business-Apps der Anwender an – dabei verbleiben die eigentlichen Daten aber immer beim Anwender! Das Lernen erfolgt rein aufgrund von Feedbacks, sodass der Datenschutz gegenüber Dritten selbstverständlich gewährleistet bleibt. Sinnvoll wäre es, beim Lernprozess das vorhandene Wissen des Power CAT (Customer Advisory Team) und deren Tools einzubeziehen.

Power Apps bietet wichtige Features für mehr Produktivität und Effizienz

Zu den Key-Features von Power Apps gehören das Drag-and-Drop-Interface mit anpassbaren Formularen und Views, vorgefertigte Templates für gängige Business-Apps, Unterstützung von Responsive Design, Verfügbarkeit von Schemata mit Daten und umfassenden Datenschnittstellen, enge Integra­tion mit anderen Microsoft-Systemen sowie die Optimierung der Arbeitsweise für die mobile Welt. Das Drag-and-Drop-Interface realisiert die Low-Code-Entwicklung, da Power Apps ohne umfassende Codierung, das heißt ohne Schreiben von Quellcode, diesen selbst im Hintergrund generiert.Im User-Interface enthaltene Elemente richtet der Entwickler über deren Eigenschaften an den Vorgaben aus. Power Apps besitzt mächtige UI-Controls wie Formulare und Views, um komplette Tabellen oder ganze Datengruppen zu verarbeiten. Bisher nicht enthaltene Funktionalität fügt der Citizen Developer über die Programmiersprache Power Fx [4] hinzu, die sich an der Formelsprache von Excel orientiert. Zudem kann man als Templates vorliegende, vollständig funktionsfähige Business-Apps an eigene Anforderungen anpassen. Für dieses Customizing steht der komplette Funktionsumfang von Power Apps zur Verfügung.Die enge Integration mit gängigen Microsoft-Produkten wie Office, Dynamics, SharePoint oder Teams erlaubt die Wiederverwendung vorhandener Arbeitsergebnisse und eine enge Kopplung der entwickelten Business-Apps mit diesen Produkten. Die Daten dieser Produkte stehen in Power Apps als Ausgangspunkt für die App zur Verfügung, Änderungen in den Datenbeständen reicht die App direkt an die Produkte weiter. Zudem kann man mit Power Apps entwickelte Apps speziell für das mobile Arbeiten optimieren. Dabei besteht die Möglichkeit, Daten lokal zu speichern, sodass ein Endbenutzer eine App auch ohne Internetverbindung nutzen kann (Offline-Funktionalität).

Power Apps bietet verschiedene App-Typen für produktive Entwicklung an

In Power Apps stehen dem Entwickler zwei grundlegend unterschiedliche Typen von Business-Apps zur Verfügung: Canvas Apps und Model-driven (modellgesteuerte) Apps (Bild 2). Zuerst entstanden Model-driven Apps, basierend auf den über Dataverse zugänglichen Datenmodellen. Dieser App-Typ eignet sich speziell für datenintensive und prozessgesteuerte Anwendungen. Insbesondere kann man mit ihm auch die Businesslogik für komplizierte Geschäftsprozesse umsetzen, selbst wenn diese besondere Anforderungen seitens der Datensicherheit erfüllen sollen.
Über die Homepage/den Homescreen von Power Apps erstellt der Citizen Developer anhand eigener Vorgaben verschiedene Business-Apps (Bild 2) © Autor
Ausgehend von der Struktur der zugrunde liegenden Daten generiert Power Apps eine Model-driven App. Der Entwickler benötigt wenig Kenntnisse bezüglich des UI-Designs, da vorgefertigte Komponenten für das User-Interface zum Einsatz kommen. Zu ihnen gehören Kommandoleisten, Dashboards, Berichte, Grafiken, Formulare oder rechnende und ausklappbare Felder. Dabei verbindet Power Apps automatisch das UI mit den Daten. Hier lassen sich auch Custom-APIs, Plug-ins, Sicherheitsrollen oder Webressourcen einbinden. Zudem sind Schnittstellen zu JavaScript und den Dataverse-Web-APIs verfügbar.Der Canvas-App-Typ (Bild 2) ist speziell auf mobile End­geräte (Smartphone, Tablet) ausgerichtet, eignet sich aber auch für die Ausführung auf einem Desktop-Rechner unter Windows. Die Entwicklung einer Canvas App erfolgt von Grund auf mittels Drag and Drop – dabei steht die Benutzeroberfläche unter vollständiger Kontrolle des Programmierers. Der Entwickler kann ein UI-Element auswählen, es der Benutzeroberfläche flexibel hinzufügen und es nach Wunsch positionieren sowie dessen Eigenschaften an individuelle Vorgaben anpassen.Im Unterschied zu einer Model-driven App ist eine Canvas App nicht eng mit Microsoft Dataverse gekoppelt. Deshalb müssen die Daten einer Canvas App nicht unbedingt in Dataverse gespeichert werden. Eine Canvas App kann ihre Daten in beliebigen Datenquellen einschließlich SQL Server, aber auch in Microsoft Excel, OneDrive, SharePoint oder Azure SQL speichern. Eine Canvas App bietet zwar mehr Freiheit im Design, erfordert aber auch ein größeres Maß an kreativem Input und Designarbeit.

Dataverse ist mehr als eine Datenplattform für die Low-Code-Welt

Microsoft hat mit Dataverse eine Datenplattform in der Cloud geschaffen, die zu einer Integration und Vereinheitlichung vieler differierender Technologien beiträgt. Dataverse erlaubt das Arbeiten mit allen wichtigen Kategorien von Daten: relational, nonrelational, Dateien, Bilder, Videos, Streams, Search oder Rohdaten (Data Lake). Zudem gibt es spezielle Konstrukte wie Virtual Tables, um auch externe Daten über Dataverse zu erschließen. Somit stellt Dataverse eine zentrale Integrationsplattform für Daten dar und entspricht einem wichtigen Werkzeug der Power Platform.Im Rahmen des Cloud-First-Ansatzes von Microsoft basiert Dataverse auf den Cloud-Diensten von Azure. Die von Power Apps bereitgestellten Connectors für Dataverse erschließen dem Entwickler Dynamics 365, OneDrive, Microsoft 365, Share­Point und Teams. Zudem stehen für Dataverse ein leistungsstarkes REST-basiertes API mit OData (Open Data Protocol) und ein SDK für Developer bereit. Das SDK ermöglicht mittels Plug-ins, die Funktionalität von Dataverse zu erweitern. Damit lassen sich jede Art von Apps wie Desktop, Mobile und Web, aber auch rein dienstbasierte Systeme realisieren.Für deren Zugriff auf Daten existieren (historisch gewachsen) zwei Wege: Model-driven Apps verarbeiten Daten direkt in Dataverse oder kommunizieren über APIs/virtuelle Tabellen mit einem externen Datenbestand. Im Unterschied dazu besitzen alle anderen App-Typen (Canvas Apps, Power Automate Apps) keine enge Verknüpfung zu Dataverse. Ihre Daten müssen nicht in Dataverse gespeichert werden – sie greifen über einen Connector (Verbindung) oder ein API auf ihre Daten zu. Auch der Connector unterstützt den Low-­Code-/No-Code-Ansatz: Der Zugriff auf die Datenquellen erfolgt, ohne zusätzlichen Code manuell zu schreiben.Als Besonderheit besitzt Dataverse Built-in-Security-Features, um verschiedene Aspekte der Sicherheit über ein feingranulares Benutzer- und Rollen-Modell abzudecken. Dazu gehören Authentifizierung und Autorisierung für den Zugriff auf die Daten und für die Verwendung der Services. Data­verse nutzt die von Microsoft erarbeiteten Datenschutzmechanismen, also die zugrunde liegende Sicherheitsarchitektur von Azure. Diese verwendet Single Sign-On (SSO), Benutzergruppen, Security-Rollen innerhalb von Organisationen/Tenants (Mandanten) und Audit-Protokollierungsfunktionen.

Power Apps Studio – eine visuelle, integrierte Programmierumgebung

Gestaltung, Entwicklung und Verwaltung einer Business-App erfolgen in der visuellen Programmierumgebung Power Apps Studio. Für eine Canvas App kommt Power Apps Studio bereits bei deren Erstellung zum Einsatz, für eine Model-driven App erst bei Änderungen in ihrer Gestaltung. Grundsätzlicher Schwerpunkt von Power Apps Studio ist das Design des User-Interface und der Spezifikation des Verhaltens der App. Daher benötigt jeder Entwickler Grundkenntnisse zu dieser Programmierumgebung, um produktiv und effizient zu arbeiten.Microsoft hat die früheren klassischen Designer (verschiedene App-, Formular- und Ansichts-Designer) inzwischen durch moderne, an Power Apps Studio ausgerichtete Designer abgelöst. Jedoch kann ein Administrator im Power Platform Admin Center [5], falls notwendig, die klassischen Designer wieder aktivieren. Dies ermöglicht es Programmierern, für die Wartung schon länger bereitgestellter Business-Apps auf die klassischen Designer zurückzugreifen.Power Apps speichert alle Spezifikation der Business-Apps in Dataverse innerhalb der zugehörigen Umgebung (Environment) ab, diese hostet Microsoft über das Web in Azure. Bei der Anlage einer Umgebung (Environment) wählt der ­Administrator die Azure-Region entsprechend seinen Anforderungen aus und deklariert diese passend. Grundsätzlich muss sich kein Entwickler selbst um die Konsistenz von Quellcode oder die Kopplung mit dem auf Azure liegenden Repository kümmern. Diese Aufgaben übernimmt Power Apps Studio zusammen mit Microsoft Azure.

Aufbau und Arbeitsweise von Power Apps Studio

Sobald der Entwickler mit der Neuanlage einer Canvas App beginnt oder eine bereits vorhandene Business-App öffnet, startet Power Apps Studio automatisch und zeigt die App an. Der sich öffnende Home-Bildschirm besteht im Wesentlichen aus den folgenden sechs Fenster-Abschnitten (Bild 3): 1. Obere Menüzeile/Toolbar, 2. Eingabezeile für Formeln, 3. Linke Menüleiste/Toolbar, 4. Tree-View/Struktur- und Komponenten-Ansicht, 5. Anzeige- oder Arbeitsbereich mit Visualisierung der App (auch Designer-Fläche genannt) und 6. Eigenschaftsfenster (ganz rechts).
Mit Power Apps Studio als User-Interface-Design-Tool programmieren Entwickler eine Business-App auf einer höheren Spezifikationsebene (Bild 3) © Autor
Die obere Menüzeile/Toolbar (in Bild 3 mit 1. ausgezeichnet) macht verschiedene Kommandos verfügbar, abhängig von dem aktuell in der Strukturansicht (mit 4. ausgezeichnet) ausgewählten Steuerelement (Control). Über diese Menüzeile fügt der Entwickler neue Bildschirme und Kontrollelemente hinzu oder verbindet verschiedene Datenquellen mit der App. Rechts in der oberen Menüzeile erscheinen neben dem Text Bearbeiten … verschiedene Icon-Symbole, um die App zu speichern, auszuführen, eine App-Überprüfung zu starten, die App zu veröffentlichen oder das Eigenschaftsfenster (mit 6. ausgezeichnet) für das aktuelle Steuerelement anzuzeigen.Die mit 2. ausgezeichnete Bearbeitungsleiste für Formeln dient dazu, ­eine Formel mittels der Programmiersprache Power Fx für das in der Tree-View ausgewählte Element (das aktuelle Steuerelement/Control) zu erstellen oder eine dort bereits vorhandene Formel zu bearbeiten. Über die linke Menüleiste/Toolbar unter 3. schaltet der Entwickler die Anzeige (mit 4. gekennzeichnet) zwischen verschiedenen Objekten (Tree-View/Strukturansicht, Einfügen-Leiste, Variablen, Suchleiste et cetera) um.Ferner sind über diese linke Menüleiste/Toolbar (mit 3. gekennzeichnet) auch der Live-Monitor oder das in Power Apps integrierte Test-Werkzeug zu erreichen. Zusätzlich macht dort ganz unten ein Zahnrad-Icon die Einstellungen der App zugänglich, um diese zu konfigurieren. Anhand von 4. Strukturansicht (Tree-View) wählt der Programmierer ein konkretes Element oder über die Registerlasche Komponenten eine in der App enthaltene Komponente für die Bearbeitung aus.Der mit 5. gekennzeichnete Anzeigebereich zur Visualisierung/Arbeitsbereich zeigt die Oberfläche der App in der Designer-Fläche an und hebt ein über die Strukturansicht (Tree-View) eventuell selektiertes Steuerelement (Control) auf der Oberfläche hervor. Dabei erhält ein ausgewähltes Steuerelement im Anzeige- beziehungsweise Arbeitsbereich eine gepunktete Umrandung. Über den Arbeitsbereich setzt ein Entwickler mittels Drag and Drop oder durch Anklicken der Einfügen-Leiste die Hauptbestandteile der App jeweils zu einer eigenständigen Einheit zusammen oder verändert diese entsprechend den Anforderungen.Das mit 6. gekennzeichnete Eigenschaftsfenster macht alle Eigenschaften (Properties) eines aktuell in der Strukturansicht (Tree-View) ausgewählten Objekts zugänglich. Über dessen Eingabefelder passt der Entwickler das Objekt an die Vorgaben des Designs an. Dort lässt sich zwischen den Registerkarten Anzeige oder Erweitert umschalten; wobei das Erweitert-Register neben der Anzeige zusätzlicher Eigenschaften des selektierten Objekts auch eine gezielte Suche nach einer direkt nicht auffindbaren Eigenschaft unterstützt.

Generative KI in Power Apps nutzen und für Business-Apps erschließen

Bereits beim Starten zeigt Power Apps einen Eingabebereich für Copilot an, um die frühen Phasen des Requirements-­Engineerings zu unterstützen. Anhand einer Aufgabenbeschreibung in natürlicher Sprache generiert Copilot eine strukturierte Planung des Projekts. Dabei nutzt Copilot die von Microsoft bereitgestellten generativen KI-Dienste. Copilot identifiziert die betroffenen Rollen und die zu erledigenden Aufgaben. Diese überarbeitet der Analytiker in nachfolgenden Dialogschritten, indem er Änderungen oder Konkretisierungen vornimmt, um als Ergebnis einen Vorschlag für die Realisierung der Business-App zu erhalten. Auch für die Generierung oder Änderung einer Business-App kann ein Entwickler auf Copilot zurückgreifen. So bietet Power Apps für die Neuanlage einer App das Feature „Start with Copilot“ an. Als Startpunkt dienen die Beschreibung eines Geschäftsfalls oder die seitens der App zu verarbeitenden Daten. Anhand dieser Beschreibung generiert Copilot ein Entity-Rela­tionship-Diagramm (ERD) für die App (Bild 4). Dieses kann der Entwickler schrittweise weiterbearbeiten, um abschließend die Business-App zu generieren. Die Datenhaltung dieser Model-driven App ist auf Dataverse ausgerichtet.
Power Apps generiert mithilfe von Copilot Tabellen und zeigt diese als Entity-Relationship-Diagramm (ERD) an (Bild 4) © Autor
Während der Gestaltung einer Business-App kann der Entwickler auch Komponenten einbeziehen, die eine generative KI benutzen. Das gewünschte KI-Modell muss seitens der ­Administration freigeschaltet sein. Anhand einer AI-Builder-Lizenz stehen in Power Apps die zugehörigen Controls (Steuerelemente) über die Registerkarte Einfügen zur Verfügung. Den Eintrag KI-Modelle (AI models) erreicht der Entwickler über die Schaltfläche Mehr/More; diese zeigt eine gut gegliederte Übersicht der verfügbaren KI-Modelle an, um sie bedarfsorientiert zu durchforsten.Auch Power Apps Studio berücksichtigt die Eigenschaften der in den KI-Modellen enthaltenen Controls und erschließt diese über seinen Property-Editor. Dabei erlaubt die Formelsprache Power Fx ebenfalls den Zugriff auf KI-Modelle, sodass ein Entwickler sie ­direkt für die Programmierung verwenden kann. Ergänzend lässt sich Copilot über Power Apps Studio in eine Business-App integrieren. Danach steht dessen Funktionalität den Endbenutzern der App als natürlicher Sprach-Assistent zur Verfügung – entweder als Hilfesystem, oder um mit dem verbundenen Datenbestand zu arbeiten.

Power Fx – eine leistungsfähige Low-Code-Sprache für die Power Platform

Power Fx gehört zur Gruppe der Allzweck-Programmiersprachen mit deklarativem Charakter. Das Team bei Microsoft hat sich bei der Konzeption von Power Fx an Pascal, Mathematica, Miranda und der in Excel verfügbaren Formelsyntax orientiert. Deshalb besitzt die Sprache eine starke Typisierung mit imperativen Elementen und unterstützt die funktionale Programmierung. Aufgrund ihrer Ausrichtung auf Formeln und des Einbezugs der in Power Platform vorhandenen Ressourcen verfügt die Sprache über eine hohe Mächtigkeit, sodass bereits wenig Quellcode (Low Code) einen großen Leistungsumfang realisiert; vergleichbar einer 4th Generation Language (4GL).Ohne größeren Aufwand in der Programmierung lassen sich einfache Formeln wie das Anzeigen und das Ändern von Controls, Berechnungen oder auch Nachrichten (Ereignisse) zur Auslösung von Aktionen nutzen. Selbst komplexere Geschäftslogik erschließt Power Fx unter Einbezug von Daten mit extrem wenig Codierung. Power Fx unterstützt Funktionen für die Integration von in C# geschriebenem Quellcode. Grundsätzlich steht der Quellcode in Power Fx im YAML-Format zur Verfügung [6]. Leider lässt sich dieser derzeit nur per Copy and Paste in andere Werkzeuge übernehmen. Ein GitHub-Repository erschließt das Arbeiten mit Power Fx/YAML in Visual Studio/VS Code.Während Entwicklung, Test und Betrieb einer mit Power Fx programmierten Business-App greift Power Apps auf gängige Vorgehensweisen der Softwaretechnik in seinen nachfolgend aufgeführten zentralen Komponenten zurück:
  • Eingabefeld für Formeln (Formel-Leiste): Sie befindet sich in Power Apps Studio unterhalb der Menüleiste neben der fx-Beschriftung. Diese Komponente unterstützt nicht nur das Programmieren/Schreiben von Formeln, indem sie Codierfehler anzeigt oder Vorschläge zur Vervollständigung von Formeln macht, sondern erklärt über Copilot auch die konkrete Arbeitsweise des aktuellen Formelausdrucks (Bild 5); dabei erfolgt ein Einsatz von IntelliSense.
Die Auswahl des Menüeintrags „fx Diese Formel erläutern“ aktiviert Copilot; der KI-Assistent zeigt daraufhin eine konkrete Erklärung der Formel an (Bild 5) © Autor
  • Analysis Engine: Im Hintergrund der Formel-Leiste arbeitet die Analysis Engine – sie greift ebenfalls auf IntelliSense zurück. Dabei zeigt die Analysis Engine Quick Infos/Tooltips zum Aufbau und zur Syntax der Power-Fx-Formel an und liefert Vorschläge für die automatische Vervollständigung des Quellcodes.
  • Intermediate/Machine Language (IL): Zusätzlich konvertiert die Analysis Engine das in Power Fx geschriebene Frontend in einen Zwischencode, den der Compiler direkt versteht und weiterverarbeitet. Für eine Web-App erzeugt ein Code-Generator den erforderlichen HTML/CSS/JavaScript-Quellcode. Greift der Power-Fx-Quellcode auf Datenbestände zu, so erzeugt ein weiterer Code-Generator die zugehörigen Anweisungen zur Verarbeitung der Daten.
  • Compiler: Der Compiler überführt den durch die Interme­diate Language (IL) erzeugten Zwischencode in ein jeweils für die Ausführungsumgebung geeignetes Format, um das gewünschte Resultat in der Business-App gegenüber dem Endbenutzer zu erreichen.

Environments als Objekt-Container zur ­Trennung von Arbeitsergebnissen

Bei einem Environment handelt es sich um einen Container (Speicherbereich) zur Ablage von Objekten während der Zusammenarbeit im Team. Jedes angelegte Objekt der Power Platform gehört immer einer solchen Arbeitsumgebung an. Zu diesen Objekten zählen einzelne Arbeitsergebnisse, aber auch komplette Business-Apps, Chatbots, Geschäftsdaten und Ähnliches. Ein Environment zielt primär auf die Isolierung seiner Komponenten für verschiedene Benutzergruppen ab. Dies gewährleistet, dass Änderungen in den enthaltenen Komponenten keine Auswirkungen auf andere Umgebungen haben. Environments bilden somit Einheiten für die Organisation einer kontrollierten Zusammenarbeit.Environments verwalten die Arbeitsergebnisse in den einzelnen Phasen des Entwicklungszyklus wie Programmierung, Test und Produktion. Dabei können Administratoren spezifische Berechtigungen und Sicherheitsrichtlinien für Benutzer und Gruppen festlegen. Nur berechtigte Benutzer können auf die darin befindlichen Ressourcen zugreifen. Das Environment dient so zur sicheren Ablage für das Management und zum Teilen der darin enthaltenen Objekte mit anderen Benutzern. Ein Environment ist immer unveränderbar über das Region-Attribut mit einem geografischen Standort verbunden.Eine Neuanlage eines Environments setzt in der Regel die erforderliche Lizenz beim Administrator oder Entwickler voraus. Die Power Platform und damit auch Power Apps unterscheiden verschiedene Typen von Environments:
  • Default/Standard: Eine Default-Umgebung wird für jede Organisation (Mandanten/Tenant) automatisch beim erstmaligen Aufruf von Power Apps erzeugt und als aktuelle Arbeitsumgebung festgelegt. Von dieser Default-Umgebung gibt es nur eine Ausprägung – sie steht standardmäßig jedem Benutzer des Mandaten/Tenants für Entwicklung und Tests zur Verfügung. Dieses Standard-Environment lässt sich mit allen Benutzern einer Organisation teilen, eine Neuanlage oder Löschen ist nicht möglich. Ein Backup dieses Environments erreicht man nur über Umwege durch manuellen Export ausgewählter Elemente.
  • Developer/Entwickler: Ein Entwickler benötigt eine Lizenz vom Typ Developer Plan, um dieses Environment erzeugen zu können. Es handelt sich um eine spezielle Umgebung, die nur für den persönlichen Gebrauch des Besitzers bestimmt ist. Ihre Bestandteile lassen sich in ein Environment vom Typ Sandbox oder Produktion kopieren.
  • Production/Produktion: Jeder Administrator oder Besitzer einer Power-App-Lizenz kann ein derartiges Environment anlegen. Als permanenter Speicher ist ein Production Environment für langfristiges Arbeiten gedacht. Dabei kann man den Umgebungstyp von Production in Sandbox wechseln.
  • Sandbox/Sandkasten: Diese Umgebung zielt auf Entwicklung und Test ab; sie besitzt spezielle Features wie Copy oder Reset für das Management ihrer Inhalte. Auch ein Wechsel des Umgebungstyps von Sandbox in Production wird unterstützt.
  • Trial/Testversion:Diese für kurzfristigen Testbedarf eingerichtete Umgebung besitzt eine maximale Laufzeit von 30 Tagen.
  • Test Version/Testversion (abonnementbasiert): Kann für einen längeren und komplexeren Testbedarf eingerichtet werden und steht während der kompletten Laufzeit des zugehörigen Abonnements zur Verfügung.

Solutions als Objekt-Sammlung zur ­Implementierung von ALM

Alle Aufgaben des Application-Lifecycle-Managements (ALM) müssen koordiniert und mit höchster Zuverlässigkeit ausgeführt werden. Als Entwicklungsumgebung, die sich nicht nur an Citizen Developer, sondern auch an professio­nelle Programmierer und Tester richtet, besitzen Power Apps, Power Automate und Power Virtual Agents für das ALM das Konstrukt der Solutions (Lösungen). Bei einer Solution handelt es sich um eine Sammlung mehrerer in der Regel miteinander verbundener Komponenten, die zusammen aus ALM-Sicht ein abgeschlossenes Arbeitsergebnis bilden.Eine Solution entspricht also einem Container, der verschiedene bearbeitete Komponenten wie Apps, Datenquellen (Tabellen in Dataverse), Flows, Plug-ins, Power-BI-Berichte und -Dashboards, Webressourcen, Site-Maps oder Umgebungsvariablen enthält. Alle in einer Solution (Lösung) enthaltenen Komponenten stellen von außen gesehen eine in sich geschlossene Einheit dar. Diese Abgeschlossenheit trägt dazu bei, notwendige Komponenten an einem Ort zu bündeln und zu organisieren, was deren Verwaltung, Bereitstellung, Dokumentation und ihren Zugriffsschutz erleichtert.Solutions ermöglichen es auch, Business-Apps modular und wiederverwendbar zu gestalten. Lösungen unterliegen der Versionsverwaltung, sodass Änderungen nachverfolgt und rückgängig gemacht werden können. Es gibt zwei Typen von Lösungen (Solutions):
  • Nicht verwaltete (unmanaged): Bei einer neu angelegten Solution handelt es sich immer um eine Unmanaged-Lösung. Einer Unmanaged-Lösung können Komponenten hinzugefügt werden, und die Komponenten lassen sich aktualisieren, patchen, entfernen oder als Managed/Unmanaged Solution exportieren. Nach ihrem Löschen verbleiben alle ursprünglich in ihr enthaltenen Komponenten weiterhin in der IDE.
  • Verwaltete (managed): Eine verwaltete Solution muss manuell explizit als managed deklariert werden. Im Unterschied zur Unmanaged- stellt eine Managed-Lösung eine unveränderbare Einheit dar – ein Löschen entfernt diese zusammen mit all ihren Komponenten aus dem Entwicklungswerkzeug.
Nach dem Anlegen einer neuen Umgebung enthält diese ­immer eine Common-Data-Services-Standardlösung (CDM) und eine Standardlösung (Bild 6). Diese Vorgehensweise stellt sicher, dass alle Kernfunktionen in der neuen Umgebung verfügbar sind. Erstere macht Änderungen eines Softwareprodukts anderen Partnern zum Testen verfügbar. Für den konkreten Einsatz des Produkts ist in der Regel eine Lizenz des Herstellers notwendig. Der zweite Typ der Unmanaged Solution enthält alle für die Entwicklung notwendigen Komponenten – diese dienen als Grundlage für die Erstellung eigener Arbeitsergebnisse.
Diese angezeigte Power-Apps-Entwicklungsumgebung enthält drei verschiedene Unmanaged-Lösungen – eine selbst erzeugte sowie die beiden automatisch systemseitig erzeugten Lösungen (Bild 6) © Autor

Sie möchten gerne mehr erfahren?

Das freut uns, denn ab Erscheinen des vorliegenden Artikels veröffentlichen wir auf unserer Webseite in unregelmäßigen Abständen zusätzlich Beiträge, die den Artikel fortsetzen und ausschließlich online zur Verfügung stehen. Derzeit geplant sind Beiträge zu Themen wie:

Spezialisierte Werkzeuge für professionelle ­Entwickler

Für professionelle Entwickler und Mitarbeiter des IT-Betriebs stehen Tools zur Verfügung, um die Features der Power Platform zu erweitern oder anfallende Aufgaben leichter zu erledigen. Mit ihnen können professionelle Programmierer Anforderungen in einer Business-App realisieren, die aktuell mit den Tools der Power Platform selbst nicht umsetzbar sind. Diese Erweiterungen oder Verbesserungen senken die Komplexität der Entwicklung, was sich auch auf Produktivität und Effizienz positiv auswirkt. Zu diesen Werkzeugen gehören:
  • Power Apps Component Framework (kurz: PCF): Enthält eine Reihe von Tools, um Power Apps gängige Webtechnologien wie HTML, CSS und JavaScript/TypeScript für die komponentenbasierte Programmierung zu erschließen. Das PCF macht mit diesen Webtechnologien entwickelte Komponenten in Power Apps verfügbar; dadurch lassen sich Komponenten von React, Fluent UI oder Angular in eigene Business-Apps einbinden
  • Power Platform CLI (kurz: PAC): Diese Befehlszeilenschnittstelle (CLI) steht für macOS, Linux und Windows bereit. Die Installation erfolgt mit dem Befehl dotnet tool install über ein NuGet-Package oder die Marketplace Extension der Power Platform Tools für VS Code. Ergänzend stellt Microsoft für die Installation unter Windows ein MSI-Package zum Herunterladen bereit. Abhängig von der durchgeführten Installation und dem Betriebssystem sind einige Besonderheiten zur Verfügbarkeit der Befehle und ihrer Ausführung zu beachten.
  • ALM Developer Tools: Erledigen alle im Rahmen des Soft­ware-Lifecycles anfallenden Arbeiten. Hierzu gehören die Microsoft Power Platform Build Tools für Azure DevOps aus dem Azure Marketplace. Zusätzlich stehen mehrere GitHub Actions über das GitHub-Repository Power Platform Actions zur Verfügung [7]. Damit anfallende Aufgaben mit Azure DevOps oder GitHub Actions basieren auf dem Power Platform CLI (PAC).
  • Dataverse Developer Tools: Die darin enthaltenen fünf Werkzeuge machen zusätzliche PAC-Befehle für den Einsatz von Dataverse verfügbar. Diese umfassen ein Configuration Migration Tool (CMT), einen Package Deployer (PD), ein Plug-in Registration Tool (PRT), ein Solution Packager Tool (SP) (bereits in PAC enthalten) und ein Code Generation Tool (CG) – sie erledigen im Umfeld von Dataverse ganz spezielle Aufgaben. Ihre Installation erfolgt über den Befehl pac tool. Die von den ersten drei Tools bereitgestellten WPF-Apps kann man nur unter Windows einsetzen.
  • Power Apps Test Engine: Dieses Projekt der Open-Source-Gemeinde eignet sich für das automatische Testen von Apps, für Dataverse und für das AI-Prompting.
  • Power Platform Tools für VS Code: Als Erweiterung für VS Code unterstützen sie innerhalb der IDE das Anlegen, den Build und das Deployment von Apps, Packages und Portals – diese VS-Code-Extension enthält auch das Power Platform CLI (PAC).
  • Power Platform Tools für Visual Studio: Diese Erweiterung für Visual Studio richtet sich an Entwickler von Plug-ins. Zusätzlich hilft sie bei der Entwicklung angepasster Workflows, dem Einsatz von Webressourcen sowie der Integra­tion von Azure-Service-Endpoints und Webhooks in eine Business-App.
  • Visual Studio Connected Services: Erschließt innerhalb von Visual Studio eigene, angepasste Connected Services. Diese erleichtern die Programmierung von Azure Functions oder APIs und ermöglichen den Einsatz der Power Platform in ASP.NET-Core-Web-API-Projekten.

Fussnoten

  1. Power Apps, http://www.dotnetpro.de/SL2506-07PowerApps1
  2. Entwicklungsumgebung von Power Apps, https://make.powerapps.com/
  3. Power Platform, http://www.dotnetpro.de/SL2506-07PowerApps2
  4. Microsoft Power Fx auf GitHub, http://www.dotnetpro.de/SL2506-07PowerApps3
  5. Power Platform Admin Center, http://www.dotnetpro.de/SL2506-07PowerApps4
  6. Power Fx und YAML für Visual Studio/VS Code auf ­GitHub, http://www.dotnetpro.de/SL2506-07PowerApps5
  7. GitHub Actions für die Power Platform auf GitHub, http://www.dotnetpro.de/SL2506-07PowerApps6

Neueste Beiträge

DWX hakt nach: Wie stellt man Daten besonders lesbar dar?
Dass das Design von Websites maßgeblich für die Lesbarkeit der Inhalte verantwortlich ist, ist klar. Das gleiche gilt aber auch für die Aufbereitung von Daten für Berichte. Worauf besonders zu achten ist, erklären Dr. Ina Humpert und Dr. Julia Norget.
3 Minuten
27. Jun 2025
DWX hakt nach: Wie gestaltet man intuitive User Experiences?
DWX hakt nach: Wie gestaltet man intuitive User Experiences? Intuitive Bedienbarkeit klingt gut – doch wie gelingt sie in der Praxis? UX-Expertin Vicky Pirker verrät auf der Developer Week, worauf es wirklich ankommt. Hier gibt sie vorab einen Einblick in ihre Session.
4 Minuten
27. Jun 2025
„Sieh die KI als Juniorentwickler“
CTO Christian Weyer fühlt sich jung wie schon lange nicht mehr. Woran das liegt und warum er keine Angst um seinen Job hat, erzählt er im dotnetpro-Interview.
15 Minuten
27. Jun 2025
Miscellaneous

Das könnte Dich auch interessieren

UIs für Linux - Bedienoberflächen entwickeln mithilfe von C#, .NET und Avalonia
Es gibt viele UI-Frameworks für .NET, doch nur sehr wenige davon unterstützen Linux. Avalonia schafft als etabliertes Open-Source-Projekt Abhilfe.
16 Minuten
16. Jun 2025
Mythos Motivation - Teamentwicklung
Entwickler bringen Arbeitsfreude und Engagement meist schon von Haus aus mit. Diesen inneren Antrieb zu erhalten sollte für Führungskräfte im Fokus stehen.
13 Minuten
19. Jan 2017
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige