AuroraScienceHub.Framework.ValueObjects
10.0.5
Prefix Reserved
dotnet add package AuroraScienceHub.Framework.ValueObjects --version 10.0.5
NuGet\Install-Package AuroraScienceHub.Framework.ValueObjects -Version 10.0.5
<PackageReference Include="AuroraScienceHub.Framework.ValueObjects" Version="10.0.5" />
<PackageVersion Include="AuroraScienceHub.Framework.ValueObjects" Version="10.0.5" />
<PackageReference Include="AuroraScienceHub.Framework.ValueObjects" />
paket add AuroraScienceHub.Framework.ValueObjects --version 10.0.5
#r "nuget: AuroraScienceHub.Framework.ValueObjects, 10.0.5"
#:package AuroraScienceHub.Framework.ValueObjects@10.0.5
#addin nuget:?package=AuroraScienceHub.Framework.ValueObjects&version=10.0.5
#tool nuget:?package=AuroraScienceHub.Framework.ValueObjects&version=10.0.5
AuroraScienceHub.Framework.ValueObjects
Domain value objects for building type-safe, immutable domain models in .NET applications.
Overview
Provides strongly-typed value objects that encapsulate domain concepts with built-in validation, parsing, and equality semantics.
Key Features
- Type Safety - Strongly typed value objects prevent primitive obsession
- Immutability - Thread-safe, immutable by design
- Validation - Built-in validation at creation time
- Parsing Support -
ISpanParsable<T>implementation for efficient parsing - EF Core Integration - Seamless Entity Framework Core support via value converters
Installation
dotnet add package AuroraScienceHub.Framework.ValueObjects
Value Objects
BlobId
Type-safe identifier for MinIO (S3-compatible) blob storage with S3 bucket naming validation, Guid v7-based object IDs (time-ordered, sortable), and compact Base64Url encoding.
Format: blb_{BucketName}_{ObjectKey} (e.g., blb_avatars_auSaAYDuWXG9JXl7SxAlww)
Usage:
// Create new BlobId
var blobId = BlobId.New("avatars");
// Parse from string
var parsed = BlobId.Parse("blb_documents_bX9KlP2mN4qR8tVwYzA1Bc");
// Access components
Console.WriteLine(blobId.BucketName); // "avatars"
Console.WriteLine(blobId.ObjectKey); // "auSaAYDuWXG9JXl7SxAlww"
Console.WriteLine(blobId.Value); // "blb_avatars_auSaAYDuWXG9JXl7SxAlww"
// Try parse
if (BlobId.TryParse(input, out var result))
{
// Use result
}
EF Core Integration:
public class Document
{
public int Id { get; set; }
public BlobId FileId { get; set; }
public BlobId? ThumbnailId { get; set; }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// Automatic conversion for all BlobId properties (nullable and non-nullable)
modelBuilder.UseValueObjectConversions();
}
License
See LICENSE file in the repository root.
Related Packages
AuroraScienceHub.Framework.Entities- Entity interfaces and patternsAuroraScienceHub.Framework.EntityFramework- EF Core extensions and value converters
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on AuroraScienceHub.Framework.ValueObjects:
| Package | Downloads |
|---|---|
|
AuroraScienceHub.Framework.EntityFramework
Entity Framework Core extensions including custom converters, interceptors, migrations utilities, and storage patterns for DDD entities. |
|
|
AuroraScienceHub.Framework.Blobs
Unified blob storage abstraction with S3-compatible storage support (MinIO, AWS S3). |
GitHub repositories
This package is not used by any popular GitHub repositories.