Take a closer look at how the Power Platform can be used for professional developers’ most demanding business apps. Per Mikkelsen, GPM for Microsoft Power Platform, joins host Jeremy Chapman to share how you can build APIs as serverless functions, integrate Power Apps as part of your CI/CD pipelines, and publish Power Apps to Microsoft Teams for increased discoverability.
The Power Platform is designed for any app and any developer. We’ve set out to remove a lot of the pain in the software development process and speed things up that can take a lot of time. This makes it simple to build new apps or extend existing apps, fast.
Most of what you need to build your UI and to integrate your business logic and workflow processes can be done by the Power Platform. It sits on top of Dataverse to give you a powerful and managed data backend for any data, so that you have common data and logic stack that all your apps and services can use. On top of that, we give you all 400 data connectors, which seamlessly connect with the barrier systems and services that you may have in your organization. And if you need more custom logic on the backend, you also have all the coding environments available in Azure.
01:55 — Build complex apps
03:00 — T-Mobile example app
04:41 — How to build custom APIs
08:52 — How Power Apps works with existing DevOps or CI/CD processes
11:35 — How to make apps more discoverable
12:11 — Wrap up
Watch our show on Dataverse at https://aka.ms/DataverseMechanics
If you’re using Azure DevOps, check out https://aka.ms/PowerBuildTools
For more on governance capabilities available with the Power Platform, go to https://aka.ms/GovernPowerPlatform
Check out the new learning path we published at https://aka.ms/FusionDevPath
We are Microsoft’s official video series for IT. You can watch and share valuable content and demos of current and upcoming tech from the people who build it at Microsoft.
- Up next, if you’re a professional developer, we’re joined by Per Mikkelson to take a closer look at how the Power Platform can be used for your most demanding business apps, including how you can build APIs as serverless functions to bring in the functionality you need, integrate Power Apps as part of your CICD pipelines and publish Power Apps to Microsoft Teams for increased discoverability. So Per, welcome to Microsoft Mechanics.
- Thanks for having me.
- And it’s really great to have you on, especially as someone who’s spent a lot of their career as a professional developer and also running ISVs. Now the Power Platform by design has really taken off as a low-code development platform. And there are more than 4 million citizen developers worldwide using it. But if you’re someone who spends most of their time in an IDE or coding apps in other platforms or other stacks, how does the Power Platform then help you as a more experienced or seasoned developer?
- Well, the first thing that I’d say is, just because the Power Platform is so accessible it doesn’t make it any less of a development platform. So the Power Platform is really for any app and any developer. And what we’ve set out to do is remove a lot of the pain in the software development process and speed up the things that can take up a lot of time. Things like UI design or pulling in trusted data sources. This makes it simple to build new apps or extend existing apps fast. For example, there are some apps that just have a few screens. A good example of that is the health check app that we use for COVID screenings here at Microsoft. It has four screens. It’s connected to our key card and HR systems on the backend and it can help us retrace which individuals were on Microsoft campus in the event of an outbreak. Now it would have taken someone with low-code skills just a few hours to build and literally thousands of people globally use it every single day. And so there’s really no reason to build a code-intensive app to do the same thing.
- All right. And that’s really a no brainer in terms of building something like this with Power Apps. But if you’re used to building more complex apps with multiple data sources, maybe business logic underneath that and advanced controls, than are Power Apps up to the task?
- So, there are tons of examples of this today. 80% of what you need to do to build your UI, integrate your business logic and work for processes can be done by the Power Platform. It sits on top of Dataverse to give you a powerful and managed data backend for any data so that you have common data and logic stack that all your apps and services can use. On top of that we give you literally all 400 data connectors which seamlessly connect with the barrier systems and services that you may have in your organization. These take care of the first gen of the API to code, how to authenticate, how to pass data back and forth, so that you can focus on your app experience and business logic. And if you need more custom logic on the backend, you also have all the coding environments available in Azure including APIs, managed services like Azure Functions, Kubernetes, Cognitive Services, and much much more.
- So there’s tons that you can do here, but can you show us an example?
- I’d love to. So we’ve shown this app before when Charles Lamanna was on the show. It’s an app that T-Mobile built for campaign tracking that is used by 40,000 employees to track more than 3000 campaigns at T-Mobile. And they even used it to bring in Sprint operations to support their recent merger. It’s pulling in information about different projects. I can see past projects and I can also see active initiatives. And I can click through and see details for each initiative. You can manage the aspect of each as you can see here with the Device Promotional Proposal page, I’ve just opened. Here, we can see they’ve incorporated an approval workflow with project approvals. If I click in, I can see more information about the project and if I go to approval, there are different phases and steps for the approval process. And I can also choose and see the team that’s working on the project.
- That’s really great to see, but how did T-Mobile then incorporate the different data sources into their Orbit app?
- Well, the app is using Dataverse on the backend as well as our various prebuilt available connectors to additional data services. On top of that, T-Mobile has also built several APIs and custom connectors. And these are visible right here on the data tab inside of the Power App studio. We can see that they have extensively used Dataverse with a whole bunch of different entities and tables in use.
- Got it. And by the way, if you’re new to Dataverse, we just published a show that demonstrates how it works as a managed data backend that you can check out at aka.ms/DataverseMechanics. So, the APIs here are critical then in terms of pulling in the right data and expanding the app functionality, but how would you build a custom API? And then how would that get consumed by your Power App?
- Building custom APIs give you full freedom to code whatever you want and bring it into your Power App. So if we continue our T-Mobile example, they’re one of the largest 5G mobile network providers in the U.S, and they partner with various industries and customers to build 5G connected IOT solutions as well. So here’s an example imitation of a farm that has sensors for soil and temperature to maximize crop yield. They want to surface information from the IOT sensors into a Power App. The sensor data flows to a Azure Stack Edge device at the farm and travels via API management to our Power App. To build the API, they’re taking advantage of a new capability to publish Azure functions within Visual Studio so that we can do this all serverless. It also leverages the open API standard called Swagger. And from there, we’ll publish it to Azure API management and we’ll build an Azure API end connector, which will automatically be discoverable in their Power Apps studio. In our case, we’ve created a function in Visual Studio to execute the code needed to read data from the soil and temperature sensors. Here we are using Swagger, our open API extension to test out our function to make sure it’s reading our sensors before we publish the API to Azure. When we run it, we can see from the response it’s getting the readings. So now it’s working, we’re going to build the API. Next, we’re going to hit publish. That takes me through a wizard experience. First, we need to define the target. We’ll keep that as Azure. And next up we need to define the function type. We’ll keep Azure Function App Windows as a default here. Next we’ll give it some parameters. In this case, we’ll pick our resource group, our location, and finally our storage account. Let’s clean up the name a little bit as well and hit create, which places our function up in Azure stories. And now we need to define our API management parameters. In my case, I want to put it in this folder here. I’ll define my resource group, my API management service name, Contoso-Dev, I’ll hit create and hit next. Now, I need to choose my deployment type. Here, I could have used GitHub actions to tie my CISD process but instead I’ll hit publish to publish directly to Azure API Management. This will then kick off the process from Visual Studio to publish the API to API Management. And in fact, let’s hop into API Management. There’s our Contoso Farming Censor API, and I’ll test it again with a get operation here. In the test tab, I’ll hit send, like we saw before in Swagger, I can see it’s working. Now, we go back into the API, click on the ellipse and hit export. From here, you’ll see all the options we have to export to. And in our case here we’ll choose the one for Power Apps and Power Automate. We’ll select our environment to publish to ContosoFarms. So, now it should be available in my Power Platform environment. So let’s head over to Power App studio. I can see our connector. So now let’s bring this into our Power App. In the data tab, I’ll select add data, we’ll search for Contoso and you’ll see the API here. I’ll hop back into the tree view, I’ll type a function that’s going to collect our sensor data from our API. And with that done, I’ll build a blank vertical gallery, and next I can bind it to sensor data from my API. And make just one final edit to the format and define what I want to see the last reading, the name and the type. Now I can test it, I’ll hit refresh and there it is. So now the sensor data is shown in the app and we can add business logic with Power Automate to alert experts when certain thresholds are reached.
- Very cool. So, the fact that you’re able to actually wire all these disparate systems in, and it was all serverless, you did it in just a couple of minutes, was super impressive. But it’s going to save I think a lot of developers a lot of time and also a lot of pain I think. We’ve seen how Power Apps can be used to deliver business critical apps and how you can extend these apps with your own functionality using custom APIs like we just saw. And I know a lot of developers though, that are watching they might be wondering how Power Apps might work with their existing DevOps or CICD processes. What can we say there?
- Yeah, that’s right. And something brand new that we’re really excited about is the integration with GitHub actions and the Power Platform. So now you can set up CICD for your Power Platform development like you’re probably doing now for your other apps. This works well for UI changes and even changes you might be making to your apps data. I’ll show you one quick example but you can do some pretty advanced stuff like AI and mixed reality too. So I’m here in our Canvas app. We actually want to add a data column for say, Access Time. We want the data type to be date and time and we’ll make it required and add a few advanced options and click done. Then I’ll save the table and I’ll hop over to GitHub and I want to make sure that we get the updates into a new branch. So I’m going to use a manual workflow to export-and-branch-solution. Of course, you could run this automatically, but I want to show what’s happening under the covers here. So I’ll run the workflow. We can click into it here to see what’s happening. I’ll click into export from dev. And you’ll see all the actions that were triggered. These are all the individual steps that are taken to create a new branch. Now, with the new branch, let’s create a pull request, I’ll give a name and create it. Now we can look at the change logs and apart from a bit of metadata, the only change you’ll see is the new data field for access time that we just added. Looks good, so now I’ll merge the pull request and confirm. Now we can create a new release with the changes we just added. So I’ll go ahead and do that. I’ll give it a version number, a title, a new release and I’ll go ahead and publish it. And that release will trigger a release solution to prod workflow. We can go into that and watch the progress. In our case, this starts with convert-to-managed, then goes to release-to-staging as part of the publishing process. And by the way if you’re using Azure DevOps that’s an extension we published a few months back as well. And you can check that out at aka.ms/PowerBuildTools to learn more.
- So now the Power Platform and Power Apps can also follow the same dev process as your other apps. And we saw earlier with the T-Mobile app you can even build apps that are either partially or no-code by design.
- And that’s really the whole point. We give you power where and when you need it. And importantly, Power Apps give your citizen developers who may be domain experts, the ability design the UI and app experience that they want. So that as a professional developer you don’t have to now spend as much time on the app’s front-end. These apps have the potential to be far more adopted because they’ve had direct business user input.
- How would we get this released then into the hands of our users and make it more discoverable?
- Something else brand new is that we can also make sure that you apps get seen and are more discoverable. So here you can see our Orbit app and I can in one click integrate it with Microsoft Teams. You can target it to your entire organization or specific individuals. And under the covers, it’s creating a JSON manifest that makes this possible. Then it gets added to your Microsoft Teams apps so that your users can easily find them. Or if you’re a Teams admin, you can easily scope apps to the right people and pin them to the left rail.
- Got it. And one thing that we didn’t touch on was all the governance capabilities that are available to you with the Power Platform. Things like data loss prevention through to visibility into the apps that you created across all your different environments, including the types of the connectors that people are using, like the ones that we built today, and the ability also to troubleshoot apps through the integration with application insights in Azure. So if you’re interested in any of these topics, check out our recent show with Charles Lamanna at aka.ms/GovernPowerPlatform. But Per as a coder, what’s the best way then to get started with the Power Platform?
- Well, if you’re a VS code user we’ve just made an extension for VS code available for the Power Platform that you can download from the VS code marketplace. Also, we recently published a new learning path that you can check out at aka.ms/FusionDevPath.
- Great stuff. Thanks so much Per for coming on the show today and also giving us a great update and overview of Power Platform’s capabilities for pro developers. Of course, we’re going to keep tracking all the major updates for the Power Platform on Mechanics. So be sure to subscribe to our channel if you haven’t yet. And thanks so much for watching.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.