Cross-platform POCO domain models for the BAUER GROUP Shared Business
ecosystem: a dependency-free base package plus a family of domain satellites,
all multi-targeted for net10.0 · net8.0 · netstandard2.0.
The netstandard2.0 leg keeps the models consumable from .NET Framework 4.6.2+,
Unity, Xamarin and other legacy hosts; modern C# language features (init
accessors, required members) are backfilled there via
PolySharp.
| Package | NuGet | Depends on |
|---|---|---|
BAUERGROUP.Shared.Business.Models |
none (base) | |
BAUERGROUP.Shared.Business.Models.Shipping |
Core | |
BAUERGROUP.Shared.Business.Models.ERP |
Models · Shipping · Core | |
BAUERGROUP.Shared.Business.Models.CRM |
Models | |
BAUERGROUP.Shared.Business.Models.DMS |
Models |
The base package is strictly 0-dependency. Domain satellites may layer on
BAUERGROUP.Shared.Corefor shared primitives (e.g.IndependentImage).
dotnet add package BAUERGROUP.Shared.Business.Models
# domain satellites, as needed:
dotnet add package BAUERGROUP.Shared.Business.Models.Shipping
dotnet add package BAUERGROUP.Shared.Business.Models.ERPusing BAUERGROUP.Shared.Business.Models;
public sealed class Customer : BusinessObject
{
public Customer() { } // UID auto-generated
public Customer(Guid gUID) : base(gUID) { } // re-hydrate with a known identity
public required string Name { get; init; }
}
var c = new Customer { Name = "Contoso" };
// c.UID -> a fresh Guid (init-only); pass an explicit one via the ctor or initializer
// c.Changed -> DateTime.UtcNow at construction, mutable on updateModels are deep-cloned via the BAUERGROUP.Shared.Core JSON helper:
using BAUERGROUP.Shared.Core.Extensions;
var copy = original.Clone(); // safe System.Text.Json deep copyCloning/serialization requires the type to round-trip through
System.Text.Json(a public parameterless constructor or[JsonConstructor]). A few legacy ERP value types don't yet — see the migration guide.
- Architecture — package family, dependency DAG, identity & cloning
- Migration guide — moving from the legacy
BAUERGROUP.Shared.*packages - Build — building, testing, packing
- Versioning — semantic-release & conventional commits
- Nullable-enable plan — the deferred NRT changeover for Shipping/ERP
- Changelog
MIT © BAUER GROUP