Hope you are all doing well.
We created this GitHub project to test the performance of XAF's Security System for the two Object-Relational Mapping (ORM) libraries. We tested these libraries with BenchmarkDotNet:
- Microsoft Entity Framework Core (EF Core v5.0)
- DevExpress eXpress Persistent Objects™ (XPO v20.2.6)
You can run the benchmarks on your computer or review our test results here.
Scenarios
Data access scenarios we tested include the following:
- Users can view employees info within their own department.
- Users can view and edit their own tasks and also tasks assigned to employees within their own department.
To help you estimate the overhead of XAF's Security System API, we run tests against multiple record counts (0-5K) and a "No Security" mode.
From our experience, in most real-life scenarios (like here or there) less than a hundred security permission checks are expected during UI form load, so our tests with 5K records may reflect edge/artificial cases. The number of security checks is generally reduced and application performance is improved further with the help of:
- finite number of unique security permissions or main/navigation menu commands, for which security checks are necessary;
- grid data paging (Server Mode/Instant Feedback or Web API/IQueryable);
- permission result and data layer caching;
- ongoing database maintenance;
- server side data filtering.
About our .NET App Security API
This role-based access control API ships as an independent non-visual library, a part of our cross-platform .NET application UI framework (XAF). But don't be alarmed: this security API can be used in standard non-XAF .NET Framework and .NET Core apps. For instance, our newest WinForms Dental Clinic demo uses the Security API for basic security related functionality.
For more information, please review the following documents and do help us spread the word: