Power Platform Archives - Impulz Technologies LLC https://impulztech.com/tag/power-platform/ Microsoft Dynamics and Power Platform consulting company Tue, 14 Feb 2023 07:24:15 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.3 https://impulztech.com/wp-content/uploads/2022/08/cropped-impulz-tech-32x32.png Power Platform Archives - Impulz Technologies LLC https://impulztech.com/tag/power-platform/ 32 32 Microsoft Dataverse is not a database https://impulztech.com/microsoft-dataverse-is-not-a-database/ Tue, 14 Feb 2023 07:24:15 +0000 https://impulztech.com/?p=3066 In my previous blog posts, I have discussed how to connect the custom Angular application to the Microsoft Dataverse through a web API. Today, I am going to compare Microsoft Dataverse to a traditional database management system like MySQL and discuss the main motivations behind using one technology over the other. Dataverse MySQL Structure Relational, […]

The post Microsoft Dataverse is not a database appeared first on Impulz Technologies LLC.

]]>
Dataverse vs MySQL

In my previous blog posts, I have discussed how to connect the custom Angular application to the Microsoft Dataverse through a web API. Today, I am going to compare Microsoft Dataverse to a traditional database management system like MySQL and discuss the main motivations behind using one technology over the other.

Dataverse MySQL
Structure Relational, non-relational Relational only
Authentication Secured through Azure Active Directory OAuth and OpenID authentication.. Application security such as OAuth needs to be developed at the application layer.
API OData APIs are supported out-of-the-box. APIs need to be developed using backend tools like Node, ASP.Net etc.
Flexible Somewhat. Highly flexible.
Data Access Built-in support for Power Apps.

Through REST APIs for the custom applications.

Directly through a SQL code or through Object Relational Mappers (ORMs) like Entity Framework, Sequelize, TypeORM etc.
Non-structured support Microsoft claims to use multiple type of storage to meet the specific customer needs. Not supported.
User Management Supported with user authentication through Azure AD. Custom solution need to be developed for the user management.
Data Auditing Supported. Need to be developed.
Application Lifecyle Management Tools (ALM) Supported. Extra steps required such as migrations while using an ORM.
Pre-built UI templates Metadata driven application design through model-driven Power Apps. Not supported.
Industry accelerators Microsoft provides pre-built industry verticals for different industries such as education, not for profit, automotive etc. Through open-source community.
Infrastructure Microsoft responsibility. Customer’s responsibility.
AI-pairing such as GitHub Co-Pilot Not supported because the data model is designed is mostly through a UI. Rich support for modern-style pro-developers tooling.
Version control support Supported only at the solution level. Supported if the ORM is been used in a development workflow.
Typical skillset requirements Understanding of the relational data modelling, familiarity with the cloud concepts. Pro-developer with a specialized skillset required in relational database design and one of the modern programming language such as JavaScript, C#, Python etc.
When to use The exact answer to this question is really depends on the specific problem you are dealing with. Following been used only as a guidance:

 

–          Organization is already using Microsoft 365 or Microsoft Dynamics.

–          You want to integrate your app with other Microsoft infrastructure such as Logic Apps, Azure Data Lake etc.

–          Team is skilled on Microsoft .Net and related tooling.

Use it

–          When you want to control the entire application design.

–          Requires flexibility.

–          Not bound to Microsoft Azure.

 

 

About Impulz Technologies LLC

Impulz Technologies, is a Silver Certified Microsoft Partner company. We specialize in the implementation, consulting and development of Microsoft Dynamics and Microsoft Power Platform. Impulz Technologies also provide staff augmentation services all across the US. For more information please contact us at 630-540-6302 or email us at info@impulztech.com

The post Microsoft Dataverse is not a database appeared first on Impulz Technologies LLC.

]]>
Connect the Angular with Microsoft Dataverse – Part 3 of 3 https://impulztech.com/connect-the-angular-with-microsoft-dataverse-part-3-of-3/ Fri, 27 Jan 2023 09:53:58 +0000 https://impulztech.com/?p=3051 Hi, welcome to the Impulz Technologies LLC blog. In this third and final part of the three parts blog post series, I am going to explain the JS code to interact with the Microsoft Dataverse REST API to fetch the accounts table data. Before going forward let’s quickly recap what we have discussed so far. […]

The post Connect the Angular with Microsoft Dataverse – Part 3 of 3 appeared first on Impulz Technologies LLC.

]]>
Angular Dataverse

Hi, welcome to the Impulz Technologies LLC blog. In this third and final part of the three parts blog post series, I am going to explain the JS code to interact with the Microsoft Dataverse REST API to fetch the accounts table data.

Before going forward let’s quickly recap what we have discussed so far.

Recap

In the first two parts of the blog post we have covered:

  1. How to register an application in Microsoft Azure.
  2. How to extract different data elements like tenant Id, application id etc. from the Azure portal. These values are required to successfully execute the code within your environment.
  3. Theoretical background of how the Azure Active Directory actually works.

If you have not read the previous blog posts, it is highly recommended to read them first from part-1 and part-2.

What we are going to cover today?

