A project administration system combining DevExpress XAF Blazor Server (back-office) with a .NET MAUI mobile companion app.
A realistic MVP for a consulting/services firm:
- Clients - company info, contacts, addresses
- Projects - tasks, team assignments, hour budgets
- Time Tracking - consultants log hours against project tasks
- Reporting - project progress, budget burn, weekly hours
Phase 9 in progress (deployment & final polish).
- Backend deployed to Docker (compose: app + SQL Server 2022, self-seeding on first boot)
- DevExpress XAF upgraded to 26.1.4 (MAUI controls stay on 25.2)
- Reports render on Linux (cross-platform
DXFontinstead ofSystem.Drawing.Font) - User-scoped reports: consultants only see their own data, server-side and non-bypassable
- MAUI manager approval screen: PMs approve/reject submitted time entries on the phone
- Remaining: on-device test of the approval screen
| Component | Technology | Purpose |
|---|---|---|
| XafMaui.Blazor.Server | DevExpress XAF, Blazor Server, .NET 9 | Full back-office: CRUD, user management, approvals |
| XafMaui.Module | EF Core, SQL Server | Shared business objects and data access |
| XafMaui (MAUI app) | .NET MAUI, DevExpress MAUI, .NET 10 | Mobile: time entry, client lookup, reports |
The MAUI app communicates with XAF via its built-in OData Web API with JWT authentication. SQLite provides offline storage.
- .NET 9 SDK (for XAF)
- .NET 10 SDK (for MAUI)
- DevExpress NuGet feed configured
- Docker Desktop (for SQL Server)
- Android SDK / Xcode (for MAUI)
DevExpress packages restore from a local disk feed, so publish runs on the host first:
dotnet publish XafMaui.Blazor.Server/XafMaui.Blazor.Server.csproj -c Debug -o publish
docker compose up -d --buildApp on http://localhost:5080 with its own SQL Server (volume-backed). First boot
creates the schema and seeds demo users/data automatically. docker compose down
stops it; data survives in the sqldata volume.
docker run -d --name xafmaui-sql \
-e "ACCEPT_EULA=Y" \
-e "MSSQL_SA_PASSWORD=XafMaui@2026" \
-p 1434:1433 \
mcr.microsoft.com/mssql/server:2022-latestdotnet build XafMaui.Xaf.slnx
dotnet run --project XafMaui.Blazor.ServerThe app auto-creates the database and seeds test users on first run (Admin, Manager, Consultant, Office - all with empty passwords).
API docs are available at /scalar.
dotnet build XafMaui/XafMaui.csproj -f net10.0-androidDeploy to an Android emulator or device.
| Role | App | Access |
|---|---|---|
| Admin | Blazor | Full system access |
| Project Manager | Both | Manage projects, approve time entries |
| Consultant | MAUI | Log time, view projects, lookup clients |
| Back Office | Blazor | Client management, reporting |
XafMaui.slnx # MAUI-only solution
XafMaui.Xaf.slnx # XAF Blazor Server solution
XafMaui/ # .NET MAUI mobile app
XafMaui.Blazor.Server/ # XAF Blazor Server host
XafMaui.Module/ # Shared business objects (EF Core)
docs/plans/ # Design docs and implementation plans
- DevExpress XAF 26.1.4 - application framework with built-in security, Web API, Blazor UI
- DevExpress MAUI 25.2 - DataGrid, Charts, Gauges, CollectionView, Editors
- Entity Framework Core - SQL Server (server), SQLite (mobile)
- Scalar - API documentation UI
MIT license. DevExpress licenses required.

