Articles

Application Lifecycle Management (ALM) and Power Apps EN
Application Lifecycle Management (ALM) und Power Apps DE
virtuelle Maschinen in Azure - Regionen und Kosten DE
Weekly CW17-2020 EN
Weekly CW16-2020 EN
Weekly CW015-2020 EN
Renaming Azure "Root" management group not possible EN
Umbenennen der Azure "Root Management Group" nicht möglich DE
Announcement from Microsoft: Introducing Microsoft 365 Personal and Family subscriptions EN
Weekly CW012-2020 EN

Introduction

This article will explain how to apply Application Lifecycle Management (ALM) in Azure DevOps for Power Apps. It will be shown how to set up the required Azure DevOps environment. Furthermore, it will be described how source code/Power Apps can be versioned, quality assurance can be performed and subsequently artifacts delivered to the production environment.

The history of the article is longer. The first draft was already written by me in 2019. In the meantime I have worked on it again and again. What finally kept me from publishing it was, in my opinion, not yet "finished" tooling of the "Microsoft Power Platform Build Tools for Azure DevOps - Power Platform | Microsoft Docs". The originally available tooling (Azure DevOps Extension) is still available now but has been marked as "DEPRECATED" since the jump to version 0.3.7. Already since the jump from version 0.1.16 to version 0.3.6 the original tooling has been fundamentally revised/improved.

In version 0.1.16, the access credentials (user name/password) had to be stored in plain text to set up the connection. Since version 0.3.6 this authentication can finally be setup using Service Principals.

Authentication methods Figure: Authentication methods

The old (not recommended) method (yellow) is still available. So the transition to the new option (green) is seamless, even for users who have already used previous versions of BuildTools or have not yet set up Service Principals. When changing to or starting with the current version of the Build Tools, you should always be using Service Principals.

Two versions are available in the Visual Studio Marketplace: 1. Power Platform Build Tools - Visual Studio Marketplace
2. (DEPRECATED) PowerApps BuildTools - Visual Studio Marketplace

As described above, this extension [2] is now marked as "DEPRECATED", so only [1] should be used.
The tools currently available for Azure DevOps are basically a wrapper around the SolutionPackager for D365 Customer Engagement (CRM).

The final architecture, for the integration of Azure DevOps and Power Platform, will look like the following on an abstract level.

Architecture overview Figure: Architecture overview

Microsoft itself suggests two different approaches for ALM in conjunction with the Power Platform. [^1] In this article the first variant is described, where only the source code is versioned, but not the packed solutions. In the context of classical software development this is also the normal way, because usually only source code and not compiled binaries are versioned.

Read more


Einführung

Dieser Artikel wird erklären, wie man Application Lifecycle Management (ALM) in Azure DevOps für Power Apps anwenden kann. Es wird gezeigt wie die benötigte Azure DevOps Umgebung eingerichtet wird. Weiterhin wird beschrieben, wie Quellcode/Power Apps versioniert werden kann/können, Qualitätssicherung durchgeführt und im Anschluss in die Produktionsumgebung ausgeliefert werden kann.

Die Entstehungsgeschichte des Artikels ist länger. Der erste Entwurf wurde von mir schon im Jahr 2019 geschrieben. In der Zwischenzeit habe ich immer wieder daran gearbeitet. Was mich letztendlich von der Veröffentlichung abgehalten hat, war das meiner Meinung nach noch nicht "fertige" Tooling der »Übersicht über Buildtools für Azure DevOps - Power Apps | Microsoft Docs«. Das ursprünglich verfügbare Tooling (Azure DevOps Extension) ist jetzt zwar immer noch verfügbar aber seit dem Sprung auf Version auf 0.3.7 als »DEPRECATED« gekennzeichnet worden. Schon seit dem Versionssprung von 0.1.16 zur Version 0.3.6 wurde das ursprüngliche Tooling grundlegend überarbeitet/verbessert.

In Version 0.1.16 mussten noch zum Einrichten der Verbindung die Zugangsdaten (Benutzername/Passwort) im Klartext hinterlegt werden. Seit der Version 0.3.6 kann diese Authentifizierung endlich mittels Service Principals abgebildet werden.

Authentifizierungsmethoden Abbildung: Authentifizierungsmethoden

Die alte (nicht zu empfehlende) Methode (gelb) steht weiter zur Verfügung. Somit ist der Übergang auf die neue Option (grün) nahtlos möglich, auch für Nutzer die bereits vorherige Versionen der BuildTools verwendet haben oder noch keine Service Principals eingerichtet haben. Beim Umstieg auf die oder Beginn mit der aktuellen Version der Build Tools sollte auf jeden Fall der Wechsel auf die Service Principals erfolgen.

