Neural LogDocumentation
Developer reference

Neural Log Application Architecture

High-level overview of Neural Log's DevExpress XAF Blazor Server architecture, XPO data layer, and shared domain modules.

Neural Log is a DevExpress XAF Blazor Server application backed by XPO and SQL Server Express, with one database per radio group. The architecture uses standard XAF modules for authentication, navigation, and UI generation, while custom modules house the radio-traffic domain model and shared operations.

Technology stack#

Layer Technology
UI DevExpress XAF Blazor Server (DevExpress 26.1.4/.NET 10)
Data access XPO (eXpress Persistent Objects)
Database SQL Server Express, one database per radio group
Security XAF Permission Policy with role-based access
Identity GUID Oid keys with optimistic locking and deferred deletion

Solution projects#

The solution is organized into the following projects under src/:

Project Purpose
NeuralLog.Module Shared XPO model, controllers, actions, and save rules. Contains BusinessObjects, Billing, Scheduling, Reporting, Ui, Controllers, and Editors.
NeuralLog.Blazor.Server Traditional XAF Blazor Server host and authentication.
NeuralLog.WebApi Planned secured API host (no endpoints implemented).
NeuralLog.Web Planned React/TypeScript frontend (no implementation).
NeuralLog.Migration Planned offline Access-to-XPO importer (gated by migration rules).

Tests live in tests/NeuralLog.SchemaTests and cover manifest property coverage, association pairing, runtime schema construction, persistence, and decimal/time conversion.

Domain module layout#

NeuralLog.Module is divided into focused directories:

  • BusinessObjects: XPO entity classes for traffic, scheduling, billing, A/R, and setup data.
  • Billing: Invoice operations, charge logic, trial/final invoice workflows, and tax/fee calculations.
  • Scheduling: Log generation, reconciliation, Book-Ends handling, and placement rules.
  • Reporting: Report definitions, saved formats, and authenticated download delivery.
  • Ui: Navigation configurations and layout definitions.
  • Controllers: SimpleAction and PopupWindowShowAction definitions that expose features to the UI.
  • Editors: Blazor panel components for specialized entry screens.

Data model conventions#

  • Each business entity derives from BaseObject (GUID Oid, optimistic locking, deferred deletion).
  • Physical foreign-key columns are nullable for XPO compatibility; required associations are validated on save.
  • No Aggregated relationships are used on financial children. Removing a parent does not silently delete invoices, payments, or history.
  • SHA-256 text properties use nvarchar(64) storage.
  • Business inactive/void flags are separate from XPO deferred deletion (GCRecord).

Authentication and security#

The application uses the XAF Permission Policy with the following components:

  • PermissionPolicyUser and PermissionPolicyRole base classes.
  • An ApplicationUser class extending the template user with roles, lockout, and display name.
  • The Administrators role bootstrapped at initialization with full administrative access.
  • Additional roles are site-configured through Setup > Administrator Controls > Users and Passwords.

Planned components#

The following components are planned but not yet implemented:

  • React/TypeScript client (src/NeuralLog.Web)
  • Secured API host (src/NeuralLog.WebApi)
  • Offline Access-to-XPO importer (src/NeuralLog.Migration)

No API endpoints or migration instructions exist at this time.