Tudormobile.IronLedgerLib.UI.Wpf 1.0.0

dotnet add package Tudormobile.IronLedgerLib.UI.Wpf --version 1.0.0
                    
NuGet\Install-Package Tudormobile.IronLedgerLib.UI.Wpf -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tudormobile.IronLedgerLib.UI.Wpf" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Tudormobile.IronLedgerLib.UI.Wpf" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Tudormobile.IronLedgerLib.UI.Wpf" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Tudormobile.IronLedgerLib.UI.Wpf --version 1.0.0
                    
#r "nuget: Tudormobile.IronLedgerLib.UI.Wpf, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Tudormobile.IronLedgerLib.UI.Wpf@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Tudormobile.IronLedgerLib.UI.Wpf&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Tudormobile.IronLedgerLib.UI.Wpf&version=1.0.0
                    
Install as a Cake Tool

IronLedger

NuGet License .NET

IronLedger is a comprehensive .NET library for hardware asset identification and inventory management. It provides a robust framework for collecting, serializing, and managing hardware component data across your infrastructure.

🎯 Overview

IronLedgerLib enables applications and services to:

  • Collect hardware data from system components (CPU, memory, disks, motherboard, BIOS)
  • Generate unique asset identifiers based on hardware fingerprints
  • Serialize and deserialize asset data using flexible abstractions
  • Track hardware inventory with strongly-typed, immutable data structures

IronLedgerLib.UI enables applications and services to:

  • Observable Entities from system components (CPU, memory, disks, motherboard, BIOS)
  • Relay Commands for management of entities
  • Service Layer for orchestration via MVVM patterns.

IronLedgerLib.UI.Wpf enables applications and services to:

  • Views to display system assets and components on the Windows Desktop platform
  • Controls to manage display and editing of components on Windows desktop

Perfect for building windows desktop UI applications that leverage the Iron Ledger library.

⚙️ Platform Support

Platform Status
Windows ✅ Fully Supported
Linux Not supported or planned
macOS Not supported or planned

📦 Installation

Install via NuGet Package Manager:

dotnet add package Tudormobile.IronLedgerLib.UI.Wpf

Or via Package Manager Console:

Install-Package Tudormobile.IronLedgerLib.UI.Wpf

Or add directly to your .csproj:

<PackageReference Include="Tudormobile.IronLedgerLib.UI.Wpf" Version="1.0.0" />

🚀 Quick Start

using Tudormobile.IronLedgerLib.UI.Wpf;
using Tudormobile.IronLedgerLib.UI.Wpf.Views;
using Tudormobile.IronLedgerLib.UI.Wpf.Controls;

✨ Key Features

🔑 Unique Asset Identification

  • Generate cryptographic hardware fingerprints using SHA256
  • Combine system, baseboard, and BIOS metadata
  • Consistent, deterministic asset IDs across reboots
  • Hexadecimal string representation for easy storage and comparison

📊 Hardware Data Collection

  • Processors - CPU details including cores, speed, and specifications
  • Memory Modules - RAM information with capacity and type
  • Disk Drives - Storage device data including size and model
  • System Information - Manufacturer, model, and serial numbers
  • Baseboard - Motherboard details and identifiers
  • BIOS - Firmware version and vendor information

🛡️ Robust Exception Handling

  • Custom exception hierarchy for precise error handling
  • ComponentDataProviderException for hardware query failures
  • Comprehensive error context with provider name and WMI class information
  • Standard .NET exceptions for argument validation

📝 Flexible Serialization

  • Abstraction-based serialization framework
  • Built-in JSON serializer with System.Text.Json
  • Snake case naming convention for JSON properties
  • Custom converters for component properties
  • Easy to implement custom serializers

🔒 Immutable Data Structures

  • Thread-safe, immutable record types
  • Init-only properties prevent accidental modification
  • Structural equality for easy comparison
  • Support for non-destructive mutation using with expressions

🧩 Extensible Provider Architecture

  • Interface-based provider system
  • Easy to implement custom data providers
  • Dependency injection-friendly
  • Mock providers for testing

📖 Documentation

🔧 Requirements

  • .NET 10.0 or higher
  • Windows OS designed for windows desktop UI applications
  • Administrator privileges recommended for accessing some hardware data

🤝 Contributing

Contributions are welcome! Please read our Contributing Guidelines before submitting pull requests.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

💡 Use Cases

IronLedgerLib is ideal for:

  • Asset Management Systems - Track hardware across your infrastructure
  • License Enforcement - Hardware-based license validation
  • IT Inventory - Automated hardware inventory collection
  • Configuration Management - Infrastructure as code with hardware tracking
  • Audit & Compliance - Hardware change detection and reporting
  • Device Registration - Unique device identification for cloud services

Built with ❤️ by Tudormobile

Product Compatible and additional computed target framework versions.
.NET net10.0-windows7.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 119 3/25/2026
0.6.0 110 3/25/2026
0.5.0 113 3/24/2026