Should I use Power Pages or build a custom Web Application in .net using the Dataverse SDK?

When considering building a website integrated with Dataverse, sometimes people wonder: what are the advantages of using Power Pages compared to developing a custom Website on top of Dataverse using .net and Dataverse SDK?

While both options offer powerful capabilities, each comes with its own set of disadvantages in terms of integration, security, customization, and overall development effort.

To help clarify these differences, I have put together some comparisons highlighting the key factors to consider—without taking into account the hosting costs.

I hope this comparison post helps you understand which solution might be the best fit for your project.

Integration

Power Pages:

Easier integration with Microsoft ecosystem:

Dataverse data access
Dataverse secured APIs (Web API)
Azure AD B2C for Authentication
Entra External ID for Authentication
Integrates with Authenticated APIs in Azure using OAuth2 implicit flow
Power Automate Flows can be easily added to connect to other data Sources
Can leverage virtual tables for external data sources (SharePoint, SQL Server, Salesforce, Oracle)

Custom Website:

Full flexibility but requires custom development or setup

Security

Power Pages:

Built-in, enterprise-grade.
Row-level permissions (Table Permissions) arere configurable out of the box
Selectively enable tables for Web API and allow data access/update via JavaScript
Column security for Web API calls (JavaScript) – explicit what tables, columns and operations are allowed
Web Roles (Security Profiles)
Basic Dataverse plugins can be used for extra validations and more complex logic.
Web Application Firewall can be enabled for rate limit, Country restrictions

Custom Website:

Must be implemented manually
Dataverse security controls to verify access for a user on the SDK exists only for internal users.
For external public facing websites, all the concepts of Table Permissions, Web Roles (security profiles), Column Permissions must be re implemented from scratch – These are part of Power Pages, not Dataverse

Code Customisation

Power Pages:

Limited to Power Pages flexibility/extensibility.
Options:

JavaScript (Vanilla, TypeScript, React PCF components)
Liquid for Server-side rendering (Data read from Dataverse)
Dataverse Plugins (C# Code) for server-side validation, or server-side operations
Can securely integrate with APIs (Companion App pattern) hosted in Azure via OAuth2 implicit flow, and delegate server-side functionality (use carefully to not reinvent the wheel, but a hybrid approach can be used for more complex scenarios)
Liquid and Client-side Web API have caching out of the box
Liquid and Client-side Web API automatically apply permissions
Even if there are ‘custom’ extra layer of security done via Custom API and Plugins for a few tables, the main data security can be done via configurations.

Custom Website:

Fully customizable
Caching needs to be done from scratch
While traditional code avoids full vendor lock-in, Dataverse itself is part of the Microsoft/Power Platform ecosystem – a custom Website would have to use the Dataverse SDK or Web APIs to interact with Dataverse data anyway

Dataverse API calls quota

Power Pages:

Included on Power Pages licenses and pooled across the tenant
Enabling rate limit on WAF avoids overuse.
As more user licenses are added to the tenant, this allowance increases.

Custom Website:

Pooled number of calls on all Application Users for an environment as the custom Web APP would leverage an Azure APP registration (up to 10,000,000 max per tenant* for every 24 hours)
Overuse of Dataverse API calls can lead to throttling and potential Dataverse internal environment slowness
Add-on packs can be bought to increase the capacity

Conclusion

While a custom application will allow full flexibility, it will come with some reimplementation needs, when there are native Dataverse permission models, and other integrations available.

To me the bigger loss when moving away from Power Pages besides the easier integration with the Power Platform overall is the need to reimplement the security model from scratch. Especially considering that Power Pages has several ways to add custom pieces using pro code when needed.

Power Pages automatically handles it using Table Permissions and related features, and even if a developer makes mistakes in queries, the queries are automatically amended in the background with the table permission added as a filter.

For a price comparison, I recommend the following post: Are the Power Pages licenses too expensive?

The post Should I use Power Pages or build a custom Web Application in .net using the Dataverse SDK? appeared first on michelcarlo.

Original Post https://michelcarlo.com/2025/06/01/should-i-use-power-pages-or-build-a-custom-web-application-in-net-using-the-dataverse-sdk/

Source link

Leave a Reply

Your email address will not be published. Required fields are marked *