Initial commit: PulseDock System Monitor

This commit is contained in:
Developer
2026-07-23 12:37:00 +02:00
commit 2cfe8fb858
57 changed files with 3495 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
# Architecture & Technical Design PulseDock
## Overview
PulseDock is built on modern C# .NET 10 WPF architecture leveraging Dependency Injection, MVVM separation, and non-blocking background telemetry sampling.
```
┌─────────────────────────┐
│ App Bootstrapper │
│ (Microsoft.Extensions │
│ .DependencyInjection) │
└────────────┬────────────┘
┌───────────────────────┼───────────────────────┐
▼ ▼ ▼
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Hardware │ │ Settings & │ │ Theme & Position │
│ Monitoring │ │ Notifications │ │ Management │
│ Service │ │ Services │ │ Services │
└────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘
│ │ │
└───────────────────────┼───────────────────────┘
┌───────────────────────┐
│ MainWidgetViewModel │
└───────────┬───────────┘
┌───────────────────────┐
│ MainWindow (WPF UI) │
│ Glassmorphism XAML │
└───────────────────────┘
```
## Key Architectural Principles
1. **Non-Blocking Telemetry Polling**:
- `HardwareMonitoringService` executes hardware polling on background tasks via `PeriodicTimer` and `CancellationToken`.
- Never blocks the WPF UI thread (`Dispatcher.InvokeAsync` marshals updates cleanly).
2. **Non-Elevated Safe Fallbacks**:
- Standard user mode startup.
- If `LibreHardwareMonitorLib` kernel driver access is denied without Admin rights, it automatically falls back to `PerformanceCounter`, WMI, `NetworkInterface`, and `System.Diagnostics` without crashing.
3. **Memory Optimization**:
- `CircularBuffer<T>` allocates fixed-size arrays for 60s/300s/900s history arrays.
- Zero endless GC allocations during long runtime sessions.
4. **Custom WPF Drawing Controls**:
- `SparklineControl` and `ProgressRingControl` derive directly from `FrameworkElement` using `DrawingContext`, bypassing heavy WPF layout trees for rendering.