Zwei Versionen sind im Visual Studio Marketplace verfügbar: 1. Power Platform Build Tools - Visual Studio Marketplace
2. (DEPRECATED) PowerApps BuildTools - Visual Studio Marketplace

Wie zuvor beschrieben ist diese Extension [2] mittlerweile als »DEPRECATED« gekennzeichnet, daher sollte nur noch [1] verwendet werden.
Die Werkzeuge, die aktuell für Azure DevOps verfügbar sind, sind grundlegend ein Wrapper um den SolutionPackager für D365 Customer Engagement (CRM).

Die finale Architektur, für die Integration von Azure DevOps und Power Plattform, wird auf abstrakter Ebene wie folgt aussehen.

Architektur Übersicht Abbildung: Architektur Übersicht

Microsoft selbst schlägt zwei verschiedene Vorgehensweisen für ALM in Verbindung mit der Power Plattform vor. [^1] In dieser Anleitung wird die erste Variante beschrieben, bei der nur der Quellcode versioniert wird, aber nicht die gepackten Solutions. Im Kontext klassischer Softwareentwicklung ist dies auch der normale Weg, weil sonst auch nur Quellcode und nicht kompilierte Binaries versioniert werden.

Read more


D2v3 pro Tag

Bei einem möglichen (Teil-)Umzug virtueller Maschinen aus dem eigenen Rechenzentrum (RZ) nach Azure, muss auf jeden Fall auch die Kostenseite betrachtet werden. Hierzu sollten im ersten Schritt die Kosten für den Betrieb der Maschinen im eigenen RZ (direkt [^direkt] und indirekt [^indirekt]) ermittelt werden, damit man diese dann den Kosten (direkt) in Azure gegenüberstellen kann. Bei dieser Gegenüberstellung kann man die in Azure anfallenden Kosten optimieren, in dem für den anfallenden Workload die jeweils passende virtuelle Maschine ausgewählt wird.

Read more


Weekly CW17

When you try to focus on one technology, such as Microsoft Azure, as I do, you often forget to think outside the box. Due to the current situation, Google has made all online training materials for the Google Cloud currently available for 30 days free of charge.

Google Cloud learning resources at no cost for 30 days | Google Cloud Blog

Really a good possibility to extend your own knowledge and to look beyond your own nose, if you have not had any contact with GCP before.

If you have had contact with databases as a developer, ask why things are the way they are and what needs to be considered to prevent problems. »Things I Wished More Developers Knew About Databases« is a longer article, but a really good one.

There are several ways to get started using Microsoft Graph. One possible good one is »A Lap around Microsoft Graph Toolkit in Day 1 - An Overview of Microsoft Graph Toolkit«.

Developers who are starting to get involved with Power Apps are often surprised that OOTB there are no popup dialogs in Power Apps. But not everyone needs to reinvent the wheel. Therefore you should use components that have already been developed by others. »Canvas Power App Modal Dialog (Popup) - Power Platform Community« shows one possible way.


Weekly CW16

Julie Lerman wrote a very detailed article about the Entity Framework Core 3.0 with »Entity Framework Core 3.0: A Foundation for the Future«. Very interesting to read why the Entity Framework team has laid the foundation for further innovations with this version.

Uncertain which asynchronous messaging solution in Azure is the right one for a specific requirement? Then you should read the documentation »Asynchronous messaging options in Azure« from Microsoft to get a good overview of all available options.

If you want to start running an ASP.NET Core application in a container then you will often have basic questions about how to start it. Greg Roe has published a two-part article that explains exactly that. * »Hosting and ASP.NET Core API in a Container Part 1 of 2 - Building the Container« * »Push to ASP.NET Core API Container to Azure Container Registry Part 2 of 2«


Weekly CW15

Personally the biggest announcement this week was that Microsoft announced that all of their events will be digital-only until July 2021. For me personally this could be an indicator on when we could expect things to become normal again after the current pandemic.

Are you interested in IoT and looking to get a »AZ-220: Azure #MSIoT Developer certification«? Then you can get start your preparation with »Set up an IoT Edge Gateway«.

If you ever wondered on how to create a solution using CQRS and Event Sourcing using C# then you definitely should have a look at »A Fast and Lightweight Solution for CQRS and Event Sourcing«. A very comprehensive article which explains this end-to-end.

Are you a SharePoint or Teams developer and ever asked yourself why you should care about Azure Functions? Then you should have a look at »Microsoft 365 & SharePoint PnP Weekly – Episode 74«.


When you start dealing with management groups in Azure, you may get to the point where you want to rename the "Root" management group. But even the simple query of the group will cause a problem.

Management Group query error

