40,56 €
This book enables you to design tailor-made enterprise solutions using the latest models, methodologies, and patterns for your projects. It harnesses the capabilities of the Power Platform, Azure, and Dynamics 365 to create robust solutions. In this new edition, you can work with the latest technologies such as Dataverse and Power Portals to take your solutions to the next level.
Purchase of the print or Kindle book includes a free eBook in PDF format.
Expert insights
"This book provides a solid understanding of how Microsoft 365 and Power Platform work together and offers detailed information on the architecture. It blends a theoretical approach with real-world scenarios to bring the theories to life and demonstrates how architecture operates in practice."
—Mary Angiela Cerbolles, Dual Microsoft MVP, productivity analyst
"What I really like about this book is that it is well structured and easy to follow, using practical examples to illustrate key concepts throughout. I highly recommend it!"
—Thomas Rice, 16x Microsoft Certified Solutions Architect
Key Features
About the book
This book is for enterprise architects and decision makers who design solutions for complex business requirements. It teaches you how to use architectural best practices and methodologies to optimize an enterprise-grade solution.
You'll gain an understanding of the tools available in the Power Platform suite and how to integrate them seamlessly with various Microsoft 365 and Azure components to create a tailor-made solution. Progressing through the book, you'll discover how to address application lifecycle management, security, extensibility, and data migration. This includes Power BI, which often requires a separate approach to the rest of the Power Platform.
This book provides you with practical, essential, and concise information. It follows a complete, end-to-end example in every chapter, with diagrams that illustrate the intricacies of Microsoft cloud structure. It has been created by an experienced enterprise architect who actively creates solutions using Microsoft technology.
By the end of this book, you'll have the strategic perspective of an enterprise architect to make accurate architectural decisions for your complex Power Platform projects.
Who this book is for
If you're an enterprise architect or technical decision maker looking to design complex solutions using Microsoft Power Platform, this is the book for you. Familiarity with Microsoft Power Platform and Azure services will be required to follow along.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 674
Veröffentlichungsjahr: 2023
Microsoft Power Platform Enterprise Architecture
Second Edition
Design tailor-made solutions for architects and decision makers to meet complex business requirements
Robert Rybaric
BIRMINGHAM—MUMBAI
Microsoft Power Platform Enterprise Architecture
Second Edition
Copyright © 2023 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Senior Publishing Product Manager: Ashitosh Gupta
Acquisition Editor – Peer Reviews: Saby Dsilva
Project Editor: Rianna Rodrigues
Content Development Editor: Matthew Davies
Copy Editor: Safis Editing
Technical Editor: Aniket Shetty
Proofreader: Safis Editing
Indexer: Rekha Nair
Presentation Designer: Ganesh Bhadwalkar
Developer Relations Marketing Executive: Rohan Dobhal
First published: September 2020
Second edition: January 2023
Production reference: 1270123
Published by Packt Publishing Ltd.
Livery Place 35
Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-80461-263-7
www.packt.com
Robert Rybaric is a Microsoft Power Platform and Microsoft Dynamics 365 architect, consultant, and trainer. He is a Microsoft Certified Trainer (MCT) and holds several certifications for Microsoft Dynamics 365, Microsoft 365, and Microsoft Azure.
For 10 years, Robert has worked for the Microsoft Corporation on numerous Microsoft Dynamics 365 presales and project implementation activities for enterprise customers across Europe, both as an architect and consultant. He is now a freelance architect, implementing Microsoft Dynamics 365 solutions for global customers and leading many Microsoft Power Platform training sessions.
In the past, Robert has written two books about Power Platform, including Microsoft Power Platform Enterprise Architecture (first edition) and Microsoft Power Platform Up and Running, published with Packt Publishing and BPB Publications respectively.
Danilo Capuano is a Technical Delivery Manager and Office Manager at Agic Technology. He is a Microsoft Certified Trainer (MCT) and MVP. Danilo specializes in solution architecture for Power Platform, Dynamics 365, and Azure, as well as being familiar with DevOps engineering. He is active in the Microsoft community in Italy, being a group leader for Power Apps User Group Italia and Power Pages User Group Italia. He is active on social media and can be found through his blog (danilocapuano.blog), Twitter (@capuanodanilo), and LinkedIn (/capuanodanilo).
He has previously worked as a technical reviewer on several other titles, including Fundamentals of CRM with Dynamics 365 and Power Platform, Mastering Microsoft Dynamics NAV 2016, Microsoft Dynamics NAV 7 Programming Cookbook, Microsoft Dynamics NAV 2013 Application Design, Learn Microsoft PowerApps, and Programming Microsoft Dynamics NAV 2015.
EY Kalman started as a Dynamics 365 Support Analyst over 15 years ago and is now an experienced Power Platform and Dynamics 365 Solution Architect and Microsoft MVP. He has run development teams over large-scale projects across multiple sectors, translating business ideas into technical requirements and delivering projects. He has previously worked as a technical reviewer on another title, Microsoft Power Platform Functional Consultant: PL-200 Exam Guide.
EY currently enjoys being a technical evangelist for adopting business application technologies, enabling and empowering proper digital transformation for enterprise users across the globe. He engages regularly with the Microsoft Business Applications community under his handle of ‘The CRM Ninja’. EY blogs regularly about technical ideas, runs a weekly show called ‘The Oops Factor’, and organizes and presents at events. He also enjoys playing with gadgets, traveling, and going out for rides on his Ninja motorbike.
Preface
Who this book is for
What this book covers
To get the most out of this book
Get in touch
Section I: The Basics
Microsoft Power Platform and Microsoft Dynamics 365 Overview
Introducing Contoso Inc.
Introducing Microsoft Power Platform
Introducing the Common Data Model and Microsoft Dataverse
Introducing the Common Data Model
Introducing Microsoft Dataverse
Introducing model-driven apps
Introducing canvas apps
Introducing Power Automate
Introducing Power Virtual Agents
Introducing Power BI
Introducing On-Premises Data Gateway
Introducing AI Builder
Introducing Power Pages
Introducing Microsoft Dynamics 365 CRM applications
Microsoft Dynamics 365 Sales
Microsoft Dynamics 365 Marketing
Microsoft Dynamics 365 Customer Service
Microsoft Dynamics 365 Field Service
Microsoft Dynamics 365 Project Operations
Introducing Microsoft Dynamics 365 ERP applications
Microsoft Dynamics 365 Finance
Microsoft Dynamics 365 Supply Chain Management
Microsoft Dynamics 365 Commerce
Microsoft Dynamics 365 Human Resources
Microsoft Dynamics 365 Business Central
Introducing Microsoft Dynamics 365 AI, MR, and other modules
Microsoft Dynamics 365 Customer Insights
Microsoft Dynamics 365 Sales Insights
Microsoft Dynamics 365 Connected Spaces
Microsoft Dynamics 365 Fraud Protection
Microsoft Dynamics 365 Remote Assist
Microsoft Dynamics 365 Guides
Microsoft Dynamics 365 Product Visualize
Microsoft Dynamics 365 Unified Service Desk
Microsoft Power Platform licensing overview
Contoso Inc. Power Platform commitment
Summary
Microsoft 365 and Microsoft Azure Overview
Contoso Inc. cloud maturity
Introducing Microsoft 365
Introducing Microsoft Office 365
Microsoft Exchange
Microsoft SharePoint
Microsoft OneDrive
Microsoft OneNote
Microsoft Teams
Microsoft Outlook
Microsoft Word
Microsoft Excel
Overviewing Microsoft Enterprise Mobility + Security
Microsoft Intune
Microsoft Cloud App Security
System Center Configuration Manager
Contoso Inc. using Microsoft 365
Introducing Microsoft Azure
Introducing Azure Active Directory
Introducing Azure Service Bus
Introducing Azure Event Hubs
Introducing Azure Logic Apps
Introducing Azure API Management
Introducing Azure Functions
Introducing Azure SQL
Introducing Azure Cosmos DB
Introducing Azure Blob Storage
Introducing Azure Synapse Analytics
Introducing Azure IoT Hub and Azure IoT Central
Introducing Azure Key Vault
Introducing Azure DevOps
Introducing Azure Monitor
Contoso Inc. using Microsoft Azure
Microsoft 365 and Microsoft Azure licensing overview
Microsoft 365 licensing
Microsoft Azure licensing
Summary
Section II: The Architecture
Understanding the Microsoft Power Platform Architecture
Contoso Inc. starts architecting their planned Power Platform solution
Understanding the Power Platform architecture
Learning about the Microsoft cloud infrastructure
Understanding the customer cloud structure
User management
License management
Group management
App registration
Office 365 Activity Logging
Learning about Power Platform technology
Understanding Power Platform environments
Microsoft Dataverse
Microsoft Dataverse for Teams
Capacity restrictions
Power Platform data connectors
Data Loss Prevention policies
On-Premises Data Gateway
Managed environments
Learning about Power BI’s structure
Understanding the Power Platform and Dynamics 365 clients
Learning about desktop clients
Browser client
Dynamics 365 App for Outlook
Unified Service Desk
Omnichannel for Dynamics 365 Customer Service
Robotic process automation with Power Automate Desktop flows
Understanding mobile clients
Learning about Power Platform administration and monitoring
Understanding Power Platform administration centers
Microsoft Azure portal
Microsoft 365 Admin Center
Power Platform Admin Center
Power BI admin portal
Understanding PowerShell administration and monitoring
Microsoft 365 administration
Power Platform administration
Power BI administration
PowerShell monitoring
Learning about API administration
Microsoft 365 administration
Power Platform administration
Power BI administration
Administration and monitoring using Power Automate
Administration using Azure DevOps
Learning about platform auditing
Office 365 Activity Logging
Dataverse auditing
Understanding application monitoring
Presenting architectural best practices
Introducing single tenants or multiple tenants
Development and testing environments
Unsupported integration topology
Understanding environment strategies
Default environment
Developer environment
Shared test and production environment
Dedicated environment
Complex testing
Multiple release strategy
Product upgrades
Other environment types
Environment regions
Administration and monitoring
Contoso Inc. Power Platform architecture
Tenant structure
Power Platform environments
Power Platform clients
User groups and licensing
Summary
Power Platform Customization and Development Tools and Techniques
Contoso Inc. empowering the project team
The citizen developer vs. IT pro developer paradigm
Introducing the citizen developer
The IT pro developer
Distinguishing between the citizen developer and the IT pro developer
Presenting configuration and customization tools
Microsoft Dataverse and model-driven app tools
Power Apps Maker Portal
Model-driven app designer
Introducing XrmToolBox
Power Apps Studio
Power Pages Studio
Power Automate Maker Portal
Power Virtual Agents designer
AI Builder
Dataflows designer
Power BI designer tools
Power BI Desktop
Power BI Builder
Power BI service
Microsoft AppSource
ISV Studio
Presenting custom development tools
Visual Studio
Visual Studio Code
Power Apps Command-Line Interface (CLI)
Power Platform extensions for Visual Studio
NuGet developer tools and assemblies
The code generation tool
The plug-in registration tool
XrmToolBox
Postman
CRMRestBuilder
Testing tools
Testing the user interface
Testing backend components
Using network traffic analyzers
Presenting application lifecycle management tools
NuGet developer tools and assemblies
The configuration migration tool
The package deployer tool
The solution packager tool
Azure DevOps
Contoso Inc. project team workplace setup
Enabling the core project team
Enabling citizen developers
Summary
Application Lifecycle Management
Contoso Inc. implementing application lifecycle management
Understanding application lifecycle management
Environment complexity
Power Platform solution complexity
ALM for the Power Platform
Introducing solutions management
Overview of solutions
Environment variables
Solution properties
Solution types
Unmanaged solution
Managed solution
Default solution
Common Data Services Default Solution
Managed properties
Forms, views, charts, and dashboards properties
Columns properties
Tables properties
Dependencies and solution segmentation
Solution layering
Layering behavior
Solution dependencies
Solution segmentation
Patching and updating solutions
Solution patch
Solution updates
Microsoft updates
Major Power Platform updates
First-party applications updates
Power Platform hotfixes
Introducing Azure DevOps for the Power Platform
Overview of Power Platform Build Tools
Helper and quality check tasks
Solution tasks
Environment tasks
Azure DevOps with Power Platform Build Tools
Committing a solution to the source control
Distributing solutions between development environments
Distributing solutions out of development
Pipeline versus Release
Introducing GitHub for the Power Platform
Application lifecycle management for Power BI
Environments in Power BI
Power BI components
Power BI ALM approach
Power BI deployment pipelines
Application lifecycle management for other solution components
Application lifecycle management best practices
Solution best practices
General practices
Unmanaged versus managed
Structuring solutions
Using segmentation
Using source control
Solution publishers’ best practices
Power BI best practices
Contoso Inc. ALM strategy
Establishing Azure DevOps
Using Power Platform solutions
Using Power BI ALM
Other ALM decisions
Summary
Section III: The Implementation
Implementation Approach and Methodologies
Contoso Inc. preparing the implementation project
Getting an overview of the implementation approach
Understanding customer enterprise architecture and environment
Data residency requirements
Authentication providers
Internet restrictions
Data protection requirements
Learning about project implementation methodologies and tools
Understanding programs and projects
Understanding project implementation methodologies
The waterfall model
The agile model
The iterative model
The combined model
Making a project effort estimation
Business requirements
Custom development
Infrastructure requirements
Integration
Data migration
Other efforts
Project management tools
Microsoft Project
Azure DevOps
Effort estimators
Creating project documentation
The project plan
The requirements document
The solution architecture document
The solution/technical design document
Other documents
Learning about project setup
Project types
Internal project
External project
Project roles and responsibilities
Central roles and responsibilities
Partner roles and responsibilities
Customer roles and responsibilities
Understanding project phases
The preparation phase
Identifying demand
Studying feasibility
Specifying the budget
Seeking approval
Issuing a Request for Information (RFI)
Issuing an RFP/RFQ/RFT
Discovery
Negotiations
Contract
The project execution phase
Project preparation
Project initiation
Initial analysis
Iterative execution
Final testing
Solution deployment
The operation phase
Support transition
Operation
Decommission
Contoso Inc. starting the implementation project
Bidding process
Project setup and methodology
Project plan, tools, and documentation
Project setup
Summary
Microsoft Power Platform Security
Contoso Inc. designing Power Platform solution security
Getting an overview of IT security
Authentication versus authorization
Microsoft cloud authentication and authorization fundamentals
Provisioning user identity
Assigning licenses
Granting authorization
Understanding authentication
Identity and authentication solutions for internal users
Cloud identity approach
Password hash synchronization approach
Pass-through authentication approach
Federation approach
Conclusion
Authentication features for internal users
Conditional access
ADFS claim rules
Multi-factor authentication
Single sign-on options
Cross-tenant inbound and outbound restrictions
Service authentication for internal users
Dataverse authentication
Power BI authentication
Authentication governance for internal users
Dataverse user accounts provisioning governance
Dataverse session governance
Azure Active Directory guest users
Authenticating external users
Understanding authorization
Authorization in Power Platform
Authorization in Dataverse and model-driven apps
Fundamentals of Dataverse authorization
Setting up basic authorization
Standard role-based security
Modernized Business Units
Group teams
Authorizing model-driven app access
Hierarchy security
Record sharing
Access teams
Column-level security
User interface security
Authorization in canvas apps
Authorization of apps
Authorization of connections
Authorization in Power Automate
Authorization of background flows
Authorization of interactive flows
Authorization of desktop flows
Authorization in Power BI
Authorization in Power Pages
Understanding compliance, privacy, and data protection
Presenting security best practices
Dataverse security roles
Modifying security roles
Layering of security roles
Dataverse content-based security
Using business units
Using table form switching
Using client-side scripting or business rules
Using server-side event handlers
Integrate security across solution components
Dataverse-SharePoint integrated security
Dataverse-Power BI integrated security
Using identity and access management automation
Establishing the Power Platform mature security model
Contoso Inc. security architecture
Active Directory integration
Data Loss Prevention policies
Dataverse
Other security decisions
Summary
Microsoft Power Platform Extensibility
Contoso Inc. – designing the Power Platform solution
Getting an overview of extensibility
Presenting Dataverse and model-driven app extensibility
Dataverse standard customization
Dataverse data modeling
Dataverse user interface design
Designing model-driven applications
Designing mobile apps
Dataverse automation
Dataverse business rules
Classic Dataverse workflows
Dataverse custom actions
Dataverse custom APIs
Dataverse business process flows
Dataverse client-side extensibility
Standard custom controls
Power Apps Component Framework
Web resources
Embedding canvas apps
Dataverse server-side extensibility
Dataverse API interface types
Plug-in event handlers
Custom workflow actions
Azure Service Bus integration
Azure Event Hub integration
Webhook integration
Building external applications
Unified Service Desk extensibility
Presenting Power Pages extensibility
Presenting Power Automate flows
Cloud flows
Desktop flows
Process advisor
Presenting canvas apps and Power Automate extensibility
Canvas apps and Power Automate customization
Power Fx
Building custom connectors
Presenting Power BI extensibility
Power Platform extensibility best practices
Dataverse client-side interface extensibility
Dataverse server-side extensibility
Dataverse API selection
Extensibility and automation options
Performance impact
Contoso Inc. Power Platform solution design
Model-driven apps
Automations
Client-side extensibility
Server-side extensibility and integrations
Other design decisions
Summary
Further reading
Microsoft Power Platform Integration
Contoso Inc. designing the Power Platform integration
Getting an overview of Power Platform integration
Integrating with Microsoft 365 and Microsoft Azure
Introducing implicit Dynamics 365 integrations
Integrations with Microsoft 365 services
Integrating with Exchange
Integrating with SharePoint
Integrating with OneDrive
Integrating with Microsoft Teams
Integrating with Microsoft OneNote
Integrating with Skype/Skype for Business
Integrations with Microsoft Azure services
Integrating with Azure Blob Storage
Integrating with Azure Data Lake/Synapse Analytics
Advanced integration scenarios with the Azure Synapse Link for Dataverse
Integrating with Azure Logic Apps
Integrating with Azure API Management
Frontend integration patterns and solution approaches
Embedding third-party content into Dataverse
Embedding Dataverse content into third-party containers
Event-driven and on-demand frontend integration
Using Unified Service Desk
Backend integration patterns and solution approaches
The remote procedure call pattern
The relay pattern
The publish-subscribe pattern
The request-callback pattern
Data integration
Virtual tables
Standard Azure data integrations
Integration between Dynamics 365 CRM and ERP
Custom backend integrations
Other Power Platform integrations
Power Virtual Agent and AI Builder
Power BI
Learning about Power Platform integration best practices
Frontend integration
Backend integration
Contoso Inc. Power Platform integration design
Integration with Microsoft 365 and Microsoft Azure
Frontend integration
Backend integration
Summary
Microsoft Power Platform Data Migration
Contoso Inc. planning the data migration
Getting an overview of data migration
Migration as part of integration
Migrating consolidated data
Advanced migration
Understanding the data migration tools and techniques
Entering data manually
Using Excel files
Using the Dataverse data import wizard
The Configuration Migration Tool
Dataflows with Power Query
SQL Server Integration Services
Extracting data
Transforming data
Loading data
Azure Data Factory
Data migration using code
Data migration challenges and best practices
Planning and effort estimation
Scoping the migration
Understanding the impact on storage
Compliance considerations
Understanding access issues
Coping with a lack of knowledge
Dealing with a lack of documentation
Poor-quality source data
Understanding encoding issues
Understanding record ownership issues
Understanding mapping issues
Understanding record relationship issues
Understanding business process flow issues
Understanding record status issues
Setting certain system fields
Migrating documents
Understanding the importance of the order of migration steps
Understanding migration automation
Understanding migration performance
Resolving API limits
Time for migration execution
Verifying the data by the customer
Contoso Inc. data migration design
Summary
Appendix
Best Practices for Solution Architecture
Architectural best practices
When to use multiple tenants
Separate development and testing environments
Unsupported integration topology
Environment strategies for an enterprise-scale project
The shared test and production environment strategy
The dedicated environments strategy
The complex testing strategy
The multiple release strategy
The product upgrades strategy
Environment regions
Administration and monitoring
Application lifecycle management best practices
Create a specific solution package
When to use unmanaged or managed solutions
When to use a single solution
When to use multiple solutions
Component sharing and component libraries
Using segmentation
Using source control
Use one single publisher for all solutions within a project
Power BI best practices
Security best practices
Dataverse security roles
Create new custom roles instead of modifying default roles
Layer security roles instead of configuring individual roles
Dataverse content-based security
Using a business unit hierarchy
Using table form switching
Using server-side event handlers
Integrate security across solution components
Dataverse-SharePoint integrated security
Dataverse-Power BI integrated security
How to use identity and access management automation
Establishing a Power Platform mature security model
Extensibility best practices
Optimizing the performance of client-side extensibility
Dataverse server-side extensibility
When to use which Dataverse API
Recapping extensibility and automation options
Avoid synchronous workflows and plug-ins
Integration best practices
Frontend integration
Backend integration
Data migration best practices
Don’t underestimate the project duration
Determine the scope of the migration
Understand the impact on storage
Compliance considerations
Start getting physical access to all required systems and solutions early
Expect a lack of knowledge about legacy IT systems
Include contractual responsibility for the quality of source data
Legacy IT systems might have encoding issues
Attempt to resolve record ownership issues in the data transformation phase
Understanding mapping issues
Exclude records with record relationship issues
Understanding business process flow issues
Understanding record status issues
Ascertain whether you need to set certain system fields
Migrating documents
Follow the order of migration steps
Understanding migration automation
Understanding migration performance
Request the lifting of API limits for large projects
Arrange time for the migration execution
The customer should verify the quality of all migrated data before the final migration
Other Books You May Enjoy
Index
Cover
Index
Thanks for purchasing this book!
If you’d like to read on the go, or your eBook purchase is not compatible with your device, you can now get a DRM-free PDF version with any Packt book at no extra cost.
To do so, follow these simple steps:
Scan the QR code or visit the link belowhttps://packt.link/free-ebook/9781804612637
Submit your proof of purchaseThat’s it! We’ll send your free PDF and other benefits to your email directlyIf this book is helping you improve your skills, we’d strongly suggest leaving a review on Amazon.com. This helps us know if you like our work and if the chapter content has been valued, and also helps the buyers on Amazon know if the book is right for them.
So, everyone else benefi ts from your review - we wouldn’t want you to miss out. You can now reach out to [email protected] with a screenshot of your review and the book URL, and we’ll send you a $5 voucher for your next Packt purchase. Thank you in advance for engaging with us, we are excited to see your review!
To join the Discord community for this book – where you can share feedback, ask questions to the author, and learn about new releases – follow the QR code below:
https://packt.link/businesscenter
This section will familiarize you with the basics of Microsoft Power Platform. After completing this part, you will have a full understanding of the structure and purpose of the Microsoft Power Platform and the Microsoft Dynamics 365 ecosystem, as well as the two other Microsoft cloud offerings – Microsoft 365 and Microsoft Azure – since a typical enterprise Power Platform solution is often successfully combined with the strengths and capabilities of these other two Microsoft cloud services.
This section comprises the following chapters:
Chapter 1, Microsoft Power Platform and Microsoft Dynamics 365 OverviewChapter 2, Microsoft 365 and Microsoft Azure OverviewThe Microsoft Power Platform is a quickly growing collection of technologies, frameworks, solutions, and products. In this chapter, you will learn about the structure and modules of the Microsoft Power Platform to make qualified decisions about the components necessary for your business solution. This will give you a good understanding of all the components of the Power Platform and will enable you to draw a high-level overview of which components you will need to fulfill your business requirements.
In this chapter, we’re going to cover the following main topics:
Introducing Contoso Inc.Microsoft Power PlatformMicrosoft Dynamics 365 CRM applicationsMicrosoft Dynamics 365 ERP applicationsMicrosoft Dynamics 365 AI, AR, and other modulesMicrosoft Power Platform licensing overviewA practical exampleFirst, we will introduce “Contoso Inc.,” an example company that we will revisit many times.
Contoso Inc. is a fictitious global manufacturing and retail company with headquarters in Seattle, Washington, and a number of regional subsidiaries on all continents. Contoso Inc. works in the industry of manufacturing and implementing large machines and factories as well as producing consumer electronic goods. Furthermore, Contoso Inc. operates a chain of retail stores around the globe together with an e-commerce sales channel.
This fictitious company will serve as an example Power Platform customer to present the practical implementation of the concepts presented in this book. In this chapter, Contoso Inc. will familiarize itself with the Power Platform and Dynamics 365 to decide what components will suit their business requirements.
In this section, you will learn the structure of the Microsoft Power Platform to understand the background technology on which Power Apps as well as all Microsoft Dynamics 365 applications run.
Microsoft made a big shift when it introduced the Power Platform. For seasoned Microsoft Dynamics CRM and, later, Dynamics 365 CE experts, the Dynamics product is no longer the centerpiece of this product line but rather a first-party app running on the Power Platform. The change can be illustrated in two diagrams. The first diagram shows the Microsoft Dynamics 365 high-level architecture before the Power Platform was introduced (not all applications are included for brevity):
Figure 1.1: Microsoft Dynamics 365 before the Power Platform
The second diagram presents the dramatic increase in the complexity and number of various new products and technologies that are part of the Power Platform today (not all applications are included for brevity):
Figure 1.2: Microsoft Power Platform
As you can see in the above diagram, the introduction of the Power Platform has added a complex composition of various services and components. Let’s summarize the most important:
Microsoft DataversePower AppsModel-driven apps and canvas appsPower AutomatePower Virtual AgentsPower BIPower PagesAI BuilderData connectorsOn-Premises Data GatewayThis new Microsoft Power Platform philosophy suggests that a potential user of a Microsoft-based business solution will need to undertake more evaluations and decision-making to find the best solution for their business requirements. Some example evaluations are as follows:
Will my workload be better covered by some of the Microsoft Dynamics 365 applications, or should I develop my own Power Apps application?Do I need mobile applications at all, and if so, can I use the standard Microsoft Dynamics 365 app, or do I need to develop my own apps using the canvas apps technology?Do I need to build automation for my business application using any costly legacy integration platform or another Microsoft/third-party integration solution, or can I use Microsoft Power Automate?Can I use some of the large number of public connectors for canvas apps and Power Automate or do I need to develop my own custom connector?What are the most effective licensing options to cover my business requirements?In the following sections and chapters, you will learn what Microsoft Dataverse is and what the new role of the Microsoft Dynamics 365 apps is in the Power Platform. We will also explore how you can build mobile apps for an internal audience easily and with no code, as well as look at cross-platform automation and what the licensing options are for the various Power Platform components.
There are two very important concepts introduced by Microsoft as part of the Power Platform, which move toward a standardized data model for business applications as well as provide a technical implementation of this model for practical use when building applications. The two concepts are the Common Data Model (CDM) and Microsoft Dataverse, and it is important to understand what these two concepts are and what the difference between them is.
The CDM is a standardized data model consisting of a metadata system and data schemas. The CDM was developed with the goal of providing a common platform facilitating data integration and application development. It was also presented by Microsoft together with Adobe and SAP as part of the Open Data Initiative (ODI). The expectation is that the ODI will welcome more partners and that all contributing parties will work on extending and further standardizing the CDM.
The CDM consists of a set of core tables, which are not directly related to any particular workload, together with a lot of additional tables grouped into typical workloads such as sales, service, and healthcare. An additional CDM extensibility option is the growing set of Microsoft industry accelerators. Currently, there are accelerators for banking, healthcare, education, non-profit, automotive, media, and more.
Microsoft Dataverse can be understood as an implementation of the CDM for the purpose of hosting data for Power Platform applications. But Microsoft Dataverse is much more than just a database. It consists of the following main components:
Tables with the underlying structure of columnsRelationships between tablesUser interface elements used in model-driven apps (views, forms, charts, and dashboards)Global (table-independent) choices, which can be repeatedly used in several tablesAutomations (business rules, business process flows, and workflows)Security concept elements (for example, business units, security roles, and column security profiles)Custom development capabilities (API, server-side, and client-side extensibility models)Microsoft Dataverse is the foundation for building model-driven apps. The approach is to first configure the whole Microsoft Dataverse data model, create all elements, and then configure a model-driven app using the necessary subset of Microsoft Dataverse elements. Depending on the purchased licenses, Microsoft Dataverse is extended either by a Microsoft first-party application from the Microsoft Dynamics 365 family of products, any third-party partner applications, or within a user’s own configuration capacity.
Model-driven apps are one of the two interactive end user application types that can be developed in the Power Platform. Historically, model-driven apps were the Microsoft Dynamics 365 applications themselves. The philosophy of model-driven apps has, however, changed compared to Microsoft Dynamics 365 and is based on the following capabilities:
A model-driven app can be either a first-party application (any of the Microsoft Dynamics 365 apps), a third-party ISV application purchased from a partner or on AppSource, or a self-developed application.A model-driven app is based on Microsoft Dataverse.There can be only one Microsoft Dataverse database in a single environment but multiple model-driven apps of any of the mentioned types.All model-driven apps share the same data or subsets of data in Microsoft Dataverse.Model-driven apps run primarily on a PC in a browser, but can also be used on mobile devices within platform-specific mobile apps.You will learn details of the Power Platform environment in Chapter 3, Understanding theMicrosoft Power Platform Architecture.
A model-driven app is technically a very simple unit, consisting of only two components:
A model-driven app, specified with a few parameters, for example, name and URLA model-driven app navigation pane called the site mapAn example of the model-driven app user interface is shown in the following screenshot:
Figure 1.3: Example model-driven app
Here we can see the site map navigation pane on the left side of the screen, with the app itself in the center.
All other components of a model-driven app are stored within the Microsoft Dataverse environment and should exist prior to creating a model-driven app. The end-to-end process of creating a model-driven app can be divided into the following steps:
Provision a Power Platform environment with the Microsoft Dataverse.Create the data model (tables with columns and relationships).Create the user interface (views, forms, charts, and dashboards).Create the automations (business rules, business process flows, and workflows).Create a new model-driven app.Create a site map.Select components for the model-driven app.Save, validate, publish, and play.Canvas apps are a younger member of the Power Platform family and are primarily intended to be used on mobile devices rather than on PCs. Historically, canvas apps evolved from the Microsoft Siena project of 2014. The philosophy and capabilities of canvas apps are very different from model-driven apps:
Canvas apps can be created in a Power Platform environment without Microsoft Dataverse.Canvas apps are designed very much like apps for mobile devices, focusing on the user interface.The business logic in canvas apps is implemented using an Excel-like expressions language called Power Fx.Canvas apps can be connected to various data sources using connectors, as described in the information box below. Right now, there are more than 600 publicly available connectors, and you can easily develop your own custom connector if no public connector is suitable for the required technology.Canvas apps can run on a mobile device within the Power Apps mobile app. They can run on a PC in a browser or can be embedded in websites, SharePoint sites, Power BI, Teams, or even model-driven apps.Introducing data connectors
Data connectors in Power Platform are used to support the low-code/no-code character of the Power Platform when connecting to various IT systems and solutions. Instead of developing complex interface connections, the citizen developer can just select the right connector, configure the settings, and start communicating with the systems.
An example of the canvas app user interface is shown in the following screenshot:
Figure 1.4: Example canvas app
Here we can see an interface that would be logical to use on desktop or mobile. Within the Power Apps environment, you would be able to select different areas of the screen and modify their shape, size, and color, as well as select buttons and develop expressions related to them that affect how users interact with the app.
For an accelerated adoption of canvas apps, Microsoft offers a wide variety of canvas app templates within the canvas apps designer tool.
The end-to-end process of creating a canvas app can be divided into the following steps:
Provision a Power Apps environment with or without Microsoft Dataverse.Create a canvas app.Connect to data sources using connectors.Create the user interface (screens with controls like galleries, forms, and many other controls).Create the business logic using the expression language Power Fx.Save, validate, play, and share.Power Automate (previously Flow) is the automation engine within Microsoft Power Platform. The purpose of Power Automate is to build automation flows across a wide variety of systems and technologies in a low-code style using a very intuitive graphical user interface. The underlying technology of Power Automate is Microsoft Azure Logic Apps and the use of connectors, as well as the graphical design of flows, are very similar. A Power Automate flow generally consists of a trigger and business logic, which in turn consists of flow control elements (conditions, switches, and loops) and actions, implemented mainly using connectors, most likely as in canvas apps. The following types of flows are available:
Automated flows: These are triggered in the background by an event trigger usually coming from a connector.Button flows: These are triggered manually by a button and can take manual data input. These flows can run on PCs and mobile devices within a specific Power Automate mobile app.Scheduled flows: These are triggered in the background by a timer or scheduler trigger.Desktop flows: These are used for recording and automating manual steps on various legacy software.For an accelerated adoption of Power Automate, Microsoft offers a wide variety of Power Automate templates within the flow designer tool.
The end-to-end process of creating a Power Automate flow can be divided into the following steps:
Provision a Power Apps environment with or without Microsoft Dataverse.Create a Power Automate flow.Define the trigger type and trigger parameters.Create the business logic using the graphical designer, and configure the actions appropriately.Save, validate, test, and share.Power Virtual Agents is the latest member of the Microsoft Power Platform product family. The purpose of the Power Virtual Agents technology is to enable the creation of chatbots using a graphical interface and no-code approach, and so open the world of chatbots to everyday business users without specific programming skills. The following are the capabilities of Power Virtual Agents:
The chatbots are developed in a graphical designer without any coding requirements.The designer defines conversational topics, business logic, and actions for the conversation. The actions can be implemented using Power Automate.The chatbot can be integrated with a variety of environments, including websites, mobile apps, Teams, Skype, and Cortana, as well as various non-Microsoft systems, such as Facebook, Slack, Telegram, and Twilio.The end-to-end process of creating a Power Virtual Agents chatbot can be divided into the following steps:
Create a Power Virtual Agent bot.Create topics.Create the conversational logic using questions, messages, and actions.Specify the end of the conversation by either a survey or transfer to an agent.Save, validate, and test.Publish the bot into a required channel.Power BI is a collection of a data platform, cloud services, applications for PC and mobile devices, and connectors working together to provide an analytical and reporting solution. From a consumer point of view, Power BI provides Power BI apps, which consist of reports and dashboards. This content can be consumed in a browser on PCs as well as on Power BI mobile apps.
For designers and developers, Power BI offers the following capabilities:
The Power BI cloud service, where the published content runsDesigner and developer tools to prepare the content, such as Power BI Desktop and Power BI Report BuilderTools for advanced topics such as creating custom visuals or using the Power BI APIKey concepts of Power BI for Microsoft Power Platform solutions are as follows:
Power BI reports and dashboards can use data from Microsoft Dataverse alone as well as combined with data from various other sources.Power BI reports and dashboards can be embedded in model-driven apps as well as canvas apps and Power Pages portals.Canvas apps can be embedded in Power BI reports and dashboards.On-Premises Data Gateway is a specific software solution enabling the use of on-premises data sources within various cloud services, such as Power Apps, Power Automate, and Power BI, as well as some Microsoft Azure services. On-Premises Data Gateway needs to be installed on a local infrastructure and configured to expose the required on-premises data sources to the cloud. The benefit of this solution is that there is no inbound connection from the cloud to the user’s own data center; the connection is always established outbound.
AI Builder is one of the latest members of the Microsoft Power Platform product family. The purpose of AI Builder’s technology is to enable the creation of AI components using a graphical interface and a no-code approach, opening the world of AI to everyday business users without specific scientific and programming skills. Here are the characteristics of AI Builder:
AI solutions are developed in a graphical designer without any AI or programming requirements.The user selects one of the ready-made AI models the platform offers, provides data for training the model, trains the model, and publishes the solution.The AI solution can be used from Power Automate flows as well as from model-driven apps or canvas apps to infuse AI-processed content into an automation or application.AI Builder provides AI models like document processing, invoice processing, and receipt processing for the automated extraction of text blocks from documents stored as image files. Further, there are multiple models for processing text blocks, including sentiment analysis, text translation, and language detection.
Power Pages recently evolved from Power Apps portals, which in turn historically evolved from Microsoft Dynamics 365 portals. The purpose of Power Pages is to provide external-facing websites connected with Microsoft Dataverse data for users outside of their own organization.
An example of the Power Pages app user interface is shown in the following screenshot:
Figure 1.5: Example Power Pages app
Portals made using Power Pages are the only Microsoft Power Platform technology that are really open to public and even anonymous access. Power Pages portals have the following capabilities:
The portals run on Microsoft Azure services, but the content of the portals is completely configured within model-driven apps.Power Pages portals expose selected data from Microsoft Dataverse to anonymous or registered and authenticated users.Power Pages portals offer a wide variety of authentication possibilities for external visitors.Microsoft Dynamics 365 CRM technology was historically the foundation for Microsoft Dataverse, but in the current concept, Microsoft Dataverse is the foundation and the Microsoft Dynamics 365 CRM applications are called first-party Power Apps. Each of the applications, when provisioned, extends the Microsoft Dataverse database with the workload-specific data model and provides one or more model-driven apps for managing the respective workload. The applications cover the typical CRM workloads of sales, marketing, and customer, field, and project services. The Microsoft Dynamics 365 CRM applications are available also as an on-premises deployment, except for Marketing and Project Operations. In this section, you will learn the capabilities of all five main Dynamics 365 CRM applications.
The Microsoft Dynamics 365 Sales app (also called Sales Hub) has the following capabilities:
Customer managementLead and opportunity managementQuote and order managementProduct catalog and sales literatureCompetitor managementGoal managementPlaybooksSales InsightsSurveysReporting and analyticsThe Microsoft Dynamics 365 Marketing app has the following capabilities:
Customer journeysMarketing contentSegmentsMarketing emailsMarketing formsMarketing pagesLead managementInternet marketingSocial media marketingEvent managementSurveysReporting and analyticsThe Microsoft Dynamics 365 Customer Service app (also called Customer Service Hub) has the following capabilities:
Case managementQueuesEntitlementsService-level agreementsKnowledge managementSurveysMulti-session capabilityOmnichannel capabilityReporting and analyticsThe Microsoft Dynamics 365 Field Service app has the following capabilities:
Work order managementResource managementUniversal resource schedulingAgreementsInventory managementAsset managementField service mobileConnected Field Service for IoT integrationSurveysReporting and analyticsThe Dynamics 365 Connected Field Service ad-on extends the capabilities of the solution with IoT-enabled devices for proactive and remote maintenance.
The Microsoft Dynamics 365 Project Operations app has the following capabilities:
Project-based opportunity managementProject managementResource managementProject service schedulingProject time and expense trackingProject billingReporting and analyticsAlthough the Microsoft Dynamics 365 ERP applications are not in the scope of this book, it is important to have a basic understanding of the capabilities of these modules to make informed decisions when designing a future business solution. The Microsoft Dynamics 365 ERP applications are not based on the Microsoft Dataverse platform and are not considered model-driven applications. Some of the applications are also available as an on-premises deployment. In this section, you will learn the capabilities of all five main Dynamics 365 ERP applications.
The Microsoft Dynamics 365 Finance app is dedicated to midsize to large multinational customers and has the following capabilities:
General ledgerAccounts receivableAccounts payableBudget and forecastingProject accountingInvoicing and billingFixed assetsCash and bank managementExpensesCredits and collectionsReporting and analyticsCompliance managementThe Microsoft Dynamics 365 Supply Chain Management app is dedicated to midsize to large multinational customers and has the following capabilities:
Product managementMaster planningSales order managementProcurement and sourcingAsset managementWarehouse managementTransportation managementService managementManufacturingReporting and analyticsThe Microsoft Dynamics 365 Commerce app is dedicated to midsize to large multinational customers operating in the retail business and has the following capabilities:
Unified commerceModern POSMerchandise managementInventoryCustomer loyaltyChannel managemente-CommerceReporting and analyticsThe Microsoft Dynamics 365 Human Resources app has the following capabilities:
Organizational managementEmployee and manager self-serviceEmployee performance and developmentGoals, skills, training, and certificationsCompensation and benefitsLeave and absenceReporting and analyticsThe Microsoft Dynamics 365 Business Central app is dedicated to small to midsize local customers with no complex structures and business requirements and has the following capabilities:
Financial managementSupply chain managementSales and service managementProject managementOperations managementReporting and analyticsFor a long time, Microsoft has been heavily investing in bringing advanced capabilities into the business solutions product line by leveraging modern technologies such as artificial intelligence and mixed reality. The result is a large and always-growing number of Dynamics 365 addons and separate applications extending the business solution modules with analytical and insight capabilities as well as unique capabilities provided by the HoloLens hardware.
Microsoft Dynamics 365 Customer Insights is a customer data platform (CDP) solution intended to bring a comprehensive 360° view of the customer by combining master data with transactional, observational, and behavioral data from various data sources using connectors. Microsoft Dynamics 365 Customer Insights has the following capabilities:
Data source configurationData unification (mapping, matching, and merging)Data enrichmentCustomer card – providing a 360° view of the customer’s data with aggregated information from multiple sourcesCustomer segmentation – creating segments for Microsoft Dynamics 365 MarketingKPI measuresIntelligence and predictionsConnections to Power Apps, Power Automate, and Power BIMicrosoft Dynamics 365 Sales Insights is a set of AI-driven capabilities for Dynamics 365 Sales, from which some are included in the Sales app for free, while others are based on additional licenses:
Figure 1.6: Dynamics 365 Sales Insights capabilities
The capabilities significantly improve the productivity of sales staff, providing automated guidance, notifications, reminders, conversation starters, suggestions for taking action, and advanced sales analytics dashboards and overviews.
Microsoft Dynamics 365 Connected Spaces is an IoT- and AI-based solution for analyzing and improving store operations by collecting information from video cameras and IoT-enabled devices to understand customer behavior and situations that need attention. The solution analyzes the signals and situations and creates notifications and alerts.
Microsoft Dynamics 365 Fraud Protection is an add-on for the Dynamics 365 Commerce solution to provide payment fraud protection and protection of other business scenarios when using e-commerce. The solution analyzes customer identities, e-commerce transactions, payments, and other activities and, with the support of AI, identifies risks and recommends actions.
Microsoft Dynamics 365 Remote Assist is a mixed-reality solution used to improve the efficiency of on-site maintenance and repair work, where an on-site service technician equipped with the HoloLens device can benefit from the support and guidance of remote experts. The solution is used as an extension of the Microsoft Dynamics 365 Field Service app. There is also a mobile version of this solution, using a mobile app for iOS or Android instead of HoloLens.
Microsoft Dynamics 365 Guides is a mixed-reality solution used to improve the efficiency of learning on the job for employees new to a particular job role or providing complex procedures. The employee can use the HoloLens device, where holographic work instructions including text, images, videos, or 3D models are presented to them and guide their work.
Microsoft Dynamics 365 Product Visualize is a mixed-reality solution used in the sales process for presenting, discussing, and configuring complex products in front of customers to accelerate and simplify the sales process. The solution can be used on ARKit-compatible mobile devices using the iOS operating system. The solution is directly integrated with Microsoft Dynamics 365 Sales and Microsoft SharePoint.
Microsoft Dynamics 365 Unified Service Desk is a framework for building call-center applications, integrating Microsoft Dataverse applications with existing legacy and third-party applications of various types (web, desktop, Java, and mainframe), and offering frontend automation workflows, session management, and telephony integration to build an integrated agent desktop solution. The solution consists of an installable desktop application and configuration and settings capabilities within the Microsoft Dynamics 365 Customer Service app.
The purpose of this section is to provide a brief overview of the licensing possibilities of the Microsoft Power Platform components including high-level price tags. Licensing details, which are very complex and change frequently, can be found in the various licensing guides Microsoft regularly publishes:
Trials: For almost all Microsoft Power Platform components, there is a possibility to provision a free trial, usually limited to 30 days.Power Apps Developer Plan: Specific free-of-charge but permanent license for learning and individual development. Cannot be used for production purposes and is limited to a single user.Power Apps/Power Automate for Office 365: These licenses allow building apps and flows using the standard data connectors only, based on the Office 365 services.Power Apps/Power Automate for Dynamics 365: These licenses are included in most Dynamics 365 licenses and allow the creation of apps or flows using the Dynamics 365 data model only.