Power Platform – Architecting 101
The Power Platform is on fire! Lot’s of partners, developers and citizens are all creating all kinds of things at a rapid pace, it all seems so easy. Unfortunately many of them will get down the road and realize they should have taken a fork a few miles back. Let’s see if we can map out the right path from the jump.
Whatcha gonna do?
Before thinking about where to start, you should have clear idea of where you want to end up. Depending on the problem you are trying to solve, some choices will become obvious. If you are just looking to be notified when a new file is uploaded to a SharePoint folder? Microsoft Flow is probably all you need. Not much “Architecting” required. For this post, I want to talk about bigger things you may want to do, like building a robust sales application for your team for example, or any other function for that matter. Sure, for my Sales example, the Dynamics 365 Enterprise Sales application is one option to consider, but again, here I will go for the Platform approach.
Canvas apps are great for point solutions, Power BI doesn’t do anything without data and Microsoft Flow is great for connecting existing things, but for most customers we recommend starting with a model-driven app on CDS. It’s not the app that is the foundation, it’s the Common Data Service (CDS). CDS is the heart of all things to come, and allows for everything you start to do now, to have a full future later.
The model-driven app you will be provided with by default is fairly scant. It does include Accounts and Contacts as a common starting point for most business applications, although for a B2C scenario you may not even need Accounts. It is a nice “rolodex” at this point, but way more powerful in it’s potential. From here you can “model” your data and processes that are required to solve your initial needs. To shorten this process significantly you may want to look at our RapidStart Accelerator Applications on AppSource. Regardless of your starting point, you will likely need some further development by yourself or a Microsoft Partner who specializes in Business Applications. The good news is, the effort required is significantly less than it has ever been before.
As you work on your model-driven CDS environment, you may see a need for more than one use case. Maybe your sales department needs something, but you also want something for the warehouse, or whatever. By the way I am just using “Sales” as an easy-to-grasp concept, but the app(s) could be for any business need. You have a decision to make with potential monetary consequences. Do you build two separate apps, or one and control access with security roles?
Microsoft is launching a per/app/user license that is only $10, and it would be awesome to utilize just that. If your users are pretty segregated, and few or none of them would have need to access both apps, you are fine. But if many of them need to access both, it will cost $10 X 2 apps. If many have to access 3 apps, it would be $30 for them. This maxes out at $40 for that 4th app as you would buy the unlimited app licenses at that point for $40/user. Still a bargain compared to past costs and other platforms.
Architecting for License Cost
As I said you could consider building a single app for all the different users needs and controlling who sees what, with security roles. It is more complex way to approach it, and could get unwieldy if you have many unrelated use cases, so you would have to weigh the costs of doing it that way vs. effort to make it that way. Again, this would only apply to users who wear multiple hats.
Let’s say you now have a nice model-driven business application. Notice I did not say “basic”, that’s because it can actually be as complex and advanced as you need it to be over time. Are you done? Not even close. Now is when some of those other tools come into play on top of the foundation you have built. You have several options to go to next, one that is already covered in your $10 is a Canvas App, but this canvas app will take advantage of the CDS database you already built your model-driven app on, so all of that data is available. Also, Microsoft Flow, Power BI and Portals can be bolted on as well. So let’s take a look at what these can add to your ultimate application to change the world, or at least your organization’s world.
Canvas Apps are Task-Specific. The name Canvas comes from the design surface that you build them on, it looks a lot like PowerPoint. It is primarily a mobile application for those types of tasks that would be logically done on a mobile device. For example, adding a barcode scanner and tracking inventory in a warehouse, or a Check-in/Check-out app for corporate laptops. If this does not relate to your CDS environment, you would probably just make that Canvas App freestanding, but I’m keeping in the lanes of business applications here. Remember that the Model-Driven app you already built has full mobile capabilities also, so you will want to explore that before you complicate things with yet another app to maintain, but for the right scenarios, Canvas is awesome.
Let’s say your organization has some other app they are using for other things. Let’s also say that it could be advantageous to have your new app talk to that app. Maybe it would be nice to pass some data back and forth when certain things happen. Microsoft Flow is your bridge to over 250 other apps and growing. Microsoft Flow sits between your new model-driven app and any of those 250+, and can pass things back and forth based on triggers or conditions. It sounds more complicated than it is. Trust me, it’s not. Not long ago, to accomplish this would have required a significant development project, all gone now.
Power BI is Microsoft’s industry leading Business Intelligence tool. Of course you have charts and dashboards in your model-driven app, but if you really need to go deep, or mash several sources up, Power BI is the tool for that. Of course it’s primary source in your case is… you guessed it… your CDS. You can create advanced visualizations in Power BI to share with anyone, and you can even embed them into your existing app’s dashboard. Is it easy? Well, it’s not as easy as Flow, but you don’t have to be a rocket scientist either. Another option to consider is a new offering called AI Builder. This is more of a “citizen” level tool-set that is actually quite easy to use. Not as powerful as Power BI, but it can handle a lot of AI needs. Again, sitting on your CDS.
Things are going quite well, and you realize there would be some efficiencies gained from having customers, vendors or partners do somethings themselves. You don’t really a want to give them access to your application, but some highly filtered level of access would be real handy. This is one example where Portals come into play. A web based representation of your business application, tailored for your audience, so they can interact with you touch-free. The scenarios are limitless, but take for example a case management solution. A place where your customers could create and review cases you are working on with them in your business application. A way they can be engaged with what is going on 24/7, without having to call you for an update. All running on top of the same CDS you started with.
Let’s say you are in one of the industries that Microsoft has built accelerators for, and there are several and more to come. But, for example, let’s say you are in the Banking business. Your path just got shorter. Microsoft offers pre-built data models at no cost to help you get to where you need to easier. Our RapidStartCRM for Banking Accelerator is actually built on top of Microsoft’s Banking Accelerator giving you…umm… double acceleration! Between these two, you may already be done before you started!
There are other ways to approach it, but this I my recommended path that eliminates any backing up and restarting later. Regardless of where you want to get to, Microsoft has made it exponentially easier today. Start with a model-driven app on CDS, and the sky is the limit. If you want to explore how you can move a spreadsheet based process for example, onto a platform, listen to my recent podcast with a large customer who just did exactly that.