In order for modifications/queries to be possible for this management group, you must first elevate the access rights for your own account, even if you are already a directory administrator. A corresponding message is also displayed in the Azure Portal.

Azure Portal hint

The entire process is explained in the article "Elevate access to manage all Azure subscriptions and management Groups". Once you have altered your own access rights as described here or had them altered, you can make the appropriate changes or simply query the management group.

Management Group query success

{{< warning >}} After you have made the necessary changes with the elevated access rights, you should remove the access rights afterwards. {{< /warning >}}

Unfortunately, the "Tenant Root Group" cannot be queried by name in the Azure CLI resp. the name of this group is not meaningful. However, with elevated access rights you can query all management groups and thus find out the name of this particular group.

az account management-group list

List Management Group


Wenn man damit beginnt sich mit Management Groups in Azure zu beschäftigen, wird man unter Umständen an den Punkt gelangen an dem man die "Root" management group umbenennen möchte. Aber schon die einfache Abfrage der Gruppe wird zu einem Problem führen.

Management Group query error

Damit Modifikationen/Abfragen für diese Management Group möglich sind, muss man zunächst die Zugriffsrechte für die eigenen Account erhöhen, auch wenn man bereits Verzeichnis Administrator ist. Eine entsprechende Meldung wird auch im Azure Portal angezeigt.

Azure Portal hint

Das gesamte Vorgehen hierfür ist im Artikel »Erhöhen der Zugriffsrechte zum Verwalten aller Azure-Abonnements und Verwaltungsgruppen« beschrieben. Hat man die eigenen Zugriffsrechte wie hier beschrieben angepasst bzw. anpassen lassen, kann man die entsprechenden Änderungen vornehmen oder auch nur die Management Group abfragen.

Management Group query success

{{< warning >}} Nachdem man die notwendigen Änderungen mit den erhöhten Zugriffsrechten durchgeführt hat, sollte man die Zugriffsrechte im Nachgang wieder herabsetzen. {{< /warning >}}

Die "Tenant Root Group" lässt sich leider nicht über den Namen in der Azure CLI abfragen bzw. der Name dieser Gruppe ist nicht sprechend. Man kann allerdings mit erhöhten Zugriffsrechten sich alle Management Groups ausgeben lassen und so den Namen dieser speziellen Gruppe in Erfahrung bringen.

az account management-group list

List Management Group


Microsoft Teams

Today Microsoft announced that Office 365 will become Microsoft 365 and therefore announced new Microsoft 365 Personal and Family subscriptions which will be available on April 21st. But this announcement is bigger than just a simple rebranding of a product.

Apart from renaming Microsoft announced that two new Microsoft 365 experiences will roll out as a preview in the coming months - a new Microsoft Family Safety app and new features in Teams.

But Microsoft even announced more today. Microsoft Edge (Chromium based) will get new features. You can find all the details about this here.

In addition Microsoft unveiled a new editor - Microsoft Editor - which is an AI powered service available in 20 languages. All the details can be found here. This editor can be used on its own as standalone browser extension for Microsoft Edge and Google Chrome, or in Word and Outlook.com.

For PowerPoint Microsoft introduced an AI assistant which should assist you in becoming a better presenter by observing your presentation style which I think is a great new feature.

But this is not the end of new features. But instead of rephrasing all of the new announcements I recommend that you simply go the first source of this post and have a look at all the details of Microsoft's announcement.

Sources

  1. Introducing the new Microsoft 365 Personal and Family subscriptions
  2. Extending the power of Azure AI to Microsoft 365 users
  3. The top 10 reasons to switch to the new Microsoft Edge
  4. Introducing Microsoft Editor – Bring out your best writer wherever you write

Weekly CW12

This edition of my weekly is a little bit late not because of Corona but instead I simply forgot it because I'm on holiday (at home).

Year after year since I'm working in IT I keep on reading stories about how awesome VIM is. Nevertheless I never got into it mostly I guess because I have been a Windows user most of the time. But I'm still curious to get into it even more lately because of WSL2 which makes all Linux tooling available for Windows users. Interesting to read why and how others are using VIM: »Confession: I'm a Vim user«

The combination of Kubernetes and KEDA as an extension is really powerful. Even more impressive it is to see a demo like »KubeView & Keda Demo« by Ben Coleman.

I guess almost everyone knows WD-40. Therefore I think it is quite interesting to read »The History Of WD-40 Is Stranger Than You Think And No This Isn't Sponsored Content I Just Thought It Was Weird«.

Trying to get started with Power Platform? Then Tracy van der Schyff wrote something for you. »Power Platform: What How When & Why« is a really good high level introduction on the platform.

But most importantly for this weeks edition is: #StayTheFHome