I recently posted a slide to LinkedIn without much else than a couple of hashtags. The slide was from a presentation I was preparing for a customer and visualized a conceptual architecture for building apps on the Power Platform Common Data Service (CDS). The response from fellow LinkedIn users was overwhelming. Many asked for copies of the presentation.
However, the actual message of the presentation was not so much the slides but rather the 10+ demos that accompanied the slides.
This is why i decided to write a series of blog post discussing how CDS and Power Platform can be your Development Platform as a Service (DPaaS).
This is the first post in the series and I will use this to put some words on the different components of the mentioned conceptual architecture slide. In future posts I will address the demo scenarios of the presentation.
Read on to see how you can use Power Platform and CDS for Apps as your Development Platform
On the very left is the use access layer. In this, you can imagine clients or apps on a variety of devices developed using
the Xamarin framework or any other language on any platform. These are outside of the scope of this blog post as they will merely be consuming the services exposed from our DPaaS.
Second from the left is our custom API layer. This layer service the clients and apps and act as a proxy in front of our DPaaS. Illustrated in the slide us a Kubernetes cluster with a set of micro service each with their own purpose to fulfill. These services can be written in .NET and use the Power Platform SDK and its .NET assemblies for connecting and executing operations in CDS. Alternative to .NET assemblies is the Web API that can be used from any programming language that can make HTTP requests.
Whether you use .NET SDK or Web API you will be able to perform the following operations in CDS
If you find yourself doing mostly pass-through request in you API you should consider implementing API Management Gateway in front of CDS instead of writing code. This will allow to use all the features of API Management including Payload transformations, API revision, API policies (request limits and throttling), Product configuration and Publisher and Developer Portals.
Putting API Management Gateway in front of CDS allows you to expose CDS functionality in a way that maps to the frontend developers skill sets so that devs with no CDS or Power Platform experience can consume your APIs without having to understand how CDS works.
The central part of the architecture is the Common Data Service, CDS, of the Power Platform. This is where you design you data model and implement custom actions that you will be consuming from you API layer.
This is also where you can start integrating other features and services such as Model-Driven Power Apps for backend / operational users to manage data and process relating to you app scope.
You will also benefit from all of the build in capabilities such as security roles, audit trails, business process flows and many other.
Finally this is also where you will be able to implement your custom code as plugins in the execution pipeline so that your code will execute at defined standard and custom execution messages. This allows you to build event driven features directly into the core of the CDS so that you run custom code to support your requirements of complex business logic or integrations.
Common Data Service has build in integration to Office 365. This supports features such as security management, user presence, native excel import and export, word templates, email communication and tracking, audit trails in Security & Compliance Center.
CDS integrates with Microsoft Teams so you can collaborate on data in CDS by adding forms to tabs in your channels.
As CDS is part of the Power Platform it comes as no suprise that you can use all the features and capabilities of the Power Platform with your apps build on CDS.
Tailor and build Power Apps Canvas apps to work with the data and processes of your application on any devices.
Use Power Automate to automate processes relating to your app and users such as sending confirmation emails or integrating with any of the systems and platforms supported by the 300+ official connectors.
Create reusable and managed custom connectors for your legacy application to surface these to the platform and you app.
Enable chat bots via Virtual Agent and integrate them with your app to allow users to query data and execute operations in a conversational interface. This gives you reach into all the supported channels such as Microsoft Teams, Facebook and even Direct Line Speech to enable voice-in, voice-out scenarios where users can talk to your application.
Infuse AI into your app buy utilizing the predefined models of AI builder such as prediction, object recognition and text classification.
And, of course, add insights to your app by using the features of Power BI to create interactive dashboards and reports on your data.
CDS comes with build in integration to Azure Service Bus and Event Hubs via the Service Endpoint plugin. As mentioned above, plugins are executed as part of the execution pipeline. By using the Service Endpoint plugin you can send execution context including payload (pre- and post-images of the record(s)) to Azure Service Bus or Event Hubs to stream data to other systems.
You can also implement the WebHook plugin in order to send the execution context to a REST Endpoint such as Azure Logic Apps or Azure Function App.
You can of course also use CDS connectors from Azure Logic App to integrate with CDS and do all the standard data operations you will require. The same goes for Azure Function Apps that can utilize both .NET SDK and Web API to work with data in CDS.
CDS also has build in integration to Azure Data Lake that you can use to configure export schemas, schedule and recurrence for your export.
This concludes the first part of the blog series on Power Platform CDS for Apps as a Development Platform as a Service - DPaaS
You might also find the following blog post interesting: https://www.powerappsguy.com/blog/Development-Platform-as-a-Service-Build-your-next-app-on-the-PowerPlatform/
It highlights some of the features and functionalities that you get with the Power Platform and CDS.