DK89.DomainBase 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package DK89.DomainBase --version 1.0.0                
NuGet\Install-Package DK89.DomainBase -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="DK89.DomainBase" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DK89.DomainBase --version 1.0.0                
#r "nuget: DK89.DomainBase, 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.
// Install DK89.DomainBase as a Cake Addin
#addin nuget:?package=DK89.DomainBase&version=1.0.0

// Install DK89.DomainBase as a Cake Tool
#tool nuget:?package=DK89.DomainBase&version=1.0.0                

Example of Usage for AuditableBase and AuditableBase<TIdType>

The following examples demonstrate how to use the AuditableBase and AuditableBase<TIdType> classes in your project.

AuditableBase Example
using DK89.DomainBase.Base;
using System;

namespace MyProject.Domain
{
    /// <summary>
    /// Example entity inheriting from AuditableBase with a default GUID as ID.
    /// </summary>
    public class Product : AuditableBase
    {
        public string Name { get; set; } = default!;
        public decimal Price { get; set; }
    }
}

// Usage
var product = new Product
{
    Id = Guid.NewGuid(),
    Name = "Example Product",
    Price = 19.99M,
    CreatedBy = "Admin",
    CreatedDate = DateTime.UtcNow
};

Console.WriteLine($"Product: {product.Name}, Created By: {product.CreatedBy}, Created At: {product.CreatedDate}");
AuditableBase<TIdType> Example
using DK89.DomainBase.Base;
using System;

namespace MyProject.Domain
{
    /// <summary>
    /// Example entity inheriting from AuditableBase with a custom ID type.
    /// </summary>
    public class Order : AuditableBase<int>
    {
        public DateTime OrderDate { get; set; }
        public string CustomerName { get; set; } = default!;
    }
}

// Usage
var order = new Order
{
    Id = 1,
    OrderDate = DateTime.UtcNow,
    CustomerName = "John Doe",
    CreatedBy = "System",
    CreatedDate = DateTime.UtcNow
};

Console.WriteLine($"Order ID: {order.Id}, Customer: {order.CustomerName}, Order Date: {order.OrderDate}");

Key Features of AuditableBase and AuditableBase<TIdType>

  • Auditable Fields:

    • CreatedBy: Indicates the user who created the entity.
    • CreatedDate: Timestamp of when the entity was created.
    • EditedBy: Indicates the user who last edited the entity.
    • EditedDate: Timestamp of the last edit.
    • IsDeleted: Boolean flag to indicate soft deletion.
  • Customizable ID Type:

    • The default AuditableBase class uses a GUID for the Id.
    • Use AuditableBase<TIdType> to define an ID with a custom type, such as int, string, or another type.

When to Use These Classes

  • Entities in a Domain Model: Use these classes as base types for entities that require auditing fields and flexible ID management.
  • Soft Deletions: Handle soft deletions gracefully using the IsDeleted property.

Additional Notes

  • The properties in the base classes can be overridden in derived classes as needed.
  • Ensure you initialize the Id property in your derived classes, particularly when using custom ID types.
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.1

    • No dependencies.

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.2 29 1/14/2025
1.0.1 59 1/14/2025
1.0.0 51 1/14/2025