Llamachant.ExpressApp.Monitoring.Blazor
25.2.7.2
See the version list below for details.
dotnet add package Llamachant.ExpressApp.Monitoring.Blazor --version 25.2.7.2
NuGet\Install-Package Llamachant.ExpressApp.Monitoring.Blazor -Version 25.2.7.2
<PackageReference Include="Llamachant.ExpressApp.Monitoring.Blazor" Version="25.2.7.2" />
<PackageVersion Include="Llamachant.ExpressApp.Monitoring.Blazor" Version="25.2.7.2" />
<PackageReference Include="Llamachant.ExpressApp.Monitoring.Blazor" />
paket add Llamachant.ExpressApp.Monitoring.Blazor --version 25.2.7.2
#r "nuget: Llamachant.ExpressApp.Monitoring.Blazor, 25.2.7.2"
#:package Llamachant.ExpressApp.Monitoring.Blazor@25.2.7.2
#addin nuget:?package=Llamachant.ExpressApp.Monitoring.Blazor&version=25.2.7.2
#tool nuget:?package=Llamachant.ExpressApp.Monitoring.Blazor&version=25.2.7.2
Llamachant.ExpressApp.Monitoring.Blazor
Part of the Llamachant Framework - a set of reusable modules for DevExpress eXpressApp Framework (XAF) applications.
Overview
Llamachant.ExpressApp.Monitoring.Blazor provides real-time user session monitoring for XAF Blazor applications, giving administrators visibility into active users, session status, and server diagnostics.
Key Features
- Session Monitoring - Track active user sessions with real-time status (Active, Idle, Disconnected), login time, session duration, and idle time
- Connection Details - View IP address, browser info, connection count, and heartbeat status per user
- Activity Tracking - Monitor current page, page views, action count, and per-user activity timelines
- Recent Actions - View a global action history showing recent actions across all users
- Server Diagnostics - Access server memory usage, GC memory, active session count, and uptime
- Session Termination - Administrators can force-terminate user sessions directly from the Active Users view
- Real-Time Updates - Debounced event system automatically refreshes the Active Users view when sessions change
- Circuit-Aware Cleanup - Automatic subscription and resource cleanup when Blazor circuits close
Setup
Register the module in your application builder:
builder.Modules
.AddLlamachantFrameworkMonitoringBlazorModule(options =>
{
options.ShowSessionInfo = true; // Session status, login time, duration, idle time
options.ShowConnectionInfo = true; // IP address, browser info, connection count, heartbeat
options.ShowActivityInfo = true; // Current page, page views, action count, timeline
options.ShowServerInfo = true; // Server memory, GC memory, session count, uptime
options.MaxActivityCount = 20; // Max timeline entries per user session
options.MaxGlobalActivityCount = 100; // Max entries in global recent action history
options.AllowTerminatingSessions = true; // Allow admins to force-terminate sessions
options.AllowViewingRecentActions = true; // Allow viewing the recent actions popup
});
All options have sensible defaults, so you can also register with no configuration:
builder.Modules
.AddLlamachantFrameworkMonitoringBlazorModule();
Architecture
The module registers the following services:
| Service | Lifetime | Purpose |
|---|---|---|
ActiveUserService |
Singleton | Core service tracking all user sessions, activity, and action history |
ActiveUserServiceOptions |
Singleton | Configuration options for the monitoring module |
ConnectionInfoHolder |
Scoped | Captures IP address, browser info, and circuit ID per connection |
NavigationTracker |
Scoped | Tracks page navigation events per circuit |
MonitoredCircuitHandlerProxy |
Scoped | Intercepts Blazor circuit lifecycle events (connect, disconnect, reconnect) |
How It Works
- User logs in and
ActiveUserService.UserConnected()registers the session MonitoredCircuitHandlerProxycaptures circuit lifecycle events (connect, disconnect, reconnect)NavigationTrackermonitors page navigation changesActiveUsersActionTrackingControllerrecords action execution across all controllers- The Active Users ListView displays session data via non-persistent objects
- Real-time updates are delivered through debounced circuit-aware subscriptions
Requirements
- .NET 8.0 and higher
- DevExpress XAF v25.2 or later
License
This package is distributed under the MIT License. Note: While the NuGet package is free to use, the source code is not open source.
Support & Contact
Need help or want to learn more about our tools and services? Visit www.llamachant.com/docs or contact us.
Llamachant Technology Ltd. Expert consulting and solutions for DevExpress XAF developers.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- DevExpress.ExpressApp (>= 25.2.7)
- DevExpress.ExpressApp.Blazor (>= 25.2.7)
- DevExpress.ExpressApp.ConditionalAppearance (>= 25.2.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.