Today, we are going to going to consolidate what we have covered so far and apply those concepts in the actual code. This is the scenario we are going to cover in the code today.

  • Try to login the user through a silent login API. That is single sign-on (SSO).
  • If SSO failed then show the popup to the user to enter the credentials.
  • Upon successful login fetch the data from the Dataverse system table ‘Accounts’.

Assumptions

  • You are familiar with Angular and specifically the concepts like components, dependency injection and how it works in Angular, services, routes and http client.
  • You already know Angular CLI and some of the basic commands.
  • JavaScript and HTML concepts like async programming, local storage etc.
  • The user going to sign in has an access the accounts table in the Dataverse environment.

From where to download the code?

The code used in this blog post has been published in the GitHub public repository. You can download or clone the code from this repo https://github.com/RealAhmadH/ng-dataverse

You can setup the code by reading the readme file of the repo.

Let’s now review the code.

src/constants.ts

This file is used to store configuration information of the Azure AD and the Microsoft Dataverse environment. You have to fill in the following in order to successfully connect the Dataverse environment:

  • AZURE_APP_ID: this is the application identifier which you have configured on your Azure portal.
  • AZURE_TENANT_ID: this is the tenant identifier of the Azure AD.
  • DATAVERSE_BASE_URL: this is the URL of yours Dataverse environment. You can get this information from the Microsoft Power Apps admin centre.

Within the same file there exists a configuration JSON object required to connect to the Azure environment using the MSAL package. The only required configuration is the client identifier. Rest of the details are optional.

src/app/services/microsoftad.service.ts

In this file the code exists which actually interacts with the Microsoft Azure AD for Single Sign-on (SSO).

Following is the brief description of the code:

Class constructor

  • In the constructor of the class, constant object is been passed as a dependency. Constant object contains important configuration information like configuration JSON object, application id, tenant id etc. required to successfully establish a connection with the Azure AD.

Confidential vs Public Client Application

  • In the class constructor we initialized an object PublicClientApplication. Microsoft MSAL supports two types of clients: confidential and public. Confidential clients include secure clients like web server applications whereas public client includes desktop, mobile or browser clients. Since, we are using a browser to connect the Azure, that’s why PublicClientApplication object is used to connect to Azure.

ssoSignIn method

  • The class instance method ssoSignIn is defined to try to connect the Azure AD first silently (Microsoft account Single Sign-on typically used in every Microsoft apps). If the single sign-on gets failed then it tries to launch the Microsoft login popup and ask the user to enter the credentials.

Scopes and Microsoft Azure AD

Microsoft also issues the authentication token within a single call in response. Azure AD issues token on based of scopes. It is important to understand that you can merge more than one scope within a single call but all the scopes has to be of the same resource we are trying to access. During the sign-in process, we are actually interacting with Microsoft Graph to allow us the access to the user’s profile. Within the same call we can’t ask to issue the access token for the Dataverse because Dataverse is a different Azure resource or API and it is required to repeat the same process to acquire the access token for the Dataverse scope.

Conluding remarks!

This concludes the three parts blog post series. You can apply the same knowledge and ideally the code to other JavaScript frameworks or even the plain JavaScript appkications. Similarly, authentication and authorization works more or less the same for every Azure resource. Ideally, you can extend the same code to other services like Power BI for example.

About Impulz Technologies LLC

Impulz Technologies, is a Silver Certified Microsoft Partner company. We specialize in the implementation, consulting and development of Microsoft Dynamics and Microsoft Power Platform. Impulz Technologies also provide staff augmentation services all across the US. For more information please contact us at 630-540-6302 or email us at info@impulztech.com

 

 

The post Connect the Angular with Microsoft Dataverse – Part 3 of 3 appeared first on Impulz Technologies LLC.

]]>
Microsoft Power Apps: Code debugging in Model-driven App https://impulztech.com/microsoft-power-apps-code-debugging-in-model-driven-app/ Tue, 27 Sep 2022 15:37:18 +0000 https://impulztech.com/?p=2702 Debugging is an essential part of software development. As Microsoft Power Apps is a low code no code approach still sometimes there is need of small JavaScript code snippets for particular events e.g. onChange in Model-driven apps. In order to debug the code snippet in your deployed power app you can follow the following steps. […]

The post Microsoft Power Apps: Code debugging in Model-driven App appeared first on Impulz Technologies LLC.

]]>

Debugging is an essential part of software development. As Microsoft Power Apps is a low code no code approach still sometimes there is need of small JavaScript code snippets for particular events e.g. onChange in Model-driven apps.

In order to debug the code snippet in your deployed power app you can follow the following steps.

  1. In the code snippet add debugger keyword in the code where you want to place your debugging point.
  2. After reuploading the updated snippet start your app on Google chrome browser and press F12 to open developer tools.
  3. When you trigger the event for which the code was written debug point will hit and from there you can debug your JavaScript code embedded in your power app. Use F10 to move to next line and F11 to step into the next function.

Hope you have found it helpful. Cheers.

The post Microsoft Power Apps: Code debugging in Model-driven App appeared first on Impulz Technologies LLC.

]]>