DEV Community

Andrew Elans
Andrew Elans

Posted on • Edited on

5

Power Pages Single Page Application (SPA)

Microsoft Power Pages (MPP)

MPP is a perfect tool in a corporate environment allowing to build full-scale websites integrated with Azure products and services, consisting of:

  • Dataverse as a built-in database
  • Web APIs to query the data
  • Power Automate to connect to external endpoints (REST, SOAP, etc), query Azure SQL databases, trigger emails and use various Azure and other services
  • Dataflows to load data into Dataverse from various sources

MPP is aimed at citizen developers - makers without programming experience, providing tooling and templates with low-code principle and as a result a lot of unnecessary dependencies and functionalities which you can neither control nor disable. Such dependencies in many cases promote delays in response to user actions and prevent full customization of the user interface.

MPP may however be the only solution for a full-scale web app in a corporate environment, when you have limited allowed techstack in the organization (like I do), not allowing React, Node.js or other modern technologies.

Here is a list of all components loaded for the SignIn page:
Image description

Can we somehow simplify this and control what to load? Yes, with a custom setup.

Single Page Application with Power Pages

Single Page Application implementation with Power Pages is not something Microsoft provides by default.

In a series of posts Power Pages SPA I will share how it may be implemented with as little dependencies as possible, with connected Microsoft Authentication Library (MSAL) for JS for direct query of Dataverse, Azure Storage and other services.

Top comments (0)

typescript

11 Tips That Make You a Better Typescript Programmer

1 Think in {Set}

Type is an everyday concept to programmers, but it’s surprisingly difficult to define it succinctly. I find it helpful to use Set as a conceptual model instead.

#2 Understand declared type and narrowed type

One extremely powerful typescript feature is automatic type narrowing based on control flow. This means a variable has two types associated with it at any specific point of code location: a declaration type and a narrowed type.

#3 Use discriminated union instead of optional fields

...

Read the whole post now!

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay