How to design solutions
You might think that you need an app, but should you choose a model-driven app or a canvas app? You know that you need some business logic to be implemented, but how do you choose the way to implement the business logic when there are so many different possibilities and ways to design and build a solution? On this page, we've tried to gather information about choosing the right technology.
General
- Look at the requirements, what are the actual needs?
- Have licensing in mind. Can we use Dynamics? Can we use Dataverse etc.?
Power Apps
So you think you need an app and now you need to figure out which app type to choose. Here follows some guidelines.
- Model-driven apps have Dataverse as datasouce. Dataverse means a relational database which comes with built-in functionality for setting up security. But it also comes with a licensing cost.
- If you want to be able to have several different data sources then it might be a canvas app you need.
- If mobility is important, then it might be a canvas app that you need.
- If flexible UI is important, then it might be a canvas app you need.
- If the users of the app are not within your own organization, perhaps you want your customers to update information about themselves. Then you might need Power Apps Portals.
Data Modeling with Dataverse
Model-driven apps
This chapter contains guidance for designing model-driven apps.
UI extensions
Business Rules
Business Rules can be used e.g. in order to set a column as mandatory or hide/display a column depending on some certain logic. Used for more simpler form logic/manipulations.
Form Scripting
When you reach limitations in Business Rules (e.g. you need to hide/show a column based on the value of a related table's column) developers can use JavaScript to implement the form logic.
TypeScript
Business Logic for model-driven apps
Low-code
Develper
- Plugins Some examples are validation, data manipulation, integration
- (Custom) Classic workflows
- Azure Functions
Other
User Notifications in model-driven apps
In-app notifications give the user notifications within the model-driven app and these notifications can be seen when using the app.